1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > vivado和modelsim联合仿真实现奇分频

vivado和modelsim联合仿真实现奇分频

时间:2022-06-10 08:41:56

相关推荐

vivado和modelsim联合仿真实现奇分频

代码来自以下视频并做了适当修改,老师讲得好像有点问题,有空再研究 添加了复位模块两个计数器都是计数到4翻转,是五分频,一个是上升沿一个是下降沿最后实现得是在下降沿翻转而不是上升沿

FPGA分频器的设计

module div5(input clk,input rst,output div5);reg div0,div1;reg [2:0] cnt0=3'b0;reg [2:0] cnt1=3'b0;always @(posedge clk or posedge rst) beginif(rst == 1'b1)cnt0 <= 3'd0;else if(cnt0 == 3'd4)cnt0 <= 3'd0;elsecnt0 <= cnt0 + 1'b1;endalways @(negedge clk or posedge rst) beginif(rst == 1'b1)cnt1 <= 3'd0;else if(cnt1 == 3'd4)cnt1 <= 3'd0;elsecnt1 <= cnt1 + 1'b1;endalways @(posedge clk or posedge rst) beginif(rst == 1'b1)div0 <= 3'd0;else if(cnt0 == 3'd0 || cnt0 === 3'd4)div0 <= 1'b1;elsediv0 <= 1'b0;endalways @(negedge clk or posedge rst) beginif(rst == 1'b1)div1 <= 3'd0;else if(cnt1 == 3'd0 || cnt1 === 3'd4)div1 <= 1'b1;elsediv1 <= 1'b0;endassign div5 = div0 | div1;endmodule

仿真代码如下,修改别人代码真是太麻烦了,还不如自己写。。

module testbench();reg clk;reg rst;always #10 clk = ~ clk; initial beginclk = 1'b0; rst = 1'b1;#20rst = 1'b0;enddiv5 inst(.clk (clk),.rst (rst),.div5(div5));endmodule

div0和div1相差半个周期,div0和div1相加得到div5

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。