在systemverilog中进行数字化设计时,我遇到了有关比赛条件的问题。
驱动我的设计的测试平台(我无法修改)驱动输入,使得设计中的某些寄存器由于竞争条件而无法正常工作。
这是一个eda-playground示例,说明了正在发生的事情(输入更改"在#34之前;时钟在15ns时):
http://www.edaplayground.com/x/rWJ
有没有办法使设计(在这种情况下是一个简单的寄存器)能够抵抗这个特殊问题?我需要的是像" out_data< = preponed(in_data);"或类似的东西会使输入信号的顺序变化无关紧要。
我在SystemVerilog LRM中读过#steste,但我不确定如何使用它,也不能解决这个特殊问题。
答案 0 :(得分:1)
您的测试平台实际上是在创建一个违反设置规则的激励措施。您有两种选择: