优化数字前端工作流的小脚本v2.0
挖了个新坑,在github上开了个项目:https://github.com/sasasatori/APBRST/tree/main
APBRST: 基于Pyverilog的RTL到文档翻译工具
作者: sasasatori, 联系方式: 2861704773@qq.com
序言
APBRST旨在帮助Verilog RTL开发者自动且轻松地从Verilog代码生成原始文档,以加速代码理解和文档编写的过程。未来可能还支持SystemVerilog的翻译或从文档生成原始RTL代码。该工具基于开源项目Pyverilog,使用Python编写。
许可证
Apache许可证2.0 (http://www.apache.org/licenses/LICENSE-2.0)
安装
要求与Pyverilog相同
- Python3: 3.7或更高版本
- Icarus Verilog: 10.1或更高版本
sudo apt install iverilog
- Jinja2: 2.10或更高版本
- PLY: 3.4或更高版本
pip3 install jinja2 ply
安装Pyverilog后即可直接使用APBRST
现在可以通过setup.py脚本安装Pyverilog:
python3 setup.py install
使用方法
可以直接运行APBRST:
python3 verilog2spec.py ./verilog/<filename>.v
示例Verilog文件存放在/verilog目录中,包括cmsdk_ahb_gpio.v和fifo.v
运行结果示例:
User@System:~/<path>/APBRST$ python3 verilog2spec.py ./verilog/cmsdk_ahb_gpio.v
Generating LALR tables
WARNING: 183 shift/reduce conflicts
-------------------------generate module tree-------------------------
cmsdk_ahb_gpio (top)
├── u_ahb_to_gpio: cmsdk_ahb_to_iop
└── u_iop_gpio: cmsdk_iop_gpio
-------------------------generate param table-------------------------
| Parameter | Default Value | Function |
| :-------: | :-----------: | :------: |
| ALTERNATE_FUNC_MASK | 16'h0000 | |
| ALTERNATE_FUNC_DEFAULT | 16'h0000 | |
| BE | 0 | |
-------------------------generate port table-------------------------
| Port | Width | Direction | Function |
| :----------: | :---: | :-------: | :------: |
| HCLK | 1 | Input | |
| HRESETn | 1 | Input | |
| FCLK | 1 | Input | |
| HSEL | 1 | Input | |
| HREADY | 1 | Input | |
| HTRANS | 2 | Input | |
| HSIZE | 3 | Input | |
| HWRITE | 1 | Input | |
| HADDR | 12 | Input | |
| HWDATA | 32 | Input | |
| ECOREVNUM | 4 | Input | |
| PORTIN | 16 | Input | |
| HREADYOUT | 1 | Output | |
| HRESP | 1 | Output | |
| HRDATA | 32 | Output | |
| PORTOUT | 16 | Output | |
| PORTEN | 16 | Output | |
| PORTFUNC | 16 | Output | |
| GPIOINT | 16 | Output | |
| COMBINT | 1 | Output | |
User@System:~/<path>/APBRST$ python3 verilog2spec.py ./verilog/fifo.v
Generating LALR tables
WARNING: 183 shift/reduce conflicts
-------------------------generate module tree-------------------------
fifo (top)
-------------------------generate param table-------------------------
| Parameter | Default Value | Function |
| :-------: | :-----------: | :------: |
-------------------------generate port table-------------------------
| Port | Width | Direction | Function |
| :----------: | :---: | :-------: | :------: |
| clk | 1 | Input | |
| srst | 1 | Input | |
| wr_en | 1 | Input | |
| rd_en | 1 | Input | |
| din | 32 | Input | |
| dout | 32 | Output | |
| empty | 1 | Output | |
| full | 1 | Output | |
待办事项
- 模块树提取
- 参数表提取
- 端口表提取
- 检测由
generate for(;;) endgenerate声明的重复实例 - 注释检测与提取
- 多文件处理
- 支持SystemVerilog
- 从文档生成原始RTL
优化数字前端工作流的小脚本v2.0的更多相关文章
- 【Beta】“北航社团帮”测试报告——小程序v2.0与网页端v1.0
目录 测试计划.过程和结果 后端测试--单元测试与覆盖率 后端测试--压力测试 展示部分数据 平均数据 前端测试--小程序v2.0 授权登录与权限检查 新功能的测试 兼容性测试 性能测试 前端测试-- ...
- 【Beta】“北航社团帮”发布声明——小程序v2.0与网页端v1.0
目录 Beta版本新功能 小程序v2.0新功能 新功能列表 功能详情图 新功能动图展示 网页端v1.0功能 登录方式 社团信息的修改 新闻的录入和修改 活动的录入和修改 这一版修复的缺陷 Beta版本 ...
- 自编写二进制安装kubernetes脚本v2.0版本
一键安装 二进制安装Kubernetes(k8s) v2.0 手动安装:https://github.com/cby-chen/Kubernetes 脚本安装:https://github.com/c ...
- Mac前端抓包小工具Charles4.0下载
链接: https://pan.baidu.com/s/1skPxdNJ 密码: 7iwp 使用方法:安装完主程序后,将dmg包里charles.jar拖至/Applications/Charles. ...
- Java完成简单猜数字游戏v2.0
猜数字游戏v2.0 优化了获取随机数.输入数据超出边界值的代码,并增加了异常处理,能够在玩家输入错误数据错误时给出可靠指引,希望对和我一样的新人有帮助, 最后希望有大神愿意帮我解决代码优化的问题,谢谢 ...
- 2.4 webpack + gulp 构建完整前端工作流
在前面的两个小节中已经完整的讲了 webpack 和 gulp 相关的内容,本小节中将会结合二者构建一个完整的前端工作流,内容目录为: 前端工程结构和目标 前端工程目录结构 gulp clean gu ...
- 初步学习nodejs,业余用node写个一个自动创建目录和文件的小脚本,希望对需要的人有所帮助
初步学习nodejs,业余用node写个一个自动创建目录和文件的小脚本,希望对需要的人有所帮助,如果有bug或者更好的优化方案,也请批评与指正,谢谢,代码如下: var fs = require('f ...
- 分享几个python小脚本
by 梁凯 今天我想给大家分享几个python脚本,分别是: 1.公司访问外网认证脚本(最初有同事写过,我优化了一下). 2.统计周报系统所有同事的最近一篇周报. 3.统计测试技术分享里指定一个月所有 ...
- 你要的fpga&数字前端笔面试题都在这儿了
转自http://ninghechuan.com 你要的FPGA&数字前端笔面试题来了 FPGA&ASIC基本开发流程 题目:简述ASIC设计流程,并列举出各部分用到的工具. 勘误:C ...
- Python简单的CTF题目hash碰撞小脚本
Python简单的CTF题目hash碰撞小脚本 import hashlib for num in range(10000,9999999999): res = hashlib.sha1(str(nu ...
随机推荐
- 前端ast
什么是抽象语法树 抽象语法树 Abstract Syntax Tree 简称AST,是源代码语法结构的一种抽象表示. 比如 const a = 123; ,用ast可以表示为 ast json表示为 ...
- 【7】Tarjan学习笔记
前言 WFLS 暑假集训 Day 5 Day 6 Day 8 Day 9 Tarjan 是个巨佬,快来膜拜他 orz. 长文警告:本文一共 \(1092\) 行,请合理安排阅读时间. 强连通分量 强连 ...
- MySQL与Oracle之间的区别
这是参考别人然后自己总结的关于两者之间的区别,方便自己记忆 1.首先Oracle数据库是大型数据库,功能很强大,性能也很优越,所以大型的开发项目一般使用的就是Oracle但同时他也是比较昂贵的;而My ...
- 苏州中学oj P202504A 题解
题目描述 小 \(S\) 是符文魔法师 , 他绘制了一种仅由字符 \(AB\) 组成的魔法符文 魔法符文每天都会变化 具体来说 , 每天开始时最左边的符文会改变类型 (即从 \(A\) 变为 \(B\ ...
- java 双亲委派机制 & 与打破
简介 当某个类加载器需要加载某个.class文件时, 它首先把这个任务委托给他的上级类加载器,递归这个操作,如果上级的类加载器没有加载,自己才会去加载这个类. 参考链接 https://www.jia ...
- java 中的枚举类型
简介 RT code package com; import java.util.*; public class EnumTest { public static void main(String.. ...
- SciTech-Mathmatics-Proba.&Stats.-统计+数据源+生产+生活+运用:国家统计局的 数据源 和 生产生活
SciTech-Mathmatics-Proba.&Stats.- 统计+ 数据源 +生产 +生活 +运用: 国家统计局的 数据源 和 生产生活
- SciTech-OS-Android-x86.org: How to install Android on PC: These are your best options
https://www.androidauthority.com/install-android-pc-3103069/ https://www.android-x86.org/installhowt ...
- Linguistics-English-Happy Labor Day September 2, 2024
Celebrating the many contributions workers have made to America's strength, prosperity and well-bein ...
- babylon.js 学习笔记(1)
简单来说,babylon.js 是一个能跑在浏览器上的(3D)游戏渲染引擎,而且官方提供了一个友好在线交互学习平台Playground,其开源项目在github上star数截止2023.05.14高达 ...