systemverilog的timescale作用域

参考文献1:https://www.chipverify.com/verilog/verilog-timescale-scope

在数字电路仿真过程中,如果没有模块本身没有指定timescale,则编译器本身可能插入一个默认的timescale,仿真代码如下:
在这里插入图片描述
仿真结果:
在这里插入图片描述
以下我们尝试以不同的方式测试不同模块的timescale设置对仿真延时的影响。

仿真代码:

`timescale 1ns/1ns
module harness;
    logic b1, c1, d1;
    m1 m1 (.a1(b1), .a2(c1));
    p2 p2 (.*);
    p3 p3 (.*);

	initial begin
		$fsdbDumpfile("wave.fsdb");
		$fsdbDumpvars;
	end

	initial begin
        #100 d1 = 1;
	end

endmodule

`timescale 1ns/1ns
module m1(input logic a1, a2);
    assign #1.2 a = a1 & a2;
endmodule

`timescale 1ns/10ps
module p2(output logic b1);
    logic b;
    assign #3.345 b = 1;
    initial @(b) b1 <= b;
endmodule

program p3(output logic c1);
    timeunit        1ns;
    timeprecision   1fs;
    logic c;
    assign #2.2 c = 1;
    initial begin
        @(c) c1 <= c;
        #1000ns;
    end
endprogram

脚本设置:

comp:
	@vcs \
	-full64 \
	-kdb -lca \
	-sverilog \
	-debug_access+all \
	-timescale=1ns/1ns \
	+fsdb+region \
	+libext+.sv+.v \
	-l cmp.log \
	*.sv

run:
	@./simv \
 	+fsdb+delta \
 	-l simv.log	

all:
	@make clean && make comp && make run

verdi:
	@verdi -ssf wave.fsdb &

clean:
	@rm -rf simv* csrc ucli* vc_hdrs.h verdi* novas* vdCovLog* *.log *.fsdb 

各个模块的延时

先看d1
在这里插入图片描述
d1在100ns时变为1,即延时100的单位为1ns,为harness模块的timescale为1ns/1ns

再看m1
在这里插入图片描述
a的延时为1ns,这是由于模块m1的timescale为1ns/1ns, 精度也为1ns,因此#1.2会进行舍如为#1。

接着看p2:
在这里插入图片描述
b的真正延时为3.35ns,这是由于其timescale为1ns/10ps,精度为10ps,因此#3.345舍入为#3.35

最后看p3:
在这里插入图片描述
延时时间为2.2ns,其分辨率即#1 step1fs

Note:

  1. 如果注释掉harness的timescale,设置脚本中的timescale为1ns/1ns,则脚本中的timescale将作用于harness模块。
  2. 如果保留harness的timescale,注释掉m1的timescale,则m1的timescale为harness的timescale,而非脚本中的timescale设置
  3. 由以上可知,timescale的判定原则为就近原因。如果查看波形觉得timescale异常,一定是找到了错误的timescale。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sunvally

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值