Verilog Inter 和 Intra Delay2025年3月17日 | 阅读 3 分钟 Verilog 延迟语句可以在赋值运算符的右侧指定延迟。 Inter Assignment 延迟Inter 赋值延迟语句在赋值运算符的左侧具有延迟值。 Inter 赋值是指整个语句或赋值执行被延迟的那些延迟语句。 在 Verilog 中,Inter 赋值延迟通常对应于惯性延迟或 VHDL 的常规延迟语句。 它表明语句本身是在延迟到期后执行的,并且是最常用的延迟控制形式。 示例 在这里,q 在时间单位 10 变为 1,因为该语句在 10 个时间单位时被评估,并且 RHS,即 a、b 和 c 的组合,评估为 1。 执行完成后,它给出以下输出。 xcelium> run [0] a=0 b=0 c=0 q=0 [5] a=1 b=0 c=1 q=0 [10] a=1 b=0 c=1 q=1 xmsim: *W,RNQUIE: Simulation is complete. Intra Assignment 延迟Intra 赋值延迟表示语句本身是在延迟到期后执行的,并且是最常用的延迟控制形式。 它们可以与阻塞和非阻塞赋值一起使用。 如果在模拟期间遇到具有内部赋值时间控制的语句,则将对表达式求值,并存储其值。 然后,该语句的执行将暂停,直到延迟控制指定的时间到期。 在事件发生之前,表达式值的变化将被忽略。 Intra 赋值延迟声明在赋值运算符的右侧。 这表明该语句被求值,并且 RHS 上所有信号的值首先被捕获。 示例 以上代码给出以下输出 xcelium> run [0] a=0 b=0 c=0 q=0 [5] a=1 b=0 c=1 q=0 xmsim: *W,RNQUIE: Simulation is complete. 在 5 个时间单位,a 和 c 使用非阻塞语句赋值。 并且非阻塞语句的行为被评估,但仅在时间步结束时才分配给变量。 因此,当下一个非阻塞语句 q 执行时,a 和 c 的值被评估为 1,但未分配。 因此,当 q 的 RHS 被评估时,a 和 c 仍然具有旧值 0,因此 $monitor 未检测到更改以显示该语句。 为了观察变化,让我们将 a 和 c 的赋值语句从非阻塞更改为阻塞。 输出如下所示 xcelium> run [0] a=0 b=0 c=0 q=0 [5] a=1 b=0 c=1 q=0 [10] a=1 b=0 c=1 q=1 xmsim: *W,RNQUIE: Simulation is complete. 下一主题Verilog 门延迟 |
我们请求您订阅我们的新闻通讯以获取最新更新。