引言
FPGA最初阶段的学习可以分为两部分。一是HDL的语法,二是相关工具的使用。
这第一部分,就是verilog HDL或者VHDL,国内用verilog的占得比例多一些。
对于第二部分,这要看具体的FPGA开发过程,一般过程如下:
3.1 FPGA开发flow
1》进行需求分析,算法设计,模块划分,形成文档,用的matlab,vesio或者ppt比较多。(分析设计)
2》用UE或者,notepad++或者sourceInsight,或者IDE自带的编辑工具进行行为建模。(编码)
3》用modleSim进行功能仿真,或用$dumpfile("rill.fsdb")生成fsdb文件。(前仿真)
4》将fsdb文件导入debussy软件,进行问题查找定位,修改代码。(调试)
5》用synplify pro进行综合,生成vqm文件。(综合)
6》用quartusII或者ISE对vqm文件进行P&R(布局和布线),生成vo文件和sdo文件。(布局布线)
7》再用modleSim对vo和sdo进行时序仿真,当然需要将FPGA厂家的仿真库文件一同编译进modleSim的仿真库。(后仿真)
8》用quartusII 的time request添加约束并仿真。生成sof或者pof配置文件。(实现)
9》烧写配置文件。(OK)
对于做IC/ASIC,步骤还会有元件库的映射等工作。
3.2 verilog HDL
我试图通过一个例子来说明verilog的语法。我自己写的例子,希望能仔细体会。
一个反相器:
3.2.1 反相器的行为级建模

3.2.2 RTL级建模

3.2.3 门级建模

3.2.4 开关级建模,叶级建模

3.2.5 用户自定义原语(UDP)

3.3 测试,一定要习惯写testbench

3.4 小结
语法不是学会的,是实践会的。百炼自得,你懂的。希望你把上面的代码都能理解,并且知道他们之间的区别和联系。 |
|