挖了个新坑,在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.vfifo.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的更多相关文章

  1. 【Beta】“北航社团帮”测试报告——小程序v2.0与网页端v1.0

    目录 测试计划.过程和结果 后端测试--单元测试与覆盖率 后端测试--压力测试 展示部分数据 平均数据 前端测试--小程序v2.0 授权登录与权限检查 新功能的测试 兼容性测试 性能测试 前端测试-- ...

  2. 【Beta】“北航社团帮”发布声明——小程序v2.0与网页端v1.0

    目录 Beta版本新功能 小程序v2.0新功能 新功能列表 功能详情图 新功能动图展示 网页端v1.0功能 登录方式 社团信息的修改 新闻的录入和修改 活动的录入和修改 这一版修复的缺陷 Beta版本 ...

  3. 自编写二进制安装kubernetes脚本v2.0版本

    一键安装 二进制安装Kubernetes(k8s) v2.0 手动安装:https://github.com/cby-chen/Kubernetes 脚本安装:https://github.com/c ...

  4. Mac前端抓包小工具Charles4.0下载

    链接: https://pan.baidu.com/s/1skPxdNJ 密码: 7iwp 使用方法:安装完主程序后,将dmg包里charles.jar拖至/Applications/Charles. ...

  5. Java完成简单猜数字游戏v2.0

    猜数字游戏v2.0 优化了获取随机数.输入数据超出边界值的代码,并增加了异常处理,能够在玩家输入错误数据错误时给出可靠指引,希望对和我一样的新人有帮助, 最后希望有大神愿意帮我解决代码优化的问题,谢谢 ...

  6. 2.4 webpack + gulp 构建完整前端工作流

    在前面的两个小节中已经完整的讲了 webpack 和 gulp 相关的内容,本小节中将会结合二者构建一个完整的前端工作流,内容目录为: 前端工程结构和目标 前端工程目录结构 gulp clean gu ...

  7. 初步学习nodejs,业余用node写个一个自动创建目录和文件的小脚本,希望对需要的人有所帮助

    初步学习nodejs,业余用node写个一个自动创建目录和文件的小脚本,希望对需要的人有所帮助,如果有bug或者更好的优化方案,也请批评与指正,谢谢,代码如下: var fs = require('f ...

  8. 分享几个python小脚本

    by 梁凯 今天我想给大家分享几个python脚本,分别是: 1.公司访问外网认证脚本(最初有同事写过,我优化了一下). 2.统计周报系统所有同事的最近一篇周报. 3.统计测试技术分享里指定一个月所有 ...

  9. 你要的fpga&数字前端笔面试题都在这儿了

    转自http://ninghechuan.com 你要的FPGA&数字前端笔面试题来了 FPGA&ASIC基本开发流程 题目:简述ASIC设计流程,并列举出各部分用到的工具. 勘误:C ...

  10. Python简单的CTF题目hash碰撞小脚本

    Python简单的CTF题目hash碰撞小脚本 import hashlib for num in range(10000,9999999999): res = hashlib.sha1(str(nu ...

随机推荐

  1. 前端ast

    什么是抽象语法树 抽象语法树 Abstract Syntax Tree 简称AST,是源代码语法结构的一种抽象表示. 比如 const a = 123; ,用ast可以表示为 ast json表示为 ...

  2. 【7】Tarjan学习笔记

    前言 WFLS 暑假集训 Day 5 Day 6 Day 8 Day 9 Tarjan 是个巨佬,快来膜拜他 orz. 长文警告:本文一共 \(1092\) 行,请合理安排阅读时间. 强连通分量 强连 ...

  3. MySQL与Oracle之间的区别

    这是参考别人然后自己总结的关于两者之间的区别,方便自己记忆 1.首先Oracle数据库是大型数据库,功能很强大,性能也很优越,所以大型的开发项目一般使用的就是Oracle但同时他也是比较昂贵的;而My ...

  4. 苏州中学oj P202504A 题解

    题目描述 小 \(S\) 是符文魔法师 , 他绘制了一种仅由字符 \(AB\) 组成的魔法符文 魔法符文每天都会变化 具体来说 , 每天开始时最左边的符文会改变类型 (即从 \(A\) 变为 \(B\ ...

  5. java 双亲委派机制 & 与打破

    简介 当某个类加载器需要加载某个.class文件时, 它首先把这个任务委托给他的上级类加载器,递归这个操作,如果上级的类加载器没有加载,自己才会去加载这个类. 参考链接 https://www.jia ...

  6. java 中的枚举类型

    简介 RT code package com; import java.util.*; public class EnumTest { public static void main(String.. ...

  7. SciTech-Mathmatics-Proba.&Stats.-统计+数据源+生产+生活+运用:国家统计局的 数据源 和 生产生活

    SciTech-Mathmatics-Proba.&Stats.- 统计+ 数据源 +生产 +生活 +运用: 国家统计局的 数据源 和 生产生活

  8. 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 ...

  9. Linguistics-English-Happy Labor Day September 2, 2024

    Celebrating the many contributions workers have made to America's strength, prosperity and well-bein ...

  10. babylon.js 学习笔记(1)

    简单来说,babylon.js 是一个能跑在浏览器上的(3D)游戏渲染引擎,而且官方提供了一个友好在线交互学习平台Playground,其开源项目在github上star数截止2023.05.14高达 ...