python SystemRDL 包介绍

news2025/1/19 20:39:45

        对于芯片验证,在验证寄存器环节,如果我们需要根据大量的寄存器来构建我们的sequence或者激励,比如irq测试,我们需要测试irq信号源到寄存器门口的连接是否正常,irq 寄存器各个field的接线排序是否有弄错,以及最基本读写功能等。如果能够借助脚本来统一产生我们的sequence或者激励必须能减轻我们的工作量并且能够统一化。

        刚好python有个SystemRDL包就是用来对寄存器描述语言(rdl)进行各种处理,下面我们就来看看这个包都能做些什么,下一篇再介绍一些实际应用中的简单例子。

 一.RDLCompiler(systemrdl.RDLCompiler)

systemrdl-compiler 模块为Accellera的SystemRDL 2.0寄存器描述语言实现了通用编译器前端。该项目的目标是提供一个免费和开放的编译器,降低使用行业标准寄存器描述语言的门槛。通过提供易于遍历和查询的复杂寄存器模型,编写自定义寄存器空间视图生成器应该容易得多

        

        首先来看这样一段rdl描述:

reg my_reg_t {
    field {} f1;
    field {} f2;
};

addrmap top {
    my_reg_t A[4];
    my_reg_t B;
};

经过compiler处理之后会变成下面这种树型结构:

        每个树型结构上的一个节点都是一个component(systemrdl.component.Component,除root外,每个component都是另外一个component的子项(children)。

          一些常用的函数:

compile_file(path: str, incl_search_paths: Optional[List[str]] = None, defines: Optional[Dict[str, str]] = None)→ FileInfo

功能:解析并编译单个rdl文件,并将其附加到RDLCompiler的根命名空间。

参数含义:
      path:rdl文件的路径

      incl_search_paths:可选参数,相当于include,函数会在给的路径下搜索rdl文件

      define:可选参数,RTL宏定义   ,是个字典,key是macro,value是macro text

elaborate(top_def_name: Optional[str] = None, inst_name: Optional[str] = None, parameters: Optional[Dict[str, RDLValue]] = None)→ RootNode

功能:基于compile_file产生的树型结构info信息产生Node信息文件。

参数:

     top_def_name (str):显式选择哪个addrmap作为top

     inst_name (str) :top的例化名字

      parameters (dict) :override top instance的字典

二. Node(systemrdl.node.Node)

      "节点”叠加是一种附加的数据结构,用来简化查询和遍历寄存器模型。与寄存器模型的大部分交互都应通过 Node 对象进行,Node包含以下信息:
               a. 当前component的实例

               b. 当前component的实例的“母亲”

               c.当前component的实例的索引idx(多次例化的情况)

上面的rdl对应的Node信息如下:

 Node也是分层级的,不同层级之间是继承关系,用户可以使用自己感兴趣的层级的Node:

一些常用的重要的函数:

get_property(prop_name: str, **kwargs: Any)→ Any

   功能:或者component在rdl描述中的值

    参数:

          prop_name (str):property name

未完待续。。。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/925825.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux常用命令——dhcpd命令

在线Linux命令查询工具 dhcpd 运行DHCP服务器。 语法 dhcpd [选项] [网络接口]选项 -p <端口> 指定dhcpd监听的端口 -f 作为前台进程运行dhcpd -d 启用调试模式 -q 在启动时不显示版权信息 -t 简单地测试配置文件的语法是否正确的&#xff0c;但不会尝试执行任何网络…

五度易链最新“产业大数据服务解决方案”亮相,打造数据引擎,构建智慧产业!

自2015年布局产业大数据服务行业以来&#xff0c;“五度易链”作为全国产业大数据服务行业先锋企业&#xff0c;以“让数据引领决策&#xff0c;以智慧驾驭未来”为愿景&#xff0c;肩负“打造数据智能引擎&#xff0c;构建智慧产业新生态”的使命&#xff0c;坚持着精益生产、…

地下水资源监控中应用的深水液位传感器

地下水是水资源重要的组成部分,虽属可再生资源,但地下水更新和自净非常缓慢,一旦被污染,所造成的环境与生态破坏,往往长时间难以逆转。目前中国90%的城市地下水遭受污染,已呈现由点向面扩展的趋势。因此,加强对地下水的监控和相应技术的开发成为一种迫切需要。 环境监测是环境…

大数据(一)定义、特性

大数据&#xff08;一&#xff09;定义、特性 本文目录&#xff1a; 一、写在前面的话 二、大数据定义 三、大数据特性 3.1、大数据的大量 (Volume) 特性 3.2、大数据的高速(Velocity)特性 3.3、大数据的多样化 (Variety) 特性 3.4、大数据的价值 (value) 特性 3.5、大…

Linux下套接字TCP实现网络通信

Linux下套接字TCP实现网络通信 文章目录 Linux下套接字TCP实现网络通信1.引言2.具体实现2.1接口介绍1.socket()2.bind()3.listen()4.accept()5.connect() 2.2 服务器端server.hpp2.3服务端server.cc2.4客户端client.cc 1.引言 ​ 套接字(Socket)是计算机网络中实现网络通信的一…

【算法】双指针求解盛最多水的容器

Problem: 11. 盛最多水的容器 文章目录 题目解析算法原理讲解复杂度Code 题目解析 首先我们来解析一下本题 题目中说到&#xff0c;要找出其中的两条线&#xff0c;使得它们与 x 轴共同构成的容器可以容纳最多的水。 那我们现在来看最外侧的两根&#xff0c;一个高度为8&#…

GaussDB数据库SQL系列:DROP TRUNCATE DELETE

目录 一、前言 二、GaussDB的 DROP & TRUNCATE & DELETE 简述 1、命令简述 2、命令比对 三、GaussDB的DROP TABLE命令及示例 1、功能描述 2、语法 3、示例 四、GaussDB的TRUNCATE命令及示例 1、功能描述 2、语法 3、示例 4、示例 五、GaussDB的DELETE命令…

一文速学-让神经网络不再神秘,一天速学神经网络基础-激活函数(二)

前言 思索了很久到底要不要出深度学习内容&#xff0c;毕竟在数学建模专栏里边的机器学习内容还有一大半算法没有更新&#xff0c;很多坑都没有填满&#xff0c;而且现在深度学习的文章和学习课程都十分的多&#xff0c;我考虑了很久决定还是得出神经网络系列文章&#xff0c;…

VSCode配置终端默认为cmd命令行方式

1、新建终端 2、点击默认配置文件 3、选择第一个即可&#xff01;

臻图信息基于数字孪生技术搭建智慧电厂管理系统解决方案

随着可再生能源在电力行业中占比不断提升&#xff0c;以及互联网技术的深入和大数据时代的到来&#xff0c;智能化应用正在悄然地改变着电力企业运营模式。臻图信息以数字孪生、ZTMap3D、地理信息为技术手段&#xff0c;从管、查、监、云、端等几个层面全面建设电力监管系统平台…

国产调度器之光——Fsched到底有多能打?

这是一篇推荐我们速石自研调度器——Fsched的文章。 看起来在专门写调度器&#xff0c;但又不完全在写。 往下看&#xff0c;你就懂了。 本篇一共五个章节&#xff1a; 一、介绍一下主角——速石自研调度器Fsched 二、只要有个调度器&#xff0c;就够了吗&#xff1f; 三…

伯俊ERP对接打通金蝶云星空表头表体组合查询接口与应收单新增接口

伯俊ERP对接打通金蝶云星空表头表体组合查询接口与应收单新增接口 对接源平台:伯俊ERP 伯俊科技&#xff0c;依托在企业信息化建设方面的领先技术与实践积累&#xff0c;致力于帮助企业实现全渠道一盘货。伯俊提供数字经营的咨询与系统实施&#xff0c;助力企业信息化升级、加速…

ChatGPT在工业领域的研究与应用探索-数据与工况认知

1. ChatGPT发展现状 ChatGPT是基于OpenAI的GPT-4架构的一种大型语言模型。截至2021年9月&#xff0c;最新版本是GPT-3。在过去的几年里&#xff0c;ChatGPT已经取得了显著的进步&#xff0c;具备更强的自然语言处理和生成能力。 目前&#xff0c;ChatGPT的应用领域广泛&#…

05架构管理之持续集成-DevOps的理解与实现

专栏说明&#xff1a;针对于企业的架构管理岗位&#xff0c;分享架构管理岗位的职责&#xff0c;工作内容&#xff0c;指导架构师如何完成架构管理工作&#xff0c;完成架构师到架构管理者的转变。计划以10篇博客阐述清楚架构管理工作&#xff0c;专栏名称&#xff1a;架构管理…

基于SSM+vue框架的个人博客网站源码和论文

基于SSMvue框架的个人博客网站源码和论文061 开发工具&#xff1a;idea 数据库mysql5.7 数据库链接工具&#xff1a;navcat,小海豚等 技术&#xff1a;ssm &#xff08;设计&#xff09;研究背景与意义 关于博客的未来&#xff1a;在创办了博客中国(blogchina)、被誉为“…

【LeetCode75】第三十六题 路径总和3

目录 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 代码&#xff1a; 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 题目给我们一棵树&#xff0c;每个节点都有一个值&#xff0c;我们需要找出一条路径&#xff0c;这条路径上所有节点的值的和等于一个目标…

解决华为云ping不通的问题

进入华为云控制台。依次选择&#xff1a;云服务器->点击服务器id->安全组->更改安全组->添加入方向规则&#xff0c;添加一个安全组规则&#xff08;ICMP&#xff09;&#xff0c;详见下图 再次ping公网ip就可以ping通了 产生这一问题的原因是ping的协议基于ICMP协…

缺少代码签名证书会怎么样?

在当下恶意软件攻击频发的情形下&#xff0c;使用代码签名证书来保护代码安全已经成为每个软件开发商的基本认知。代码签名证书将保护软件代码的完整性&#xff0c;避免软件被非法篡改或植入恶意代码病毒&#xff0c;从而使得软件可以正常运行。那么如果软件缺少代码签名证书会…

栈和队列OJ题

有效括号问题&#xff1a; 题目描述&#xff1a; 给定一个只包括 (&#xff0c;)&#xff0c;{&#xff0c;}&#xff0c;[&#xff0c;] 的字符串 s &#xff0c;判断字符串是否有效。 有效字符串需满足&#xff1a; 左括号必须用相同类型的右括号闭合。左括号必须以正确的…

R语言之 dplyr 包

文章和代码已经归档至【Github仓库&#xff1a;https://github.com/timerring/dive-into-AI 】或者公众号【AIShareLab】回复 R语言 也可获取。 文章目录 1.使用 filter( ) 和 slice( ) 筛选行2.使用 arrange( ) 排列行3. 使用 select( ) 选择列4.使用 mutate( ) 添加新变量5.使…