當plusargs的數量很多時,此時的命令行參數會非常多,或者相應的仿真配置文件也會變得復雜和冗長,且容易出錯。此時可以考慮使用json文件傳入相關的配置信息,環境中獲取對應的配置數據。
systemverilog讀取json文件?
是的,并且已經有了相關的開源庫JSONinSV實現了常用的讀取json,獲取string、int、bool類型的數據、保存json文件、修改json數據的功能,也可以解析多個object嵌套的結構,對json語法的支持很好。
這里將常用的幾個plusargs選項放置在json文件中,sv側解析到對應的配置信息。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側的解析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
仿真后可以得到:
審核編輯:劉清
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
仿真器
+關注
關注
14文章
1018瀏覽量
83746 -
Verilog語言
+關注
關注
0文章
113瀏覽量
8235
原文標題:換種方式管理plusargs傳入的控制參數
文章出處:【微信號:處芯積律,微信公眾號:處芯積律】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
?PLC從HTTP服務端獲取JSON文件,解析數據到寄存器
智能網關IGT-DSER集成了多種PLC協議,方便實現各種PLC與HTTP服務端之間通訊。通過網關的參數配置軟件綁定JSON文件的字段與PLC寄存器地址,配置URL,即可采用POST命令,將JSON
發表于 01-24 09:47
LabVIEW如何調用網頁返回的JSON文件?
現在能在LabVIEW里打開網頁,但我所需要的網頁會自動返回json文件,必須要選擇是否保存,我想在LabVIEW里自動調用json文件里內容,應該怎么做呢?
發表于 07-19 21:21
如何從SD卡中讀取JSON格式?
我想從SD卡中讀取JSON格式,但是每個長度都不一樣。并讀取度固定行或指定從某行開始,轉換為NEW JSON struct。我應該怎么做?文件
發表于 02-22 07:42
Json如何進行寫入與讀取詳細方法說明
中使用json常用superobject單元文件,該文件可以在網上下載,最初接觸json是在2011年,好久沒用這不剛好有項目要用到又折騰了好久,下面做了一個簡單的Demo,方便
發表于 02-28 08:00
?7次下載
什么是JSON劫持 JSON和XML的區別
什么是JSON劫持 單從字面上就可以理解的出來,JSON是一種輕量級的數據交換格式,而劫持就是對數據進行竊取(或者應該稱為打劫、攔截比較合適。惡意攻擊者通過某些特定的手段,將本應該返回給用戶
介紹Python中常用的文件讀取方法以及應用示例
ython 文件讀取是 Python 語言中的基本操作之一。在編寫Python 程序時,我們經常需要讀取不同的文件,例如文本文件、CSV
更低內存占用的通用Json庫-RyanJson
RyanJson是一個小巧的c語言json解析器,包含json文本文件解析 / 生成,專門針對內存占用進行優化,相比cJSON內存占用減少30% - 60%,運行速度和cJSON差不多。
如何使用Python讀取寫入Word文件
01 準備 Python 是一種通用編程語言,也可以用于處理 Microsoft Word 文件。在本文中,我將向你介紹如何使用 Python 和 python-docx 庫讀取、寫入和操作
評論