当前位置:   article > 正文

QUARTUS II FPGA开发经验总结(入门向)_怎样使用quartus 2编写简单的fpga

怎样使用quartus 2编写简单的fpga

1.开发过程

A:使用modelsim与quartus联合仿真

可参考:

quartus和modelsim联合仿真详细教程_hxyo的博客-CSDN博客_modelsim quartus利用quartus和modelsim联合仿真的功能,实现功能产生波形。详细步骤如下:1、编辑verilog HDL语言本次拟实现组合逻辑功能,其代码如下:此为一组合逻辑电路,其原理图可在quartus中绘制出:此即为实现的功能。2、编写激励文件在编译v文件之可以利用quartus生成激励文件,按照上述步骤既可以生成激励文件,在激励文件生成以后对其编辑,产生激励信号,但激励文件一般不自动打开,在文件夹里面可以找到此时注意文件类型应选择全部文件,才可以找到vt文件。对激励文件https://blog.csdn.net/waj123456WAJ/article/details/107999187总结:安装modelsim,配置好路径,调用modelsim仿真即可

B:使用VScode作为文本编译器

可参考:

用VSCode编辑verilog代码、iverilog编译、自动例化、自动补全、自动格式化等常用插件 - 知乎------------2020.12.24------------windows10------------ 绪论一个好用的编辑器,就好比斧头之于伐木工,锋利的、自动化的,能极大的提高工作效率。能编辑verilog代码的工具有很多:notepad++、Sublime、VSCode…https://zhuanlan.zhihu.com/p/338497672总结:安装vscode,完成配置,vscode中添加必要插件(语法高亮,自动例化,代码补全等插件较为重要),使用vscode写代码即可。另:copilot可以明显提升代码补全的效率,虽然有时候补全的东西需要修改,但是copilot仍然是一个很好的选择。

C:signaltap的使用

可参考:

SignalTap II——基本使用和高级技巧 - 咸鱼FPGA - 博客园本文以4个led灯闪烁,来介绍 SignalTap II 的使用。 一、Verilog案例 led灯以1秒的时间循环左移,代码如下: 1 module led 2 // < 参数 > 3 https://www.cnblogs.com/xianyufpga/p/12323021.html总结:modelsim仿真完成后,配置好signaltap,观察上电后各节点的工作是否正确,这是重要的验证过程。

D:开发过程小总结

a.功能分析,划分模块 

b.分别用代码实现每个模块并编译解决语法等基础错误 

c.modelsim仿真,调试至功能正确 

d.根据FPGA芯片文档分配管脚,约束时序并全编译

e.signaltap上电验证

2.经验整理

A:(*KEEP=“TRUE”)可以使语句不会被综合掉

B:仿真未报错,但是结果与预期不符,检查是否仿真时间不足以观察到结果。

C:modelsim仿真时除了顶层模块和Testbench外,记得添加调用的子模块,尤其是使用了IP核的情况,记得添加进去。

D:声明变量时注意位宽,尤其时写Testbench或top时,对子模块进行例化声明变量时要注意位宽。

E:关注wire型变量的物理含义,当某个变量仿真结果为HZ时,此端口可能被综合,也可能不存在。

F:注意使能信号是高电平使能还是低电平使能。

G:模块变量声明和例化模块时,最后一位末尾没有 “,”  (逗号)。在修改端口的时候记得检查此类问题。

H:由于quartus版本原因,IP核的配置无法打开,这是intel和altera的问题。

可参考:

解决 Quartus Prime 18.0 编译之后打不开PLL Megawizard 的问题_ShareWow丶的博客-CSDN博客解决 Quartus Prime 18.0 编译之后打不开PLL Megawizard 的问题Background不多说,使用Quartus II 13.0 的工程 挪到 Quartus Prime 18.0 下编译之后,在Project Navigator中 的Hierachy下,不能双击IP核打开 Megawizardhttps://blog.csdn.net/sinat_31206523/article/details/86748556I:针对综合出不需要的latch的情况,画一画条件分支的图,检查if,case等条件语句是否赋值不完备。

J:always块中敏感信号未用到,有可能会产生latch。

K:使用modelsim仿真时,自己的工程中模块名避免和modelsim 的lib里的模块名重复。

3.总结

以上为工作学习过程中遇到的一些问题以及经验,希望对读者有所帮助,作者能力有限,如有错误,恳请批评指正。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/代码探险家/article/detail/805169
推荐阅读
相关标签
  

闽ICP备14008679号