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

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

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

systemverilog讀取json文件?

sanyue7758 ? 來(lái)源:驗(yàn)證芯發(fā)現(xiàn) ? 2023-10-20 09:19 ? 次閱讀

wKgaomUx1dGAIyWmAABIQ4tdqrc987.jpg

當(dāng)plusargs的數(shù)量很多時(shí),此時(shí)的命令行參數(shù)會(huì)非常多,或者相應(yīng)的仿真配置文件也會(huì)變得復(fù)雜和冗長(zhǎng),且容易出錯(cuò)。此時(shí)可以考慮使用json文件傳入相關(guān)的配置信息,環(huán)境中獲取對(duì)應(yīng)的配置數(shù)據(jù)。

systemverilog讀取json文件?

是的,并且已經(jīng)有了相關(guān)的開(kāi)源庫(kù)JSONinSV實(shí)現(xiàn)了常用的讀取json,獲取string、int、bool類(lèi)型的數(shù)據(jù)、保存json文件、修改json數(shù)據(jù)的功能,也可以解析多個(gè)object嵌套的結(jié)構(gòu),對(duì)json語(yǔ)法的支持很好。

這里將常用的幾個(gè)plusargs選項(xiàng)放置在json文件中,sv側(cè)解析到對(duì)應(yīng)的配置信息。json的配置信息如下:

{
"enable_3G_clk":true,
"axi_vip_enable":false,
"trans_num":123,
"push_data":[1,2,3],
"cfg_reg":[
{"addr":100,
"data":1},

{"addr":200,
"data":4}
]
}

sv側(cè)的解析demo如下:

classjson_test;
virtualfunctionvoidrun_test();
stringjson_str,keys[$];
JSONValuejv,node_value;
intvalue_list[$];

jv=new();
jv.loadFromFile(json_file);

//printstringjsoncontext
jv.dumps(json_str,4);
$display("%s",json_str);

//getallkeys
jv.getObjectKeys(keys);
$display("allcfgoption:%p",keys);

node_value=jv.getObjectMember("trans_num");
$display("trans_num:%p",node_value.getNumber);

node_value=jv.getObjectMember("push_data");
getArrayIntValue(node_value,value_list);
$display("push_data:%p",value_list);
endfunction
virtualfunctionvoidgetArrayIntValue(constrefJSONValuex_jv,outputintx_value[$]);
intarray_size=x_jv.getArraySize();
for(inti=0;i

仿真后可以得到:

000c64ea-6eaa-11ee-939d-92fbcf53809c.png






審核編輯:劉清

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

    關(guān)注

    14

    文章

    1014

    瀏覽量

    83591
  • Verilog語(yǔ)言
    +關(guān)注

    關(guān)注

    0

    文章

    113

    瀏覽量

    8206

原文標(biāo)題:換種方式管理plusargs傳入的控制參數(shù)

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

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    ?PLC從HTTP服務(wù)端獲取JSON文件,解析數(shù)據(jù)到寄存器

    智能網(wǎng)關(guān)IGT-DSER集成了多種PLC協(xié)議,方便實(shí)現(xiàn)各種PLC與HTTP服務(wù)端之間通訊。通過(guò)網(wǎng)關(guān)的參數(shù)配置軟件綁定JSON文件的字段與PLC寄存器地址,配置URL,即可采用POST命令,將JSON
    發(fā)表于 01-24 09:47

    LabVIEW如何調(diào)用網(wǎng)頁(yè)返回的JSON文件

    現(xiàn)在能在LabVIEW里打開(kāi)網(wǎng)頁(yè),但我所需要的網(wǎng)頁(yè)會(huì)自動(dòng)返回json文件,必須要選擇是否保存,我想在LabVIEW里自動(dòng)調(diào)用json文件里內(nèi)容,應(yīng)該怎么做呢?
    發(fā)表于 07-19 21:21

    如何從SD卡中讀取JSON格式?

    我想從SD卡中讀取JSON格式,但是每個(gè)長(zhǎng)度都不一樣。并讀取度固定行或指定從某行開(kāi)始,轉(zhuǎn)換為NEW JSON struct。我應(yīng)該怎么做?文件
    發(fā)表于 02-22 07:42

    C語(yǔ)言入門(mén)教程-讀取文本文件

    讀取文本文件若要讀取一個(gè)文件,請(qǐng)使用r模式打開(kāi)。一般來(lái)說(shuō),讀取文件時(shí)最好不要用fscanf,因?yàn)?/div>
    發(fā)表于 07-29 11:29 ?2899次閱讀

    labview如何讀取excel文件

    本文檔的主要內(nèi)容詳細(xì)介紹的是labview如何讀取excel文件
    發(fā)表于 08-16 08:00 ?199次下載
    labview如何<b class='flag-5'>讀取</b>excel<b class='flag-5'>文件</b>

    Json如何進(jìn)行寫(xiě)入與讀取詳細(xì)方法說(shuō)明

    中使用json常用superobject單元文件,該文件可以在網(wǎng)上下載,最初接觸json是在2011年,好久沒(méi)用這不剛好有項(xiàng)目要用到又折騰了好久,下面做了一個(gè)簡(jiǎn)單的Demo,方便
    發(fā)表于 02-28 08:00 ?7次下載

    什么是JSON劫持 JSON和XML的區(qū)別

    什么是JSON劫持 單從字面上就可以理解的出來(lái),JSON是一種輕量級(jí)的數(shù)據(jù)交換格式,而劫持就是對(duì)數(shù)據(jù)進(jìn)行竊取(或者應(yīng)該稱(chēng)為打劫、攔截比較合適。惡意攻擊者通過(guò)某些特定的手段,將本應(yīng)該返回給用戶(hù)
    的頭像 發(fā)表于 08-05 10:09 ?1519次閱讀

    讀取公盤(pán)文件方法

    讀取公盤(pán)文件方法
    發(fā)表于 11-07 11:27 ?0次下載

    分享幾個(gè)格式化輸出json文件的方法

    json 文件是以人類(lèi)可讀形式存儲(chǔ)數(shù)據(jù)的首選文件,但是當(dāng)它們被壓縮編寫(xiě)(不帶縮進(jìn)及換行格式)時(shí),讀起來(lái)就不那么容易了。
    的頭像 發(fā)表于 01-04 16:55 ?5807次閱讀
    分享幾個(gè)格式化輸出<b class='flag-5'>json</b><b class='flag-5'>文件</b>的方法

    介紹Python中常用的文件讀取方法以及應(yīng)用示例

    ython 文件讀取是 Python 語(yǔ)言中的基本操作之一。在編寫(xiě)Python 程序時(shí),我們經(jīng)常需要讀取不同的文件,例如文本文件、CSV
    的頭像 發(fā)表于 04-27 09:16 ?1007次閱讀

    python文件讀取

    文件讀取的步驟: 打開(kāi)文本文件對(duì)象 寫(xiě)入數(shù)據(jù) 文件讀取一般使用如下三個(gè)方法: read([size]) : 從
    的頭像 發(fā)表于 06-21 17:23 ?1285次閱讀
    python<b class='flag-5'>文件</b>的<b class='flag-5'>讀取</b>

    labview讀取解析CAN DBC文件

    labview讀取解析can總線dbc文件
    發(fā)表于 07-03 09:18 ?104次下載

    JServer:用json文件做數(shù)據(jù)存儲(chǔ)的零代碼API測(cè)試服務(wù)器

    Rust 編寫(xiě)的 json 接口和靜態(tài)文件服務(wù)器
    的頭像 發(fā)表于 07-19 16:31 ?806次閱讀
    JServer:用<b class='flag-5'>json</b><b class='flag-5'>文件</b>做數(shù)據(jù)存儲(chǔ)的零代碼API測(cè)試服務(wù)器

    更低內(nèi)存占用的通用Json庫(kù)-RyanJson

    RyanJson是一個(gè)小巧的c語(yǔ)言json解析器,包含json文本文件解析 / 生成,專(zhuān)門(mén)針對(duì)內(nèi)存占用進(jìn)行優(yōu)化,相比cJSON內(nèi)存占用減少30% - 60%,運(yùn)行速度和cJSON差不多。
    的頭像 發(fā)表于 08-24 17:23 ?1548次閱讀
    更低內(nèi)存占用的通用<b class='flag-5'>Json</b>庫(kù)-RyanJson

    如何使用Python讀取寫(xiě)入Word文件

    01 準(zhǔn)備 Python 是一種通用編程語(yǔ)言,也可以用于處理 Microsoft Word 文件。在本文中,我將向你介紹如何使用 Python 和 python-docx 庫(kù)讀取、寫(xiě)入和操作
    的頭像 發(fā)表于 09-27 17:03 ?1988次閱讀