介绍pyverilog分析工具的使用

电子说

1.3w人已加入

描述

pyverilog是一个非常强大的verilog分析工具,本节介绍pyverilog的使用

工作久了,还是习惯linux系统,还是有必要在笔记本上装个虚拟机,这样try脚本更方便。

1 分享一些虚拟机软件

Vmware17版本,15版本貌似和win系统有兼容问题,不推荐,

redhat6.8 ios镜像文件

2 安装python3.10方式1

在安装python前需要安装相关的第三方依赖库:

 

yum install zlib-devel bzip2-devel opssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc libffi-devel

 

perl脚本执行过程中会报相关cpan库找不到,使用以下命令安装:

 

wget http://xrl.us/cpanm -O /usr/bin/cpanm --no-check-certificate
chmod +x /usr/bin/cpanm
cpanm IPC::Cmd

 

安装openssl包:

 

yum install gcc libffi-devel zlib* openssl-devel
wget https://www.openssl.org/source/openssl-3.1.1.tar.gz
tar -zxvf openssl-3.1.1.tar.gz
cd openssl-3.1.1/
./config --prefix=/usr/local/openssl shared zl
make & make install
echo "/usr/local/openssl/lib64/" > /etc/ld.so.conf.d/openssl3.0.2.conf

 

下载Python安装文件,

 

wget https://www.python.org/ftp/python/3.10.12/Python-3.10.12.tgz
tar -xvf Python-3.10.12.tgz
cd Python-3.10.12
./configure --prefix=/usr/local/python
make & make install

 

设置环境变量,修改/etc/csh.cshrc文件,增加以下内容:

 

gvim /etc/csh.cshrc
setenv /usr/local/python/bin/:$PATH


setenv LD_LIBRARY_PATH  /usr/local/openssl/lib64/:LD_LIBRARY_PATH
setenv PATH             /usr/local/openssl/bin/:$PATH

 

期间发现还依赖glibc更新版本,下载和安装方式如下:

 

wget http://ftp.gnu.org/gnu/glibc/glibc-2.17.tar.gz
tar -xf glibc-2.17.tar.gz
cd glibc-2.17
mkdir build
cd build
../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin
make -j 8
make install
strings /lib64/libc.so.6 | grep GLIBC

 

大量的第三方软件需要安装,这里推荐以下网址,可以找到很多安装包以及github上的原始安装包。

 

https://pkgs.org/
http://ftp.gnu.org/gnu/gcc/
https://gcc.gnu.org/
https://mirror.tuna.tsinghua.edu.cn/gnu/

 

描述如下:

虚拟机

下载链接如下:

虚拟机

其实rpm可以用两种方式安装

 

rpm -ivh /mnt/hgfs/share_linux/glibc-2.17.src.rpm
yum install /mnt/hgfs/share_linux/glibc-2.17.src.rpm

 

安装gcc高版本,可以在镜像中找安装包

及其关联安装包,然后./configure make & make install

 

./configure --disable-multilib
ln -s /usr/local/lib/libmpc.so.3 /usr/lib/libmpc.so.3
ln -s /usr/local/lib/libmpfr.so.6 /usr/lib/libmpfr.so.6
ln -s /usr/local/lib/libgmp.so.10 /usr/lib/libgmp.so.10
make
make install

 

安装iverlog

 

yum install gcc-c++.x86_64
yum install glibc-headers
yum install autoconf
yum install flex
yum install bison
wget http://ftp.gnu.org/pub/gnu/gperf/gperf-3.1.tar.gz
unzip gperf-3.1
./configure
make & make install
git clone https://github.com/steveicarus/iverilog.git
unzip iverilog-master.zip
cd iverilog-master
sh autoconf.sh
./configure
make
make install
# 在以上安装过程中,configure这一步卡了很久,原因是gcc版本太老的缘故,导致交叉编译始终过不了
# 可以在清华开源镜像网站下载gcc及其相关包,然后按顺序安装
# 根据config.log中的错误信息进行就debug,方法用对。
# 根据提示下载安装mpc-1.3.1/mpfr-4.1.1/gmp-5.01/gcc-7.5.0
./contrib/download_prerequisites

 

2 安装python3.10方式2

python使用原始tar.gz包安装很依赖第三方库,非常繁琐,这里推荐使用anaconda来安装python

 

wget https://repo.anaconda.com/archive/Anaconda3-2023.07-1-Linux-x86_64.sh
sh Anaconda3-2023.07-1-Linux-x86_64.sh

 

3 安装pyverilog

 

pip install pyverilog

 

pyverilog安装说明

 

https://pypi.org/project/pyverilog/
pip3 install jinja2 pytest pytest-pythonpath

 

4 pyverilog使用

在pyverilog安装包中给出了一些示例脚本,可以参考。

 

-rw-r--r--. 1 root root 3153 Dec 23  2022 example_active_analyzer.py
-rw-r--r--. 1 root root 2996 Dec 23  2022 example_active_range.py
-rw-r--r--. 1 root root 2227 Dec 23  2022 example_ast_code.py
-rw-r--r--. 1 root root 1749 Dec 23  2022 example_codegen.py
-rw-r--r--. 1 root root 3648 Dec 23  2022 example_controlflow_analyzer.py
-rw-r--r--. 1 root root 3176 Dec 23  2022 example_dataflow_analyzer.py
-rw-r--r--. 1 root root 3952 Dec 23  2022 example_dataflow_codegen.py
-rw-r--r--. 1 root root 4555 Dec 23  2022 example_graphgen.py
-rw-r--r--. 1 root root  560 Dec 23  2022 example_identifierreplace.py
-rw-r--r--. 1 root root  508 Dec 23  2022 example_identifiervisitor.py
-rw-r--r--. 1 root root 1549 Dec 23  2022 example_lexer.py
-rw-r--r--. 1 root root 3199 Dec 23  2022 example_merge.py
-rw-r--r--. 1 root root 2230 Dec 23  2022 example_optimizer.py
-rw-r--r--. 1 root root 1599 Dec 23  2022 example_parser.py
-rw-r--r--. 1 root root 1441 Dec 23  2022 example_preprocessor.py
-rw-r--r--. 1 root root 4210 Dec 23  2022 example_subset.py
-rw-r--r--. 1 root root 3138 Dec 23  2022 example_walker.py
-rw-r--r--. 1 root root 2130 Dec 23  2022 Makefile

 

安装环境确实很折腾,本文到此为止,后续再编写pyverilog使用及解析。





审核编辑:刘清

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分