如何用VS code开发FPGA的程序,iverilog使用说明

目录

 

前言

一、VS code开发环境搭建

二、安装verilog和iverilog插件

三、准备FPGA程序测试代码

四、编译代码并查看波形

五、代码解读对比仿真波形

 

前言

        之前一直用FPGA厂家自带的开发环境,但是针对一些体量不大,想要方便验证算法的时候,就想用一个简单的开发环境,网上找了找,发现很多工程师喜欢用VS code开发FPGA。用VSCode编辑verilog代码、iverilog编译、自动例化、自动补全、自动格式化等常用插件。


一、VS code开发环境搭建

        首先需要搭建FPGA开发环境,网上论坛里的资料多来自于哔哩哔哩的视频,地址:RTL & FPGA开发中VSCode编辑器以及好用的几个插件_哔哩哔哩_bilibili   内容是:RTL & FPGA开发中VSCode编辑器以及好用的几个插件;

课程资料下载地址,里面有个《VScode编辑器的软件安装.pdf》,一步步操作即可。

链接:https://pan.baidu.com/s/1NZxgxncxkJa79LOYncfrKQ  提取码:4oxl

关于VS code开发环境的介绍,也 可以参考知乎的帖子:浮沉野马 - 知乎

二、安装verilog和iverilog插件

第一步:搜索下图的插件添加即可,iverilog附带gtkwave,插件的功能可以看介绍,下载完成后,还需进行以下配置,可以看知乎的帖子。

867cefeb7b1344dd94e3d29418eaacd2.png

第二步:在扩展里搜索"verilog",找到下载人数最多的这个插件:Verilog-HDL/System,点一下“安装”按钮即可完成安装,此时我们发现代码有了颜色(如上图所示),但它并没有自动检错的功能。

第三步:将ctags添加到环境变量path,例如 新建 D:\ctags(根据你的实际情况),其他两个参照下图设定。

5ab2a51dbe8f4ab2a9a5800f7f09cf6f.png

第四步:检测安装和配置是否成功,故意改错代码,需要保存后,是否会显示代码故障,测试结果如下图所示:

按下 Ctrl+~ 查看报错信息,如果iverilog没有起到作用,可以在终端中输入iverilog,再次启动iverilog功能。

0850c8725f4a4ff49ec7ec212e1b0b45.pngf49e09f4360043689e626b1cda19bf22.png

三、准备FPGA程序测试代码

新建一个文件,添加FPGA代码,并在vscode中打开这个文件夹,写两个简单的verilog代码"test.v"和"tb_test.v",具体代码可以查看第四部分内容。

0d202286d9d045dcafee5556c0a7d7cd.png

Testbech文件(顶层文件)添加必要代码:

需要在testbench仿真模块"tb_test"里添加下面的代码,不然不会生成.vcd文件,然后用gtkwave打开.vcd波形文件查看波形。

/* 生成vcd波形文件,用iverilog+GTKwave进行仿真所需的临时的vcd波形文件 */

initial begin

    $dumpfile("./build/wavets.vcd");   // 指定VCD文件的名字为wavets.vcd,仿真信息将记录到此文件

    $dumpvars(0, tb_testa );  // 指定层次数为0,则tb_testa模块及其下面各层次的所有信号将被记录

    #100000 $finish;

end

上述代码解释如下:

本人希望把编译仿真生成的文件都放到"build"文件夹里,源代码都放到"src"文件夹里,所以我用的是"$dumpfile("./build/wavets.vcd");",但是很多插件只能支持网上的那种最简单的写法,不然找不到.vcd文件。

"#100000 $finish;" 经过100000ps(100us)后结束,也就是仿真时间;

注意:如果一直仿真停不下来,按ctrl+c可强制结束,终端无法返回时,输入finish就可结果仿真;

添加完的样子样式如图所示:

8a3951ca11b842c5940a2265b768a5c7.png

四、编译代码并查看波形

在终端里敲命令行代码,利用iverilog编译,生成.o文件。利用vvp命令可以生成.vcd文件,gtkwave可以直接打开.vcd文件查看波形。

下面是iverilog的终端控制方法,可以编译verilog文件,方便后续调试,建议大家好好学习。

输入:

第一个命令:md build

第二个命令:iverilog -o ./build/test.out  tb_test.v test.v

第三个命令:vvp -n ./build/test.out

第四个命令:gtkwave ./build/wavets.vcd

下面显示解释上述命令:

第一个命令:"md build"创建build文件夹,用于存放编译仿真生成的文件,linux命令;

第二个命令:"."(点)的意思是当前位置,也就是这个位置,如果代码文件放置在src下面,则需要./src/或者说是.\src\ 源代码。

iverilog作用是编译文件,比如设计模块的代码和仿真模块的代码都在一个test.v文件里,那么编译这个文件只需要命令"iverilog test.v"

可是如果设计模块代码写在了test.v文件里,仿真模块的代码写在了tb_test.v文件里,那么只需要把所有的文件名字全都缀在后面即可"iverilog test.v tb_test.v"

iverilog的参数"-o <path>"是可以省略的,"-o"命令指定编译后生成的.out文件的名字,如果不指定会生成默认的名字,这里我们"-o ./build/test.out"命令生成的是build文件夹下的test.out文件。

9a7ee3a6dab14aaaa334418a3a824036.png

第三个命令:"vvp ./build/test.out"命令是生成.vcd波形文件,需要在testbench仿真模块(激励模块)添加几行代码,FPGA的仿真方法,这里就不多说了。如果用强大的仿真,推荐modelsim。

2253992af7ef4d3d8d791dade8755780.png

第四个命令:"gtkwave wave.vcd"意思就是用gtkwave.exe打开.vcd文件;

c969ec6912654da794f2b5292aa0f330.png

五、代码解读对比仿真波形

test.v和tb_test.v程序代码如下,比较简单,就是时钟sclk的计数,当cnt[10]为1时,置位odata;反之,复位odata。

module testa(
input	   wire	            sclk,
input	wire 							rst,
output	reg   odata
	);

reg [10:0]	cnt;
always @(posedge sclk) begin
	if(~rst) begin
		odata <= 1'b0;
		cnt <= 0;
	end
	else begin
		cnt <= cnt + 1;
		if(cnt[10]) begin
			odata <= 1'b1;
		end
		else begin
			odata <= 1'b0;
		end
	end
end
// -----------------------------------------------------------------------------
`timescale  1ns / 1ps

module tb_testa;

// testa Parameters
parameter PERIOD  = 10;


// testa Inputs
reg   sclk   = 0 ;
reg   rst_n  = 0 ;

// testa Outputs
wire  odata;

initial
begin
   $dumpfile("./build/wavets.vcd");
    $dumpvars(0, tb_testa);
   #100000 $finish;
end

initial
begin
    forever #(PERIOD/2)  sclk=~sclk;
end

initial
begin
    #(PERIOD*2) rst_n  =  1;
end

testa  u_testa (
    .sclk                    ( sclk    ),
    .rst                     ( rst_n     ),

    .odata                   ( odata   )
);

endmodule

仿真结果如下,GTKWave的软件就不多介绍了,喜欢用的可以自己研究,个人觉得比modsim的仿真差很多,用不习惯。

4a8ada8409e848a396bfa54152441e1f.png

 

  • 6
    点赞
  • 64
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
你可以使用VS Code开发微信小程序。下面是一些步骤供你参考: 1. 安装VS Code:首先,你需要在你的电脑上安装Visual Studio Code。你可以从官方网站 https://code.visualstudio.com 下载并安装最新版本的VS Code。 2. 安装微信开发者工具插件:打开VS Code,并在左侧的侧边栏中找到“Extensions”(或使用快捷键Ctrl+Shift+X)。然后搜索并安装“微信开发者工具”插件。 3. 创建小程序项目:在VS Code中点击“View”菜单,选择“Command Palette”,或使用快捷键Ctrl+Shift+P。然后输入“微信小程序”并选择“创建新项目”。按照指示填写项目信息并选择合适的模板。 4. 编辑小程序代码:在VS Code中打开刚才创建的微信小程序项目文件夹。你可以在“Explorer”视图中看到项目文件结构。在这里,你可以编辑小程序的HTML、CSS和JavaScript文件。 5. 调试小程序代码:在VS Code中,你可以使用微信开发者工具插件来调试小程序代码。点击左侧的调试按钮,然后选择“微信小程序”配置。接下来,你可以设置断点并开始调试你的小程序。 6. 预览和构建小程序:通过在VS Code使用微信开发者工具插件,你可以预览和构建小程序。点击左侧的调试按钮,选择“启动小程序预览”。这将自动打开微信开发者工具,并加载你的小程序。 希望这些步骤对你有所帮助!如果你有任何进一步的问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

icekoor

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值