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

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

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

3天內(nèi)不再提示

SystemVerilog中的$timeformat是做什么的?

sanyue7758 ? 來源:硅芯思見 ? 2023-08-16 09:41 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

【示例】

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

仿真結(jié)果】

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

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

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

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

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 是在打印時間值時,小數(shù)點后保留的位數(shù),其默認值為0。

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

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

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

【示例】

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

【仿真結(jié)果】

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

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

【示例】

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

【仿真結(jié)果】

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

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

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

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

【示例】

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

【仿真結(jié)果】

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

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





審核編輯:劉清

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

    關(guān)注

    14

    文章

    1036

    瀏覽量

    85276
  • 字符串
    +關(guān)注

    關(guān)注

    1

    文章

    590

    瀏覽量

    21273
  • Verilog語言
    +關(guān)注

    關(guān)注

    0

    文章

    113

    瀏覽量

    8536

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

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

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

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

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

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

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

    請問培訓(xùn)生是做什么的

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

    請問IIO軟件是做什么的

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

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

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

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

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

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

    請問一下stm32的這些時鐘都是做什么的,有什么區(qū)別呢,什么時候改用哪個?SYSCLK,HCLK,PCLK,麻煩大家?guī)兔χ更c一下,謝謝!
    發(fā)表于 05-27 04:35

    Native是用來做什么的

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

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

    SOHO一族,SOHO一族是做什么的?  隨著中國加入世貿(mào)組織,互聯(lián)網(wǎng)信息化高速發(fā)展帶來的機遇,加之傳統(tǒng)外貿(mào)企業(yè)的固疾逐步推生出一個
    發(fā)表于 03-22 10:08 ?4579次閱讀

    數(shù)據(jù)庫工程師是做什么的

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

    半導(dǎo)體公司是做什么的

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

    程序員到底是做什么的

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

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

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

    ip地址是做什么的

    如果你現(xiàn)在正在看我的這篇文章,那說明你已經(jīng)連接上了互聯(lián)網(wǎng)。說到互聯(lián)網(wǎng),你一定聽說 ip 地址這個概念,你知道 ip 地址是做什么的嗎?與之而來的還有公網(wǎng) ip ,私網(wǎng) ip ,你知道有什么區(qū)別嗎?
    的頭像 發(fā)表于 09-16 10:03 ?3608次閱讀

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

    AI工作流自動化是指利用人工智能技術(shù),對工作流程的重復(fù)性、規(guī)則明確的任務(wù)進行自動化處理的過程。那么,AI工作流自動化是做什么的呢?接下來,AI部落小編為您分享。
    的頭像 發(fā)表于 01-06 17:57 ?681次閱讀
    主站蜘蛛池模板: 国产一级片免费 | 狠狠色伊人亚洲综合第8页 狠狠色依依成人婷婷九月 狠狠色影院 | 日本人视频-jlzz jlzz jlzz | 色久优优 | 亚洲综合五月天 | 在线午夜视频 | 一级毛片在线免费视频 | 久久ww| 黄色日屁 | 四虎影视免费看 | 一区二区三区四区在线免费观看 | 欧美透逼视频 | 狠狠干天天射 | 亚洲国产欧美日韩一区二区三区 | 日本黄色网址免费 | 亚洲国产成人久久三区 | 天天干夜夜欢 | 激情五月激情综合网 | 亚洲一区二区三区免费在线观看 | 日本人xxxxxxxxxⅹ69 | 亚洲国产视频网 | 精品三级三级三级三级三级 | 欧美日韩国产另类一区二区三区 | 永久免费影视在线观看 | a天堂中文在线官网 | 狠狠色狠狠色综合日日小蛇 | 欧美三级一区二区 | 亚洲综合五月天婷 | 波多野结衣在线免费视频 | 在线观看视频你懂得 | 人人添人人澡人人澡人人人爽 | 一级特黄aa大片免费 | 天天干亚洲 | 色老头影院 | 天天综合在线观看 | 天天碰夜夜 | 99久久久精品 | 岛国毛片一级一级特级毛片 | 操到喷水 | 自拍你懂的| 国产在线观看色 |