商震 发表于 2021-8-31 18:29:18

Testbench中使用@(posedge xxx)语法时易出现的问题和原因




如图,在仿真中,描述了等待锁相环锁定信号pll_locked的语句,但是实际仿真出图,却没有看到scan_en_pulse拉高,这是什么原因?
解释如下:由于pll_locked为锁相环锁定信号,它在工程中,由锁相环决定,即锁相环稳定后,该信号拉高。如果这条语句前的延时时间过长,导致这条语句在该信号已经出现拉高后才执行,则程序执行到这条语句的时候,锁相环锁定信号已经被拉高了,换句话说,就是这条语句开始执行时等待的上升沿,已经在启动这条语句前发生,上升沿已经被错过了。导致的后果,将是程序一直在等待pll_locked的上升沿,卡在这里无法继续执行后面的语句。正确的做法,是观察锁相环模块中复位信号和锁定信号的间隔周期,然后在仿真中,选一个比它小的等待周期即可。

页: [1]
查看完整版本: Testbench中使用@(posedge xxx)语法时易出现的问题和原因