# module_snapshot
**Repository Path**: carewb/module_snapshot
## Basic Information
- **Project Name**: module_snapshot
- **Description**: 帮你画verilog代码的模块接口图
- **Primary Language**: Python
- **License**: GPL-3.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 5
- **Created**: 2025-12-08
- **Last Updated**: 2025-12-08
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# module_snapshot
## 介绍
只需要复制verilog代码的模块声明到文本框,就能帮你画出对应的模块接口图
新版本支持生成 .xml 文件,使用 draw.io 打开后可以将图形保存为矢量图,[新版本链接](https://gitee.com/qyley/module_snapshot/tree/draw.io/)
## 安装教程
1. python 3.8 或以上
2. 屏幕分辨率 >= 1080*720
## 使用说明
### 1. **运行module_snapshot.py**

### 2. **接着会弹出一个带按钮的文本框**

### 3. **在文本框中插入你的verilog代码中模块声明部分**

- 在verilog代码中添加标签能让绘制时的信号布局更加合理,标签使用方法如下:
> ``:在a标签对中可插入模块的附加信息(如版本号,模块简称等),建议不超过10个字符,a标签是唯一的,后面的a标签会覆盖前面的a标签
> ``:覆盖上方的``标签,此标签后面的信号都会被绘制在模块的左侧
> ``:覆盖上方的``标签,此标签后面的信号都会被绘制在模块的右侧
- 连续多行的信号会被分成一组,同组的信号之间靠的更近,通过插入额外的换行将信号分在不同组
- 标签需要放在独立的一行
### 4. **点击generate按钮,生成io接口图片**

### 5. **截图保存**
## 注意事项
1. 只支持部分 verilog 2001 语法。支持的语法如下:
`module module_name ...`
`input signal_name ...` or `input [w_h:w_l] signal_name ...`
`output signal_name ...` or `output [w_h:w_l] signal_name ...`
`inout signal_name ...` or `inout [w_h:w_l] signal_name ...`
` Additional information `
``
``
其他不支持的关键字或语法结构都将被视为空行
2. 一行最多定义一个IO信号
3. 信号位宽可以使用字母或数字,位宽包含字母会直接显示原文,纯数字只支持高位在左,低位在右,可以包含数学表达式(如:`[16-1:0]`)。
4. 图片暂时无法保存,需要截图使用
5. 若要调整绘图尺寸、背景颜色等请自行修改源码