Svlib-configuration files

概述

cfg_file的解析和生成对于芯片验证工作来说是非常重要也非常常见的,svlib提供了这样的一个可以解析和生成cfg_file的功能,目前支持解析和生成ini格式的文件内容,yaml格式的文件内容暂不支持解析和生成。不了解ini和yaml文件格式的可以看以下博文,这里不加赘述。https://www.cnblogs.com/xiaofenggou/p/16667390.html

单层级的使用

svlib提供的cfg_file这样的一个功能是基于一个类及其变量和ini文件文件的一个映射关系所提供的,最简单的使用方式如下:

这是一个单层级的cfg_file的使用,一个简单的类的对象和ini文件的一个映射,该对象里没有任何其他对象实例。可以看到比较特别的是使用了`SVLIB_DOM_UTILS_BEGIN,`SVLIB_DOM_UTILS_END,`SVLIB_DOM_UTILS_FIELD_INT,`SVLIB_DOM_UTILS_FIELD_STRING这几个宏,看着和UVM的factory机制中的注册宏很类似,其中DOM的含义是document object model,是svlib中文件对象管理的模型,模型只专注于支持的文件格式的数据管理。当使用这些宏将class及其内部的变量注册到DOM中之后,就自动的在class里创建了2个新的function:

function void fromDOM(cfgNodeMap dom);

function cfgNodeMap toDOM(string name); 

toDOM主要用于完成类中的变量转换成DOM中的特定格式,fromDOM完成DOM中特定的数据转换成类中的特定变量。cfgNodeMap是一个类似于键值对的class,用于保存特定的键值数据。cfgFileINI是一个用于处理ini文件根据cfgNodeMap的写入,读出处理的class,cfgError_enum是一个用于错误消息管理的class。

嵌套级的使用

嵌套级的使用如上图所示,class内部除了变量之外,还有其他的class对象类型,只是在使用SVLIB的DOM进行注册时,使用`SVLIB_DOM_FIELD_OBJECT宏进行注册。结果如最后一个图,可以看到不同的子对象,以[]分隔,自身的变量和数值都是使用=,这也是ini文件形式的一个特点。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值