前言
好久没回CSDN了,记得这个博客开通是大二时候的事了,一晃都6年了。个人搭建博客是一件很有意思但是需要花费精力的事,我毕竟不是搞web的,我想还是将更多时间用来写博客吧。旧网站会一直开着直到服务器过期,部分值得搬迁的文章到时专门开个专栏搬迁过来好了。
这篇文章是一系列FPGA学习笔记的开端。之所以打算记录下来,一是写的过程中顺带自己理理学习思路,二是希望能对以后同样需要涉足FPGA的新手有一些帮助吧。站在新手的角度去看另一个新手学习过程中记录的笔记,可能很多地方会好懂一点。
后文多图预警!!!!
一、环境搭建与配置
Cyclone系列FPGA的研发厂商ALTERA被INTEL收购了,所以现在开发环境是在INTEL的官网上下载,软件安装没什么好说的,新手使用Quartus Prime Lite版本就行了,免费的,功能也够用。下载网址为:https://fpgasoftware.intel.com/?edition=lite。需要下载Quartus Prime、ModelSim以及使用的芯片的Devices包。
把这堆东西丢一个文件夹里,然后双击QuartusLiteSetup开始安装,一路下一步后,安装程序会自动检测到同一个目录下的ModelSim和Devices包并在安装时一起安装,如下图所示:
后面就是接着一路下一步了,就不多说了。如果在最后安装设备驱动时失败了,进入windows的禁用驱动签名验证模式重新安装就好,具体教程可以根据自己的windows操作系统版本自行百度。
安装完成后打开软件,进入Tools->Options配置一下ModelSim执行文件所在路径,配置工作就完成了,如下图所示。
二、工程建立
打开Quartus后,通过菜单File->New Project Wizard调出工程建立对话框开始建立一个新的工程。
三、Verilog顶层模块编写
最简单的Verilog工程只需要一个描述顶层模块的Verilog文件即可,这个文件的文件名要和其内的模块名一致,同时也应该和我们前一节建立工程时设置的顶层模块名字一样,执行时,将会顶层模块开始执行。按照以下流程建立Verilog文件并且在其中编写代码。
四、编写Testbench文件
Verilog文件编译通过后,只能说明文件编写时的语法没有问题,为了验证逻辑是否符合预期,需要使用ModelSim进行RTL仿真。
首先需要编写仿真用的testbench文件,testbench文件用于为Verilog模块提供外部激励输入,之后只需要观察输出是否符合预期就行了。可以使用开发环境的testbench文件生成模板,当然也可以自己新建一个Verilog文件手动编写。这里给出基于模板编写testbench文件的流程。
先通过Assignments->Settings设置一下仿真相关的参数。
然后通过Processing->Start->Start Test Bench Template Writer选项新建一个testbench模板。
此时在工程目录下的.\simulation\modelsim目录下应该已经生成了与顶层模块名称一样的.vt文件,这就是testbench。在这里是.\hello\simulation\modelsim\hello.vt,使用File->Open打开这个文件,如下图所示。
会根据顶层模块的输入输出接口情况,也就是刚才编写的hello.v文件来自动生成初始化代码,然后添加一些自己的测试代码。(其实为什么要去关注语法细节呢,这又不是这篇笔记的重点。)
将编写好的文件另存为与testbench模块名字一样的.v文件,即hello_vlg_tst.v。
最后通过菜单栏Assignments -> Settings -> Simulation将另存好的testbench添加到工程。
五、使用ModelSim进行RTL仿真
完成第四节的操作后,将工程重新编译一遍就可以进行RTL仿真了,如下图所示进入ModelSim。
更多ModelSIm的基本操作,官方手册了解下?或者不想读英文可以看看别人写的相关博客。