verilog 中的 timescale
生活随笔
收集整理的這篇文章主要介紹了
verilog 中的 timescale
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
原文鏈接:https://blog.csdn.net/qq_16923717/article/details/81099833
timescale 的語法
timescale 是 Verilog 中的預編譯指令,指定位于它后邊的module的時間單位和時間精度,直到遇到新的 timescale 指令或者 resetall 指令。它的語法如下:
`timescale time_unit / time_precision假如我們延時 x 個時間單位,那延時的總時間 time = x * time_unit, 但最后真正延時的時間是根據 time_precision 對 time 進行四舍五入后的結果,如下面的代碼所示。
`timescale 100ns / 10ns // 時間單位100ns,時間精度10ns module tb; reg [4:0] set; parameter d1 = 20,d2 = 1.5,d3 = 1.54,d4 = 1.55;initial begin#d1 set = 0; // real_delay = round(20*100) = 2000ns#d2 set = 1; // real_delay = round(1.5*100) = 150ns #d3 set = 2; // real_delay = round(1.54*100) = 150ns // 以10ns為精度做四舍五入#d4 set = 3; // real_delay = round(1.55*100) = 160ns // 以10ns為精度做四舍五入 endendmodule注意事項:
1)時間單位和時間精度只能是1、10 和100 這三種整數,單位有s、ms、us、ns、ps 和 fs;
2)時間精度必須小于等于時間單位
timescale 時間精度對仿真時間的影響
timescale 的時間精度設置是會影響仿真時間的,如下面幾種設置。最后一種設置可能是第一種的一倍還多,并且占用更多的內存,所以若沒有必要,應盡量將時間精度設置得更大一些。
`timescale 1ns / 1ns `timescale 1ns / 100ps `timescale 1ns / 10ps `timescale 1ns / 1ps總結
以上是生活随笔為你收集整理的verilog 中的 timescale的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 不带头节点的单链表如何头插(多图易懂)
- 下一篇: python爬虫 django搜索修改更