`timescale 1ns/1ps的意义

使用Xilinx的IDE创建新代码文件的时候,IDE会自动添加上一个`timescale 1ns/1ps。

1、`timescale 1ns/1ps只作用于软件仿真,不参与实际的编译。

2、`timescale 1ns/1ps的功能和定义

`timescale 仿真延时/仿真精度

以下面的一段代码为例

module sim_prbs_test;
    reg clk;
    reg reset;
    wire [7:0] prbs_out;
    wire error;

    prbs_test uut (
        .clk(clk),
        .reset(reset),
        .prbs_out(prbs_out),
        .error(error)
    );

    initial begin
        clk = 0;
        reset = 1;
        #10 reset = 0;
        #1000 $stop;
    end

    always #5 clk = ~clk;

    initial begin
        $monitor("Time: %0d, PRBS Out: %b, Error: %b", $time, prbs_out, error);
    end
endmodule

`timescale 1ns/1ps的含义:

[1]1ns表示仿真延时, #1 = 1ns,比如代码中的#10 reset = 0; 就是等待10ns后,reset置0.

[2]1ps是仿真的计算精度,也就是仿真后的结果图上能呈现的最小颗粒度是1ps,颗粒度越小,仿真计算的过程越漫长,所以大型仿真计算最好根据实际情况调整这个值,以提高仿真速度。1ps其实是非常小的结果,1ps对应的频率是1THz,如下图的时间轴。

而FPGA内部的逻辑通常也就是在500MHz(局部)以内的,大多数仿真不需要这么高的精度,尤其是做功能仿真的时候。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值