当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文章
1016浏览量
83624 -
Verilog语言
+关注
关注
0文章
113浏览量
8211
原文标题:换种方式管理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 库读取、写入和操作
评论