今天在测试模块功能的时候出现这样的一个现象:我点击“Run simulation”,Vivado能够不报错,但是得到的结果确是所有的信号都是蓝色的,时钟也没有出现。我回头检查了好几遍,我的testbench,和之前写的没有差别,后面发现我只把Design source中我想要仿真的文件设置为顶层了,却忽略了simulation source中同样也需要将相应的文件设置为顶层。
这个现象之所以出现,是因为我的工程中有多个Design文件和多个simulation文件,如果我想对某一个文件单独跑仿真,就需要把相应的设计文件和仿真文件都设置为顶层。我是忽略了仿真文件也需要设置为顶层。
现象如下:
还有一个智障问题:关于复位信号的。
我平时写复位都是低电平有效,if(!RST_N);然后我再调用fifo的时候,fifo的复位是高电平有效。这个时候怎么办呢?我才开始想把自己的复位都改成高电平有效,但是觉得很麻烦。就去问了问同学,后面同学轻轻一句话:你取反就好了!
啊,我真是有点小智障。
具体而言就是在各个模块的顶层文件中,例化的时候将顶层文件的低电平有效的信号取反,再连接到fifo所在模块即可(~ RST_N)。