Windows下高效Verilog/System Verilog 开发环境搭建

Windows下高效Verilog/System Verilog 开发环境搭建

0. 前言

​ 在我们工程设计的过程中,经常会存在不直接跑EDA软件(如Vivado Quartus)编写Verilog 以及SV代码的情景 。 今天我就来安利大家一个小巧的Verilog/System Verilog 开发环境,你想要的它都有。同时它还具备代码提示,语法检查功能,代码跳转,自动生成Verilog Testbench 等功能,极大的提高我们编写代码的效率。当然vsim和emacs的死忠粉可以跳过这篇文章(●’◡’●)。

1. 环境准备

  • 硬件
  • 软件
    • Windows10
    • Vscode
    • Vscode 中Verilog-HDL/SystemVerilog/Bluespec SystemVerilog 插件(后面简写为Verilog插件) ,用于语法检查、代码跳转、自动补全、自动生成实例化代码
    • Universal Ctags ,代码跳转必备软件
    • CTags Support插件 ,增强不同文件中代码跳转的支持
    • Verilog_Testbench , 自动生成Testbench插件,需添加Python3 chardet库包支持
    • modelsim , 用于Verilog插件的Linter,也可以用iverilog
安装方法
  • VScode 直接在官网https://code.visualstudio.com/中下载即可
  • Vscode 中安装Verilog-HDL/SystemVerilog/Bluespec SystemVerilog ,在拓展中安装,具体操作如 1-1所示

image-20210724120459932

图1-1:Verilog-HDL/SystemVerilog/Bluespec SystemVerilog的安装
  • Vscode 中安装CTags Support ,下载完VScode后,在拓展中安装,具体操作如 1-2所示

    image-20210725102334519

图1-2:CTags Support 安装
  • 安装Universal Ctags(国内github老崩,实在下不了留言或私信获取链接呗)

    1. 登录网站https://github.com/universal-ctags/ctags-win32/releases , 选个自己喜欢的版本安装,推荐选新的。
    2. 我这里选择的2021-07-24的版本 ,如图1-3 所示

    image-20210724122835899

    图1-3:安装对应版本的ctags
    1. 解压刚才的压缩包,我解压后ctags根目录为D:\environment\ctags(这里每个人都不一样),记下这个目录(这个目录用于设计Windows系统环境变量),以及ctags.exe的具体路径(用于Verilog插件的设置)。

    image-20210725102812585

图1-4:解压后获得ctags根目录以及ctags.exe的路径
  1. 配置系统环境变量,方便ctags的使用,不太熟悉怎么配置系统环境变量的小伙伴可以直接百度,操作如图1-5所示

image-20210725102953476

图1-5:配置系统环境变量
  1. 在VScode 中的File->Preferences->Setting 中搜索Verilog 。对Verilog.Ctags.Path 、 Verilog.Linting.Linter、Verilog.Linter.Modelsim.Work进行配置,具体操作如图1-6所示。同时你也可以在这里添加一些仿真器编译选项,这里不做赘述。这里的work(必填)是对应modelsim的逻辑库名,不填这个无法做语法检查。(如果选择了iverilog做linter ,那么iverilog的参数中应该覆盖到对应的源代码文件夹路径,如我这里填的-y ./sim -y ./src,否则也是做不了语法检查滴)

image-20210725105909195

图1-6:Verilog插件配置

5.安装Verilog_Testbench插件,如图1-7所示

image-20210725113148207

图1-7:安装Verilog_Testbech插件
  1. python3安装,Modelsim具体安装过程推荐参考百度,安装完python3后,在cmd中用pip install chardet安装对应的库包,否则的话自动生成testbench插件会用不了,如图1-8所示

image-20210725113011487

图1-8:使用pip 安装chardet
  1. 重启VScode

2.环境运行

前面就已经把环境搭好了,当然codeblock还有很多verilog、systemverilog的插件,读者们可以自己去探索下。

接下来我们就体验一下Verilog插件、TestBench插件的强大功能

创建工作区

  1. 在VScode中 File->Open Folder 打开个文件夹作为工作区,我这里打开的是PRJ1

  2. 简单的工作区一般由一个sim(用于存放testbench),src(用于存放源代码)组成,我们直接先创建两个文件夹就好,如图2-1所示 。

image-20210725111340385

图2-1:工作区目录结构
  1. 由于我用的是modelsim,还得创建个逻辑库,在VScode的命令行中输入vlib work即可,结果如图2-2所示
vlib work 
vmap work work #这个可以不填,在modelsim.ini中逻辑库work 默认对应的就是./work

image-20210725112206315

图2-2:创建modelsim work逻辑库

到这里,一个简单的工作区就创建好了。

体验Verilog插件功能

  1. 在src 文件下创建top.v文件,编个简单的流水灯代码
  2. 体验module快速生成,语法错误检查,如图2-3所示

module

图2-3:体验module快速生成,语法错误检查
  1. 体验always块快速生成,如图2-4所示

module

图2-4:体验always 自动生成
  1. top.v完整代码如代码2-1所示
module top (
    input clk,
    input rst_n,
    output reg [3:0] led
);
    
always @(posedge clk or negedge rst_n) begin
    if(~rst_n)
        led <= 4'b0001;
    else
        led <= {led[2:0],led[3]};
end
endmodule
代码2-1:top.v完整代码
  1. 体验自动生成testbench 功能 (这个属于testbench 插件功能) ,在VScode中键盘输入ctrl+shift+p 打开命令,搜索testbench,然后在终端中就会显示对应testbench的代码,具体操作如图2-5所示

testbench

图2-5:体验testbench 自动生成
  1. 在sim 文件夹下 新建一个tb_top.v 文件,并将刚才生成的代码赋值进去 ,并修改finish前的延迟,具体操作如图2-6所示 。 记住一点,testbench插件只是生成一个testbench模板,具体内容要根据实际需求做修改

image-20210725131651748

图2-6:修改testbench文件
  1. 体验下自动生成实例化代码功能 (这功能Verilog插件和Testbench插件里都有,但是Verilog插件里生成的代码没有信号声明, 所以推荐用Testbench插件中的)。打开代码top.v文件 ,键盘输入ctrl+shift+p 打开命令,搜索Instance并点击。具体操作如图2-7所示

image-20210725143618077

图2-7:体验自动生成实例化代码
  1. 体验同文件中的代码跳转,可以在OUTLINE中跳至信号声明 , 也可以通过ctrl+鼠标左键对应信号进行跳转,操作如图2-8所示

jump1

图2-8:体验同文件信号跳转功能
  1. 体验不同文件中代码跳转功能 如跳到module的定义。注意不同文件跳转 ,需要在最顶层目录(即工作区目录路径,我这里是E:\FPGA_PROJECT\prj1)生成对应个.tag文件 ,并且每添加一次文件都要执行一次,否则是找不多对应文件滴。
  • 在工作区目录终端输入ctags -R -f .tags 生成.tags文件

  • 选择对应的module信号 ctrl+t 跳到它的声明

  • ctrl+shift+t跳到历史跳转位置

  • 整体操作如图2-9所示

jump2

图2-9:多文件跳转操作

3.跑仿真

接下来,我们通过命令的方式执行文件的编译 , 仿真

  1. 在终端中执行下面命令编译工作区的所有文件
vlog .\sim\tb_top.v .\src\top.v
  1. 进行仿真 ,这里记得加 -voptargs=+acc选项 否则新版本的modelsim很容易把object给优化掉
vsim tb_top -voptargs=+acc
  1. 执行上两步后,终端会显示如图3-1内容,并且会跳出modelsim 的gui界面

image-20210725160520424

图3-1:执行编译 仿真后的终端
  1. 添加波形 , 设置仿真时间 ,RUN跑仿真,操作如图3-2所示 ,结果如图3-3所示。

image-20210725161253294

图3-2:跑波形步骤

image-20210725161421216

图3-3:运行后波形图

4.结语

最近忙的飞起,更新会挺慢滴,不过还是会持续更滴。

顺便在线请教各位大佬们,怎么截取gif并上传到图床。我都是用QQ截成MP4格式再用ffmpeg转的,画质巨差。图床用码云搭的,非登录有1M限制,请教一下有什么地方可以白嫖个好点的图床。

  • 17
    点赞
  • 134
    收藏
    觉得还不错? 一键收藏
  • 13
    评论
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值