如何搭建FPGA开发工具链以实现高效编程?
摘要:title: FPGA开发工具链和调试技巧 date: 202536 11:52:25 cover: true mathjax: false summary: FPGA开发工具链和调试技巧的一些笔记 categories: Note t
补档声明
由于我的博客服务器和备案到期,所以选择转移到博客园平台来进行保存和记录。以后也有可能会在上面不定期更新一些技术类博客。
前言
一些小笔记,让人快速搭建起FPGA开发工具链,提高开发效率的方法。
工具链搭建
QuestaSim联合Vivado进行仿真
由于VIVADO自带的仿真有一定的局限性,比如速度比较慢以及视图内容不够全面,所以大家一般会用其他的专业仿真工具来承担仿真的任务。
1.安装并破解QuestaSim,这个网络上有很多教程
QuestaSim24.1链接: https://pan.baidu.com/s/1XckFnuW6j5c2oipXrjhuAQ 提取码: 96xp
2.把Vivado自带的库模型编译一下
3.VIVADO中的settings有关仿真的部分改到questasim
指定库模型路径,最好勾选log_all_signals来保证可以随时查看所有的信号,否则的话没有一开始添加到窗口中的信号是不会被记录的。
4.然后就可以直接通过点击VIVADO的Run Simulation来启动QuestaSim了
QuestaSim小技巧快捷键
在波形上Tab: 跳转到下一个变化点
Shift+Tab:向左查找上一个跳变沿
Ctrl+鼠标左键拖动: 放大所选区域
F: 波形正好铺满屏幕
C:放大波形
X:缩小波形 (这个需要自己设置一下)
Ctrl +鼠标滚轮:波形的放大缩小
L:缩放至上次
R: 按照范围缩放
方向键:上下左右滚动(以行为单位)
翻页键:上下滚动(以页为单位)
Ctrl+左右方向键:左右滚动(以页为单位)
使用VSCode开发Verilog,包含语法检查,自动格式化,定义速览
没人乐意使用VIVADO自带的代码编辑器,稀烂的字体和瞎眼的白屏以及几乎没有的语法检查,所以大家一般都是用sublime或者vscode。而由于vscode插件众多和便于多电脑之间的配置同步,那必然还是使用VSCode。
安装VSCode,在Vivado工程设置中把Text editor设置为VSCode,使用如下参数,这样就可以直接从Vivado中调出VSCode
cmd /S /k "code -g [file name]:[line number]"
把Vivado的语法检查器加入系统路径,在Verilog插件的设置中把linter设置成xvlog,然后每一次保存后如果有错误就能看到语法检查的提醒
安装SystemVerilog and Verilog Formatter格式化工具插件,在扩展设置里输入如下参数,第二栏使用win64的版本
--indentation_spaces=4 --named_port_alignment=align --port_declarations_alignment=align --module_net_variable_alignment=align
然后就可以右键,格式化文档,用这个插件,对代码进行格式化
安装Ctags以支持变量定义快捷查看和跳转
先下载Ctags的https://github.com/universal-ctags/ctags-win32/tree/2020-09-15/23d50b5d
放到系统路径中,在VSCODE中的Ctags Path添加'ctags'
安装CTags Support插件
然后在工程文件夹下使用CMD终端输入ctags -R -f .tags
重启VSCode,现在把鼠标放在信号上就能看到定义了
按Ctrl然后点击信号就能跳转到定义
右键快速查看,速览定义就能直接对信号定义做出修改
调试技巧
在Vivado 综合为 Verilog "include" 文件定义正确的路径
有些时候我们的一些define需要在工程的各处被引用,所以需要进行全局的include来保证仿真器了解全局定义,否则的话编辑器只会检查同文件夹下的定义。
1.文件属性里设置成Global include
2.在Setting里搜索include可以找到工程Setting下的编译文件的位置
使用markdebug的方法将信号添加到ILA中
一种相对方便快捷的将要查看的信号添加到ILA中的方法,不用调用ILA IP核,每次都要修改。也更容易修改每个信号所对应ILA时钟域,一键产生多个对应的ILA。
