0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

systemverilog读取json文件?

sanyue7758 来源:验证芯发现 2023-10-20 09:19 次阅读

wKgaomUx1dGAIyWmAABIQ4tdqrc987.jpg

当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

仿真后可以得到:

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






审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 仿真器
    +关注

    关注

    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

    C语言入门教程-读取文本文件

    读取文本文件若要读取一个文件,请使用r模式打开。一般来说,读取文件时最好不要用fscanf,因为
    发表于 07-29 11:29 2903次阅读

    labview如何读取excel文件

    本文档的主要内容详细介绍的是labview如何读取excel文件
    发表于 08-16 08:00 199次下载
    labview如何<b class='flag-5'>读取</b>excel<b class='flag-5'>文件</b>

    Json如何进行写入与读取详细方法说明

    中使用json常用superobject单元文件,该文件可以在网上下载,最初接触json是在2011年,好久没用这不刚好有项目要用到又折腾了好久,下面做了一个简单的Demo,方便
    发表于 02-28 08:00 7次下载

    什么是JSON劫持 JSON和XML的区别

    什么是JSON劫持 单从字面上就可以理解的出来,JSON是一种轻量级的数据交换格式,而劫持就是对数据进行窃取(或者应该称为打劫、拦截比较合适。恶意攻击者通过某些特定的手段,将本应该返回给用户
    的头像 发表于 08-05 10:09 1525次阅读

    读取公盘文件方法

    读取公盘文件方法
    发表于 11-07 11:27 0次下载

    分享几个格式化输出json文件的方法

    json 文件是以人类可读形式存储数据的首选文件,但是当它们被压缩编写(不带缩进及换行格式)时,读起来就不那么容易了。
    的头像 发表于 01-04 16:55 5846次阅读
    分享几个格式化输出<b class='flag-5'>json</b><b class='flag-5'>文件</b>的方法

    介绍Python中常用的文件读取方法以及应用示例

    ython 文件读取是 Python 语言中的基本操作之一。在编写Python 程序时,我们经常需要读取不同的文件,例如文本文件、CSV
    的头像 发表于 04-27 09:16 1020次阅读

    python文件读取

    文件读取的步骤: 打开文本文件对象 写入数据 文件读取一般使用如下三个方法: read([size]) : 从
    的头像 发表于 06-21 17:23 1295次阅读
    python<b class='flag-5'>文件</b>的<b class='flag-5'>读取</b>

    labview读取解析CAN DBC文件

    labview读取解析can总线dbc文件
    发表于 07-03 09:18 104次下载

    JServer:用json文件做数据存储的零代码API测试服务器

    Rust 编写的 json 接口和静态文件服务器
    的头像 发表于 07-19 16:31 811次阅读
    JServer:用<b class='flag-5'>json</b><b class='flag-5'>文件</b>做数据存储的零代码API测试服务器

    更低内存占用的通用Json库-RyanJson

    RyanJson是一个小巧的c语言json解析器,包含json文本文件解析 / 生成,专门针对内存占用进行优化,相比cJSON内存占用减少30% - 60%,运行速度和cJSON差不多。
    的头像 发表于 08-24 17:23 1584次阅读
    更低内存占用的通用<b class='flag-5'>Json</b>库-RyanJson

    如何使用Python读取写入Word文件

    01 准备 Python 是一种通用编程语言,也可以用于处理 Microsoft Word 文件。在本文中,我将向你介绍如何使用 Python 和 python-docx 库读取、写入和操作
    的头像 发表于 09-27 17:03 2006次阅读