3.2.2 使用GVIM编辑器
上一节为大家详细介绍了使用官方文本编辑器来编写 Verilog 代码的方法。事实上,也可以选择使用其他文本编辑工具来提高编写、修改代码的效率。在此推荐一款文本编辑器 GVIM,并展示如何使用该软件来设计 Verilog 代码。
首先,打开 GVIM 软件,打开文件>另存为。在弹出的图 1.4-17 界面中将文件名写为.v 格式,表示创建一个 Verilog 语言设计文本。这样在创建的文本编辑界面中,会高亮显示 Verilog 语法中的一些关键字。在此文本编辑界面中对案例中的代码进行编写,如图 1.4-18 所示。
3.2.3 添加文件
一个工程中可以包含许多个模块,每个模块又可以保存为一个独立的文件。正如图 1.4-7 所讨论的那样,设计师可以告诉 Quartus prime 软件哪些文件是当前工程的一部分。在前面的案例中如果要查看当前 light 工程中已包含的文件列表,可以选Assignment>Setting>File,随后可以打开图 1.4- 17 所示界面。另外一个操作方法是选择 Project>Add/Remove Files in Project。使用 Quartus prime 文本编辑器创建文件时勾选 Add file to current project 选项,所创建文件即可自动加入到工程文件列表。如果使用的不是 Quartus prime 自带的文本编辑器,那么在打开图 1. 4-19 所示的界面查看列表中的文件时,列表中没有所创建的文件,此时必须手动添加文件到工程文件列表中。具体操作方法为:单击图 1.4-19 中 File Name 方框后的按钮,弹出图 1.4-20 所示对话框,选择 light.v 后单击 Open 即可将该文件添加到工程文件列表中。此时再次查看图 1.4-19 界面,可以看到所添加的文件已经进入文件列表。需要注意的是,在大多数案例中 Quartus prime 软件可根据各个实体自动找到正确的文件,即使没有将文件添加到工程中也没有问题。然而,对于包含许多文件的复杂工程,将所需文件按照上述方法一个个添加到工程中去是一个很好的设计惯例。
3.3 编辑设计电路
设计完整个工程之后,要经过 Quartus prime 软件中几个工具的处理,分别是分析代码、综合电路以及生成目标芯片的实现内容。这些应用工具被聚集在一起,统称为编译器。选择 Processing>Start Compilation 运行编译器,或者单击如下:
按钮运行。在编译过程中,Quartus prime 的左边会显示编译的进度过程。当进度到达 100%即表示编译成功.
当编译成功后,可以通过如下:
按钮手动打开编译报告。
在此窗口的左面列出了许多信息的列表,其中比较有价值的信息是此工程使用的芯片资源情况。如图 1.4-21 所示,本工程使用到了 1 个逻辑单元(LE)和 3 个引脚资源。
在编译期间,Quartus prime 在消息窗口会显示生成的消息。如果此工程编译通过,其中一条消息会显示编译成功,没有产生错误。
如果工程编译不通过,那么就代表设计的 Verilog 代码中至少有一个或以上错误。在这种情况下与代码中错误对应的消息就会在消息窗口显示。双击某条错误信息,该信息将会滚动显示完整并且打开 Quartus prime 自带文本编译器,将 Verilog 代码中处出现错误的地方高亮显示。类似的,编译器也会显示许多警告消息,同样的方法也适用于查看完整的警告消息。如果想获取针对于某条错误或警告消息的更多报告信息,可选住此报告后按 F1 功能键即可进行查看。
为了演示上述的现象,将模块 light.v 的最后一行改成 endmodules 后重新进行编译。Quartus prime 弹出对话框,显示编译不通过,编译报告如图 1.4-22 所示,单击 OK 以确认。在消息窗口单击Error 标签,显示图 1.4-23 所示消息。双击第一条错误信息后 Quartus prime 文本编辑器打开 light.v模块,可以看出最后一行被高亮显示,如图 1.4-24 所示。修正代码后重新进行编译,此时工程编译可以通过。
3.4 引脚分配
使用开发板上的 LED6(连接的信号线为 LED1_NET)代表 f,sw0 和 sw1 分别代表 x1 和 x2,所需引脚如图 1.4-25 所示。选择 Assignments>Pin Planner(或单击如下按钮),
打开图 1.4-26 所示窗口,在下方 Location 下面输入要配置的引脚信息。
3.5 编程及配置FPGA器件
引脚分配完毕之后,需要重新进行一次全编译。当全编译通过后 Quartus prime 软件即可生成可以烧录到 FPGA 中的配置文件。将下载器 USB-Blaster 与 FPGA 开发板进行连接,打开 FPGA 开发板电源后回到 Quartus prime 主界面,选择 Tools>Progrmmer 或单击如下按钮,打开图 1.4-27 所示窗口,
选择配置模式 Mode 为 JTAG。在缺省情况下,USB-Blaster 没有被选中,单击 HardwareSetup 按钮,在弹出的窗口选择 USB-Blaster 即可选定下载器,如图 1.4-28 所示,单击 Close 完成配置并退出。
如图 1.4-29 所示,待烧录进 FPGA 的配置文件 light.sof 已被列入窗口。如果该文件没有列入窗口,则单击 Add File 手动选择烧录文件 light.sof 加入。该文件是一个由编译器的汇编模块生成的二进制文件,其包含配置 FPGA 器件的数据。其中,.sof 文件后缀表示 SRAM 目标文件(SRAM Object File)。选中的器件为 EP4CE15F23,勾选 Program/Configure 选项,单击 Start。
注意,在使用前需要安装下载器的驱动程序。
USB-Blaster 用户,请参考 http://www.altera.com.cn/literature/ug/ug_usb_blstr.pdf
Byte-Blaste-rprime 用户,请参考 http://www.altera.com.cn/literature/ug/ug_bbprime.pdf
Ethernet-Blaster 用户,请参考 http://www.altera.com.cn/literature/ug/ug_ebcc.pdf
3.6 在线调试
下载完毕后即可进行电路的测试,利用 sw0 和 sw1 输入所有可能值,观察 LED 亮灭是否和预期保持一致。如果与预期不致,那么就需要去定位问题,此时将使用到 SINGNALTAP 工具,具体使用方法请参照下一章内容。
3.7 固化程序
将.sof 格式的配置文件烧录到 FPGA 中后,FPGA 无法完成配置文件的保存,在下一次上电的时候,FPGA 内部仍为空白。如果不希望每次上电后再次手动的将配置文件烧录到 FPGA 芯片内部,可以通过程序固化的方式,将配置文件烧录到 FPGA 芯片外部掉电不丢失数据的 Flash 存储器中。这样在每次上电的时候便可以自动的完成配置,外部存储器就会自动的将配置文件下载到 FPGA 中。
下面来介绍一下程序固化的具体步骤。
首先,打开 File>Convert Programming File,在 Programming file type 选项中选择.jic 文件格式。
如图 1.4-30 所示,将待烧录文件类型更改为.jic 格式后,在 Configuration Device 选项中选择设备配置为 EPCS64,在 Input files to convert 栏中,选择 Flash Loader 后点击 Add Device 按钮。随后选择 FPGA 器件型号,选择芯片型号为 EP4CE15,弹出如图 1.4-31 所示窗口后点击 OK。
接下来需要将.sof 配置文件转为.jic 格式,点击 SOF Data,如图 1.4-32 所示,选择相应的.sof配置文件。点击 Generate 按钮,生成.jic 文。
回到 Programmer 界面,点击 Add File 按钮,在文件夹下选择相应的.jic 文件。如图 1.4-32 所,将该文件加入之后在界面上将.sof 格式文件(通常情况下在第一行)取消勾选,在名称含有.jic 的文件选项中,勾选以下几个选项:Program/configure,Verify,Blank-Check。勾选 Program/configure 时其他文件的该选项也会自动勾选。
随后点击 Start 按钮,进行程序固化。