【 FPGA 】寄存器输出的不稳定态

不稳定态,指的就是不稳定的状态。请注意,寄存器输出的不稳定状态并不是由于赋值冲突而导致的不确定状态(‘X’状态),而是由于不同路径的延迟不一致所导致的数据线上出现了一个或多个非预期的中间状态。

时序仿真时,寄存器的输出从A变为B时,中间会有一小段毛刺。毛刺其实是有确切的取值的。

单触发器寄存器

如果寄存器只包含一个触发器,即寄存器的容量为1bit。例如,在下一个有效时钟边沿到来时,要将一个1bit位宽的寄存器的输出从逻辑0变为逻辑1,那么波形图是否会出现若干次从0到1的振荡呢?

事实证明,不会出现不稳定态,因为一个时钟有效边沿最多只能改变输出一次

多触发器寄存器

对于多触发器寄存器,无论寄存器的位宽如何,它们都是由最基本的触发器构成的,而触发器在每个时钟的有效边沿只能改变一次,因此,除非经历多个时钟周期,否则寄存器的输出怎么会变化出多个值呢?

这是由于组成寄存器的各个触发器变化不一致。更精确地说,由于线延迟的存在,导致时钟信号到达各个寄存器的时间可能不一致,也导致各个触发器的输出端口到信号接收端所需的时间可能不一样,再加上各个寄存器的t_{co}等参数不可能精确一致,所以当我们改变多触发器寄存器的输出时,就会出现不稳定态。

 

你可能感兴趣的:(Verilog/FPGA,实用总结区)