当前位置: 首页 > news >正文

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

http://www.lryc.cn/news/612548.html

相关文章:

  • C语言高级编程技巧与最佳实践
  • 如何给小语种视频生成字幕?我的实测方法分享
  • docker-compose部署file browser
  • P1983 [NOIP 2013 普及组] 车站分级
  • Spring文件泄露与修复方案总结
  • Unity 调节 Rigidbody2D 响应速度的解决方案【资料】
  • 聚合链接网站源码部署教程
  • 【开源分享】can-utils:深入解析 Linux CAN 工具集
  • 面试经典150道之多数元素
  • nflsoi 8.6 题解
  • Python day36
  • stm32项目(22)——基于stm32的智能病房监护系统
  • 基于PHP的论坛社交网站系统开发与设计
  • Git Cherry-Pick 指南
  • 中国移动h10g-01_S905L处理器安卓7.1当贝纯净版线刷机包带root权限_融合终端网关
  • HTTP Flood攻击:数字时代的“蝗虫灾害“与智能防护之道
  • Python赋能气象与气候数据分析的生态构建与实战路径
  • 使用R将nc文件转换为asc文件或者tif文件
  • PyTorch入门引导
  • C++、STL面试题总结(一)
  • 【C++】二叉树进阶
  • JavaWeb(04)
  • Perforce P4 Plan - DevOps实时规划工具
  • Qt-桌面宠物
  • 4、docker数据卷管理命令 | docker volume
  • docker run 入门到进阶:容器启动背后的门道
  • PCB工艺-四层板制作流程(简单了解下)
  • C++与C语言实现Stack的对比分析
  • 如何快速翻译PPT中的文字(或简繁体转换)
  • PI 思维升级 解密电容器的选择与布局策略,带您追求极致平坦的电源阻抗