今天在Verilog设计中遇到一个这样的问题:
有两个时钟,分别是clk和clkX8,clk由clkX8八分频得到。在设计中有多组寄存器需要周期性的置位,置位信号a属于clk时钟域中的信号,而触发器时钟端输入为clkX8。
奇怪的现象发生了,每次用置位信号a对寄存器组R进行置位后,寄存器组R输出值可以置成预期值,但是一旦置位信号a撤销,寄存器组R尚未达到赋值条件便立刻又被赋值,这与设计初衷是相悖的。
然后笔者百思不得其解,无奈只好查看RTL级视图。果不其然,在RTL级视图中,笔者看到生成的电路并非所要的设计预期,是不能完成Verilog所设计的电路功能的!