当前位置: 首页 > 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.dtcms.com/a/318268.html

相关文章:

  • FPGA学习笔记——VGA简介
  • Excel单元格设置下拉框、选项背景
  • 20250806给PRO-RK3566开发板在Buildroot系统下扩大rootfs分区2GB
  • 实习文档背诵
  • 解决Cloudflare人机验证加载异常:从常规排查到hosts配置优化
  • 【软件介绍】RVC本地部署使用方法
  • Linux基础命令详解手册
  • css怪异模式(Quirks Mode)和标准模式(Standards Mode)最明显的区别
  • 【CVPR2025】Mr.DETR: 通过多路线训练机制改进DETR,并进行“one to one”和“one to many”的预测
  • pytorch安装
  • ​​MCU程序的存储方式与存储区域大小要求​
  • c++ template in .h and .cpp
  • RocketMQ和Kafka一样有重平衡的问题吗?
  • 机器学习——朴素贝叶斯
  • Java面试题和答案大全
  • Web 端 AI 图像生成技术的应用与创新:虚拟背景与创意图像合成
  • Session 和 JWT(JSON Web Token)
  • [AI]从零开始的SDXL LORA训练教程
  • 机器视觉的智能手表贴合应用
  • Android 之 ViewBinding 实现更安全、高效的视图绑定
  • envFrom 是一个 列表类型字段bug
  • W3D引擎游戏开发----从入门到精通【22】
  • 《聚氨酯垫性能优化在超薄晶圆研磨中对 TTV 的保障技术》
  • 小实验--震动点灯
  • 昇思+昇腾开发板+DeepSeek模型推理和性能优化
  • Python实现信号小波分解与重构
  • 【CUDA】C2 矩阵计算
  • 大数据之Flume
  • 01--CPP入门
  • Unity里的对象旋转数值跳转问题的原理与解决方案