System Verilog clocking块

注意:组合电路不能使用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。

System Verilog clocking块_第1张图片

 图一

由图二可以看出1、interface输入输出的sign值不受其他影响。

由于mon是上升沿采样,导致12+1.5=13.5时,mon正在15ns上升沿提前一秒采样,mon.sign采样值为1。

System Verilog clocking块_第2张图片

 图二

你可能感兴趣的:(SV回顾总结,fpga开发)