verilog代码连线集成工具的实践

目录

引言

代码解析

解析器的需求

数据结构

基础class

集合class:

界面

模块例化里界面

连线界面

连线界面示例

消息传递


引言

工作中经常需要开发很多自动化的脚本或者小工具来提升开发效率。在没有读《Cad Frameworks: Principles And Architecture》之前,这些脚本或者工具的开发,只是按照功能需求,用各种function和变量、类堆砌而成。但是随着脚本代码规模的增加,脚本就像一个打满补丁的轮胎,每迭代一次,都很恼火。

最近刚好完成一个公司内部的自动连线工具,在开发前按照书中的结构划分,照猫画虎做了类似的分层设计。目前迭代很多版,修改起来比以前轻松很多。回看书中的framework,有多了一些认知,对这本1994年初版的书心中默默点了个赞。

此外,还要感谢pyverilog的作者,从他的代码中借鉴了部分数据结构。

代码解析

代码解析直接使用开源的解析工具。然后从工具中提取需要的数据,组成module的数据结构。

解析器的需求

  1. 支持宏定义的展开

  2. 支持提取parameter的名字和值。目前用的verilog-perl只能提取parameter的定义字符,对于parameter之间的嵌套引用,还需要自己处理。

  3. 支持端口名、位宽、方向等信息

  4. 支持按照定义的顺序获取端口信息

目前在用verilog-perl,基本上满足端口解析的需求。

解析结果通过转换为xml或者json,提供给自研的工具进行读取。

使用json作为中间格式,除了便于调试,还便于以后切换不同的编译

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

flashman911

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值