注意:组合电路不能使用clocking块,组合逻辑信号的变化是立即的,不等待上升沿触发。
为了便于理解clocking块的提前采样、延后驱动,做图一图二对比说明:
仿真代码如下:
`timescale 1ns/1ps;
interface intf;
bit clk;
bit siga;
clocking mon@(posedge clk);
default input #1ns output #1ns;
input siga;
endclocking
endinterface
module tb;
intf if0();
initial forever #5ns if0.clk=!if0.clk;
initial begin
#12ns;
if0.siga=1;
#2.5ns;
if0.siga=0;
#12ns;
if0.siga=1;
#17ns;
if0.siga=0;
#12ns;
if0.siga=1;
#17ns;
if0.siga=0;
end
endmodule
由图一可以看出,1、interface输入输出的sign值不受其他影响。
由于mon是上升沿采样,导致12+1.5=13.5时,mon正在15ns上升沿提前一秒采样,mon.sign采样值为0。

图一
由图二可以看出1、

本文通过实例介绍了clocking块在Verilog HDL中的使用,强调了clocking块不适用于组合逻辑,因为组合逻辑的变化是即时的。通过对比图一和图二,展示了clocking块在上升沿采样时如何影响信号采样值,从而帮助读者理解其提前采样和延后驱动的概念。
最低0.47元/天 解锁文章
376

被折叠的 条评论
为什么被折叠?



