reg map 自动生成寄存器配置脚本
文章目录
还记得之前写自动例化的脚本就是因为配置寄存器的模块端口太多了,例化起来实在费劲,而生成配置寄存器的模块用的是公司大佬写的脚本,不过源文件是word做的,虽然不得不说非常好看,但是填起来有点费劲的,当时就想要是源文件是excel表就好了,然后基于这个表自动生成一份word和相关代码多好。
最近又要做这样的东西了,但却没了称手的工具,实验室之前没用过这种方式做配置。
好在网上还有大神,在github找到了一个大佬写的,通过APB做配置,然后源文件是excel表。
用了一段时间后感觉填那个位宽以及reserved还是有点麻烦,还有格式没有做控制,虽然这个模块理论上只需要功能正确就可以了,一般也没人去看,但我还是想稍微控制一下,比如每组加个注释…
还有,大佬端口变量的逗号是放在开头的,这样自动例化的脚本就识别不到了…
本来是想基于大佬的版本修改一下的,但大佬用的xlrd模块,而我查了一下用pandas好像更方便处理,而且我也想学一下pandas的,于是就有了这个脚本,
功能基本是参考大佬的来做的,大佬的功能已经很完善了,非要说我这个的长处的话,可能就是格式稍微控制了一下吧,可是就是因为做这个格式控制,代码里加了好多奇奇怪怪的东西,有“屎山”那感觉了…
hhh,至少pandas入门了 :)
使用方法
由于代码的“观赏性”较低,所以我们先来看看用法。
使用示例如下:
依赖工具
首先python版本得高一点(比如3.6+才能支持f string);
然后主要是python第三方的库:
- pandas和numpy这俩得有,用来处理表格;
- 然后pandas读excel表又依赖于别的库:
读.xls(Excel 2007之前的老版本)需要用xlrd;
读.xlsx(Excel 2007之后的新版本)需要用openxl;
所以这俩包也得装,要是你确定只用一种表,那可以只装一个,不会报错; - 还有用于获取excel表创建信息的两个库:zipfile和lxml
安装命令参考如下:
pip3 install numpy pandas xlrd openxl zipfile lxml -i https://pypi.tuna.tsinghua.edu.cn/simple
后面那个-i是为了避免国外线路太慢,使用清华的镜像
命令参数
-> py reg_map.py -h
usage: reg_map.py [-h] [-f InputFile [InputFile ...]] [-sheet SheetName] [-author Author] [-namerule {
0,1,2}] [-fout OutputFile] [-ins {
0,1}]
[-v {
DEBUG,INFO,WARNING,ERROR,CRITICAL}]
options:
-h, --help show this help message and exit
-f InputFile [InputFile ...], --filename InputFile [InputFile ...]
Specify input xls file
-sheet SheetName To specify one sheet in the file
<