Verilog 仿真问题:打拍失败

Verilog 仿真问题:打拍失败

1:记录一下在今的天仿真的时候,对信号打拍操作,发现打拍失败。

打拍失败现象如下:

verilog代码如下:

always @ (posedge clkb or negedge rst_n)if (!rst_n)beginpulse_reg1 <= 0;pulse_reg2 <= 0;endelsebeginpulse_reg1 <= pulse_ina ;pulse_reg2 <= pulse_reg1 ;end

仿真代码如下:

module sim_slow2fast_cdc ( );reg clka ;reg clkb ;reg rst_n ;reg pulse_ina;wire pulse_outb;slow2fast_cdc slow2fast_cdc_inst (.clka (clka) ,.clkb (clkb) ,.rst_n (rst_n) ,.pulse_ina (pulse_ina) ,.pulse_outb (pulse_outb));always #10 clka = ~clka;always #6 clkb = ~clkb;initial beginclka = 0;clkb = 0;rst_n = 0;pulse_ina = 0;#25rst_n = 1; // 复位无效#5 // 对齐clk_come; #45clk_come; #35clk_come; #50clk_come;endtask clk_come;beginpulse_ina = 1; // 来一个慢时钟下的高脉冲#20pulse_ina = 0;endendtaskendmodule

2:现象:可以看见pulse_reg1将pulse_ina信号采集并没有延迟1拍,从而形成打拍失败的结果; 3:问题原因:因为我们这个pulse_ina是模拟外部信号进入,是reg变量,我这里是D触发器要去采集pulse_ina,这里仿真代码是使用的是阻塞赋值;故而出现仿真打拍失败。

4:解决办法:将仿真文件里面的pulse_ina的阻塞赋值改成非阻塞赋值,即可解决。

修改之后仿真代码:

5:仿真结果如下;

放大图效果:

6:总结:打拍成功;

7:参考资料 Verilog 仿真问题:打拍失败_哔哩哔哩_bilibili

💫 相关推荐

《魔兽世界WOW》药水大师任务 药剂大师任务 转化大师任务 详细攻略
IOS商店为什么没有饥荒手游了?还有机会上架吗?
365双试投注是什么

IOS商店为什么没有饥荒手游了?还有机会上架吗?

📅 06-28 👀 6086
喂鸡的意思
365双试投注是什么

喂鸡的意思

📅 08-23 👀 8872
国际足协世界杯指定用球
365双试投注是什么

国际足协世界杯指定用球

📅 07-31 👀 5398
比国足还久!挪威已阔别世界杯27年 新希望燃起
365双试投注是什么

比国足还久!挪威已阔别世界杯27年 新希望燃起

📅 07-31 👀 8675
如何合并微信群?合并后会发生什么变化?
365bet官网是什么

如何合并微信群?合并后会发生什么变化?

📅 07-11 👀 9984
【锉】可以组哪些词
365bet官网是什么

【锉】可以组哪些词

📅 08-07 👀 7342
a3办公打印纸的尺寸一般是多少-荣风华商城为你揭秘答案
淮安:围绕“六个聚焦” 全力脱贫攻坚
约彩365app下载

淮安:围绕“六个聚焦” 全力脱贫攻坚

📅 08-21 👀 460