网站公告列表

  没有公告

加入收藏
设为首页
联系站长
您现在的位置: 61EDA中国电子网 >> 服务导航 >> 培训教程 >> HDL语言 >> 正文
  [图文]关于verilog 中timescale的讨论           ★★★ 【字体:
关于verilog 中timescale的讨论
作者:Free    文章来源:本站原创    点击数:    更新时间:2008-4-15    
在verilog中是没有默认timescale的。一个没有指定timescale的verilog模块就有可能错误的继承了前面编译模块的无效timescale参数。
所以在verilog的LRM中推荐“在每个module的前面指定`timescale,并且相应的在最后加一个`resetall来确保timescale的局部有效

为了确认这种用法,我编写了一个小小的包含两个模块module_a和module_b的testbench,其中module_a,module_b与testbench指定了不同的timescale精度。通过simulation的波形可以发现,Simulator的确在不同的module中使用了不同的times精度。

代码如下:
文件名:module_a.v
`timescale 100ps/1ps

module a (clk) ;
input clk;
wire clk_a ;

assign #5 clk_a = clk;

endmodule

`resetall

文件名:module_b.v
`timescale 10ps/1ps

module b (clk) ;
input clk;
wire clk_b ;

assign #5 clk_b = clk;

endmodule

`resetall

文件名:testbench.v
`timescale 1ns/10ps

module tb();
reg clk;

initial begin
clk = 0;
end

initial
begin
$fsdbDumpvars;
#12500 $finish;
end


always begin
#10 clk = ~clk;
end

a a_inst(clk);
b b_inst(clk);

endmodule

波形如下:
 

结论:
从上面的波形中可以看出,虽然使用了相同的delay表述:
assign #5 clk_a(b) = clk;
但由于在module中指定的timescale精度不同,在实际的simulation中delay的长度是不同的,但都是等于5×timescale最小精度。
文章录入:admin    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章: 没有了
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
    让Verilog仿真状态机时可以显…
    Verilog例化时的参数传递
    Verilog generate…
    谈“verilog 一写 CPU 就出来…
    verilog 问答式学习…
    Verilog与标准化-- 学习ve…
    一些关于verilog的工具
    发现Iverilog的一些问题
    Iverilog故障定位一瞥
    针对C语言编程者的Verilog开…
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    湘ICP备08001332号 站长:61EDA