Verilog 在时钟边缘写入的计时

Verilog 在时钟边缘写入的计时,verilog,Verilog,最近我重新开始写verilog的代码。我把写注册表的时间和 ''' 始终@(posedge时钟) '' 是在posedge之后将网络上的值写入reg吗 是在posedge之前将reg上的值写入reg吗 在实际硬件中,要写入寄存器的值必须在时钟边缘附近保持稳定。也就是说,信号必须在时钟边缘之前保持稳定(=不变),并保持这种状态直到时钟边缘之后 时钟边缘之前的稳定时间称为设置时间 时钟边缘之后的稳定时间称为保持时间 在模拟中,信号应在时钟边缘保持稳定。但是“at”时间是理论上的,并且是无限短的

最近我重新开始写verilog的代码。我把写注册表的时间和 ''' 始终@(posedge时钟) ''

  • 是在posedge之后将网络上的值写入reg吗

  • 是在posedge之前将reg上的值写入reg吗


在实际硬件中,要写入寄存器的值必须在时钟边缘附近保持稳定。也就是说,信号必须在时钟边缘之前保持稳定(=不变),并保持这种状态直到时钟边缘之后

  • 时钟边缘之前的稳定时间称为设置时间
  • 时钟边缘之后的稳定时间称为保持时间
在模拟中,信号应在时钟边缘保持稳定。但是“at”时间是理论上的,并且是无限短的


根据经验:在正常模拟中,确保信号在时钟边缘之前稳定

我理解,设置和保持时间,这意味着在时钟边缘写入reg之前的模拟源上,net和reg在时钟边缘写入reg之后,对吗?我遇到了在时钟边缘写入reg之后的模拟源,所以我感到困惑。设置和保持时间通常不用于行为模拟。这就是为什么我说“经验法则…”可能是沟通不畅,我谈到行为模拟,所以我注意到always语句。取决于赋值:阻塞还是非阻塞。看看