今天分享一个使用vivado仿真时,定义的变量明明是16位(如图1),但是仿真波形中该变量只有1位(如图2)的问题。

图1

图2

这种问题有两个解决方法:

1.在testbench中定义此wire型变量(如图3)

图3

上述问题就是因为在功能模块中定义了此wire变量,但是在testbench中未定义,仿真波形默认列出testbench中出现的变量,未定义的变量就会被默认只有一位。

2.因为仿真波形默认列出的是testbench中出现的变量,而我们在功能模块中已经定义了此变量(如图1),只需要将功能模块中的变量添加到仿真波形中(如图4),就不会出现变量只有1位的问题。

  图4

上述变量的添加方法:

1.在scope界面,点击功能模块,会出现该模块定义的变量,右击想要添加的变量,选择

Add to Wave Window,就可以将变量添加进仿真波形界面(如图5,6)。

图5,6

结尾,大家还是老老实实把出现的变量定义一下wire/reg类型,特别是下面列举的情况:

图7

图7圈出来的两个变量是从一个模块输出到另外一个模块中,由于博主没有对这两个变量进行定义,导致功能无法实现。

Logo

中国智能体开发者社区,聚焦智能体与大模型开发,提供前沿资讯、实用工具链、开源项目及行业案例。通过技术沙龙、开发者大赛等活动,促进经验交流与协作,助力开发者快速构建创新智能应用。

更多推荐