本文 测试用例及代码下载
python读取verilog头文件,有使用说明,测试记录,参考博客:资源-CSDN文库
或者
python读取Verilog宏定义文件,测试用例及代码下载,详细描述参见博客-嵌入式文档类资源-CSDN文库
背景
嵌入式开发过程中,需要使用python读取Verilog宏定义文件,这里提供一个简短的函数方便需要时使用,,这里举例说明,python读取Verilog宏定义文件,提取.v文件中`define宏定义
代码实现
废话少说,上代码
这里简单解读一下代码,先找到测试使用头文件,并匹配字符串'define
然后对应提取其中的字段内容
最后打印addr内容
可以根据自己的需求进行修改,这里只是抛砖引玉,希望能帮上你。
python实现起来比较简洁,如果使用C语言,要写上一大堆代码
import os
import re
def loadFromVerilog(fn,addr):
reg_file = open(fn)
for line in reg_file.readlines():
m = re.match(r"`define(\s+)",line)
if m:
x = m.group(0)
s = len(x)
line = line[s:]
m = re.match(r"(\S+)",line)
if m:
x = m.group(0)
s = len(x)
line = line[s:]
#print x,line
m = re.match(r"\s+18",line)
if m:
s = len(m.group(0))
a = int(line[s+2:],16)
addr[x]=a
return addr
addr = {}
path = os.path.split(os.path.realpath(__file__))[0]
fn = path+"\\reg_define.v"
addr = loadFromVerilog(fn,addr)
print (addr)
测试
在window平台,运行测试图片如下图所示
windows下使用IDLE测试如下图所示,将reg_define.v的`define宏都提取出来,方便后面使用
实际使用文件如下图所示,比较简单
其中redRegFromVFile.py是实际使用的源代码
reg_define.v是verilog测试头文件,这里可以更改为自己的使用的头文件
在 redRegFromVFile.py中注意文件路径和文件名称的修改
本文测试用例及代码下载
python读取verilog头文件,有使用说明,测试记录,参考博客:资源-CSDN文库
或者