自动生成verilog模块的testbench(VSCode与Vivado结合,VSCode生成testbench插件)

1 篇文章 0 订阅
1 篇文章 0 订阅

       自从Xilinx官方从ISE升级为Xilinx后,无法再用软件自动生成testbench文件了,给FPGA工程师带来不少麻烦。

       不过Xilinx官方提供了tcl商店以丰富Xilinx软件功能,其中就有生成testbench的tcl脚本提供下载。但是使用起来还是比较麻烦,必须让那个模块成为顶层并进入Elaborate, Synthesize或者implement界面,然后用tcl指令生成。

       网上也有生成testbench的Perl或者Python的脚本代码,但是使用起来还是有点麻烦,因为需要在命令行敲指令才能完成testbench的生成。

       不过后来发现Vim,Sublime,Notepad++这几种比较主流的编辑器都有生成testbench的功能,直接按快捷键就可以生成了,只是自动生成的testbench比较简单,又无法自己修改插件而已。

       后来本人发现VSCode是个颜值很高的编辑器,于是转投VSCode,而且VSCode具有snippets的功能,可以提高效率,Vivado也可以调用VSCode,在Tools->Setting->Text Editor选择Custom Editor,指令为"...(自己电脑的地址)//Microsoft VS Code//Code.exe" -g [file name]:[line number]。

       很遗憾的是VSCode只有基础语法的插件,没有testbench自动生成插件,于是本人结合网上他人python生成testbench的脚本写了一个VSCode生成testbench的插件。由于VSCode目前只支持typescript和Javascript语言开发,但本人并不熟悉,而且官网提供的文档也并不完善,所以使用typescript建立一个命令行窗口调用python脚本生成testbench和模块例化代码。

       在编写插件代码时,当前的窗口可以用下面语句获取:

let editor = vscode.window.activeTextEditor;
       选取的内容为editor.selection; let text = editor.document.getText(selection);
       其中文本长度text.length
       当前操作的文件名为editor.document.fileName

       工程目录的out目录绝对值为__dirname

       创建命令行窗口并输入命令行指令
let terminal1 = vscode.window.createTerminal({name:'new'});
terminal1.show(true);
terminal1.sendText(`...`);

       该插件的源代码可以在github上下载:https://github.com/truecrab/VSCode_Extension_Verilog。

       现在该插件已经在VSCode的应用市场上架了,名字是Verilog_Testbench,欢迎大家下载使用,有问题可以在博客留言。

       关于Vivado的其他技巧,可参考:Vivado工程经验与时序收敛技巧

  • 14
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 38
    评论
好的,我可以回答你的问题。下面是关于Python生成testbenchVivado+VSCode配置的流程。 1. Python生成testbench Python可以用来生成testbench代码,这样可以减少手动编写testbench的工作量。下面是一个简单的Python代码生成testbench的示例: ```python import random # 生成 testbench 的代码 def generate_testbench(): # 打开输出文件 f = open("testbench.v", "w") # 生成模块名称 module_name = "testbench_" + str(random.randint(0, 100)) # 写入模块头 f.write("module " + module_name + ";\n") f.write("\n") # 写入输入和输出端口 f.write("reg a;\n") f.write("wire b;\n") f.write("\n") # 写入被测模块的实例化 f.write("DUT dut(\n") f.write("\t.a(a),\n") f.write("\t.b(b)\n") f.write(");\n") f.write("\n") # 写入测试代码 f.write("initial begin\n") f.write("\ta = 1'b0;\n") f.write("\t#10;\n") f.write("\ta = 1'b1;\n") f.write("\t#10;\n") f.write("end\n") f.write("\n") # 写入模块尾 f.write("endmodule\n") f.write("\n") # 关闭输出文件 f.close() ``` 上面的代码会生成一个包含一个简单testbenchVerilog文件。你可以根据需要修改生成testbench代码。 2. Vivado+VSCode配置流程 Vivado是一个非常流行的FPGA设计工具VSCode是一个轻量级的代码编辑器,它们可以一起使用进行FPGA设计。 下面是Vivado+VSCode配置的流程: 1. 安装VivadoVSCode 2. 打开Vivado,创建一个新的项目 3. 在项目中创建一个新的Verilog模块 4. 在VSCode中打开这个模块Verilog文件 5. 在VSCode中安装Verilog插件 6. 在VSCode中配置Vivado的路径 7. 在VSCode中配置Vivado的Tcl shell路径 8. 在VSCode中配置模块testbench文件路径 9. 在VSCode中运行testbench 详细的配置流程可以参考Vivado官方文档和VSCode官方文档,这里就不再赘述了。 希望这些信息能对你有所帮助!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值