在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

SystemVerilog中的$timeformat是做什么的?

sanyue7758 ? 來源:硅芯思見 ? 2023-08-16 09:41 ? 次閱讀

在SystemVerilog中,輸出信息顯示時間時,經常會在輸出信息格式中指定“%t”格式符,一般情況下“%t”輸出的格式都是固定的,但是這樣固定的輸出顯示的時間可能有時會讓用戶看起來感覺比較詫異,例如下面的示例。

【示例】

7a6b708a-3b80-11ee-9e74-dac502259ad0.png

仿真結果】

7a89797c-3b80-11ee-9e74-dac502259ad0.png

示例中,設置的timescale是“10ns/1ps”,在$monitor中將$realtime返回的時間通過格式符“%t”輸出,但是此時顯示的時間數值很大,并且沒有單位,這可能會讓用戶不知所措,例如在sig為“11”時,此時顯示的時間為12343,但是這個數字的單位是什么,$relatime本身返回的值并不是這里的12343,示例中顯示的結果為什么與$realtime返回值不同呢,這是為什么呢?其實這主要是因為“%t”的輸出格式受了任務$timeformat(注意是任務不是函數與!)的影響,雖然這里沒有顯式的調用$timeformat,但是其默認值還是會影響到“%t”顯示的時間值,即“%t”默認顯示的時間是按照當前module的timescale設置的精度作為單位的,并且默認情況下顯式的時間后是沒有時間單位字符串的,所以此時就可以理解為什么“%t”在sig為“11”時顯示的時間是12343了,這是因為這個此時顯示的數字的單位是1ps。其實在SystemVerilog中,通過$timeformat可以約束“%t”顯示的時間格式,其中具體參數對應關系如下圖。

7ab40d7c-3b80-11ee-9e74-dac502259ad0.png

其中units_number 是 0 到-15 之間的整數值,表示打印的時間值如下表:

Unit Number Time Unit Unit Number Time Unit
0 1 s -8 10 ns
-1 100 ms -9 1 ns
-2 10 ms -10 100 ps
-3 1 ms -11 10 ps
-4 100 us -12 1 ps
-5 10 us -13 100 fs
-6 1 us -14 10 fs
-7 100 ns -15 1 fs

precision_number 是在打印時間值時,小數點后保留的位數,其默認值為0。

suffix_string 是在時間值后面打印的后綴字符串,其默認值為空字符串。

MinFieldWidth 是時間值字符串與后綴字符串合起來的這部分字符串的最小長度,若這部分字符串不足這個長度,則在這部分字符串左側補空格,直到總長度達到設置的值,如果總字符串比設置的值大,將按照字符串實際長度輸出,其默認值為20。

下面我們通過一個示例進一步理解下$timeformat是如何使用的。

【示例】

7addaa88-3b80-11ee-9e74-dac502259ad0.png

【仿真結果】

7af8f978-3b80-11ee-9e74-dac502259ad0.png

示例中,通過$timeformat指定了“%t”輸出時間的格式,“-9”表示要顯示的時間是按照“1ns”為單位得到的,“3”表示顯示的時間中小數部分的位數,“HaHaHa”為時間字符串之后的后綴字符串,這個字符串一般指定為時間的單位,最后一個參數“2”表示“%t”顯示的整個字符串長度的最小值,因為此時的時間字符串和后綴字符串的長度大于設置的最小值,所以此時按照實際字符串長度顯示,當然也可以把這個字符串最小長度的值設置的大于實際字符串長度,如下例。

【示例】

7b136f24-3b80-11ee-9e74-dac502259ad0.png

【仿真結果】

7b35e3f6-3b80-11ee-9e74-dac502259ad0.png

示例中,通過$timeformat設置了顯示時間字符串的最小長度為13,仿真結果可以看出,實際字符串的長度沒有13個字符串那么長,所以此時字符串按照左對齊,并在字符串左側補空格直到字符船總長度達到$timeformat設置的字符串的最小長度要求為止。另一方面,$timeformat設置了顯示時間保留小數點后的位數為2,所以時間顯示的最終結果保留了2位小數,同時需要注意,此處進行兩位小數保留時會進行四舍五入操作。

通過上述幾個示例,如果我們期望“%t”顯示的時間值與當前仿真時間一致,那么需要給$timeformat設置對應合適的參數或者在輸出時間時在格式字符串中不要指定“%t”,而是直接將其位置空留出來,這樣輸出的數據將完全取決于用戶使用的時間函數

最后,在一個模塊中可以設置多個$timeformat,一個$timeformat生效后會持續到下一個$timeformat,如下例。

【示例】

7b4f7b9a-3b80-11ee-9e74-dac502259ad0.png

【仿真結果】

7b736d34-3b80-11ee-9e74-dac502259ad0.png

示例中,通過仿真結果可以看到第7行設置的$timeformat僅影響到了第8行“%t”的顯示,并沒有影響到第12行“%t”的顯示,第7行設置的$timeformat在遇到第11行設置的$timeformat之后就退出了歷史舞臺,所以第12行“%t”顯示的格式按照第11行設置的$timeformat顯示了。





審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 仿真器
    +關注

    關注

    14

    文章

    1019

    瀏覽量

    83843
  • 字符串
    +關注

    關注

    1

    文章

    585

    瀏覽量

    20562
  • Verilog語言
    +關注

    關注

    0

    文章

    113

    瀏覽量

    8284

原文標題:SystemVerilog中的$timeformat是干啥的

文章出處:【微信號:處芯積律,微信公眾號:處芯積律】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    請問Linear Lab Tool具體是做什么的

    請問Linear Lab Tool具體是做什么的呢?
    發表于 01-05 12:52

    labview幀列表是做什么的,不明白?

    labview幀列表是做什么的,不明白?
    發表于 03-15 10:21

    請問培訓生是做什么的

    技術員培訓生工程師培訓生這些職位是做什么的·····以后怎么發展······
    發表于 02-18 01:24

    請問IIO軟件是做什么的

    IIO軟件是做什么的?剛接觸AD9361,SD卡的系統帶的軟件,可我看了半天,不知道具體該怎么設置波形,還有設置好的波形是輸出波形,還是輸入波形啊?
    發表于 08-03 06:58

    bootloader程序是用來做什么的?與startup程序有區別么?

    想請教一個問題,MCU的bootloader程序是做什么的?與在KEIL寫的startup程序有區別么?另外ISP升級又與bootloader有什么關系?求大俠賜教
    發表于 01-08 10:55

    請問MiniFly提供的固件是為了做什么的

    萌新剛入門,對固件的了解還不是很深。之前玩開發板,沒接觸過固件,所以不明白除了燒寫firmware主程序,bootload和.bin文件是為了做什么的?求求大神賜教
    發表于 07-26 01:42

    stm32的這些時鐘都是做什么的

    請問一下stm32的這些時鐘都是做什么的,有什么區別呢,什么時候改用哪個?SYSCLK,HCLK,PCLK,麻煩大家幫忙指點一下,謝謝!
    發表于 05-27 04:35

    Native是用來做什么的

    PDK的mos管類型的Native是用來做什么的
    發表于 01-18 06:46

    SOHO一族,SOHO一族是做什么的?

    SOHO一族,SOHO一族是做什么的?  隨著中國加入世貿組織,互聯網信息化高速發展帶來的機遇,加之傳統外貿企業的固疾逐步推生出一個
    發表于 03-22 10:08 ?4524次閱讀

    數據庫工程師是做什么的

    每當我給別人介紹我的職位是數據庫工程師的時候,別人都會用疑惑的眼睛看著我。總會拋出一個問題:數據庫工程師是做什么的
    的頭像 發表于 08-27 09:00 ?9422次閱讀

    半導體公司是做什么的

    半導體指常溫下導電性能介于導體與絕緣體之間的材料。半導體在收音機、電視機以及測溫上有著廣泛的應用。如二極管就是采用半導體制作的器件。本文主要詳細介紹了半導體公司是做什么的
    的頭像 發表于 09-27 11:10 ?4w次閱讀

    程序員到底是做什么的

    很多人問程序員是是做什么的?或者問IT是做什么的?對于非IT行業的人很難有時間慢慢解釋清楚,下面我結合自己的理解談一談吧。
    的頭像 發表于 02-12 16:17 ?9366次閱讀

    什么是汽車芯片 汽車芯片是做什么的

    什么是汽車芯片?汽車芯片是做什么的?芯片是一種半導體元件,汽車芯片是控制汽車安全行駛的電子器件,汽車芯片主要分為功能芯片、功率半導體、傳感器三大類,即微控單元,主要負責算力。
    的頭像 發表于 12-16 11:52 ?1.4w次閱讀

    ip地址是做什么的

    如果你現在正在看我的這篇文章,那說明你已經連接上了互聯網。說到互聯網,你一定聽說 ip 地址這個概念,你知道 ip 地址是做什么的嗎?與之而來的還有公網 ip ,私網 ip ,你知道有什么區別嗎?
    的頭像 發表于 09-16 10:03 ?3257次閱讀

    AI工作流自動化是做什么的

    AI工作流自動化是指利用人工智能技術,對工作流程的重復性、規則明確的任務進行自動化處理的過程。那么,AI工作流自動化是做什么的呢?接下來,AI部落小編為您分享。
    的頭像 發表于 01-06 17:57 ?105次閱讀
    主站蜘蛛池模板: a成人毛片免费观看 | japan日韩xxxx69hd jdav视频在线观看 | 欧美zooz人与禽交 | 男人你懂的在线观看视频 | 欧美视频在线观在线看 | 久久精品女人天堂 | 欧美一级一一特黄 | 两性色午夜视频免费播放 | tv电影天堂| 一区二区三区福利 | 亚洲天堂导航 | 真人一级一级特黄高清毛片 | 午夜操操 | 国产亚洲美女精品久久久久狼 | 萌白酱一线天粉嫩喷水在线观看 | 久久精品国产免费中文 | 欧美精品一区二区三区在线播放 | 色黄网 | 久操视频在线观看 | 欧美日韩一区二区三区毛片 | 日干夜操 | 黄网在线看 | a一级 | 天天做天天爱天天爽综合区 | 五月天激情综合网 | 日日爽夜夜 | 午夜小影院 | 人人干天天操 | 天天鲁天天爽精品视频 | 性欧美17一18sex性高清 | 久久久久久国产精品免费 | 性高清 | 美女把尿口扒开让男人桶出水 | 天天拍拍天天爽免费视频 | 国产精品福利午夜在线观看 | 黄色aa毛片 | 亚州色图欧美色图 | 国模鲍鱼| 美国bj69video18视频 | 最新看片网址 | 99一级毛片|