线上线下混合模式的Quartus工程设置

从前面的内容可知,虚拟实验系统有本地(线下)和远程(线上)两种可选择使用。 在学校教学中,可以采用线上线下混合的教学模式。 线上实验不受时间和空间的限制,即使在家里也可以做实验;而线下实验可以获得真实的实验体验,也更便于与指导教师交流。

如果线下实验采用口袋实验板,Quartus工程与线上实验是一样的,因为口袋实验板和远程实验板的FPGA芯片及引脚分配是完全相同的。如果线下实验采用DE2-115开发板,因为它与远程实验板的FPGA芯片不同,Quartus工程设置也就不同。最直接的办法就是建两个工程,一个用于线上的远程实验板,一个用于线下的DE2-115。如果经常需要在远程实验板和线下实验板之间切换,这里介绍另一种方法,利用Quartus自身的功能,在一个工程里包含两种实验板的设置。

Quartus支持在同一个工程中创建多个“修订”(Revision),并且可以复制一个现有的Revision设置,在此基础上创建新的Revision。可以手动创建Revision,也可以用脚本自动创建Revision,后面将具体介绍。

本节所需实验材料可从开源项目托管网站下载,文件组织如下。开始之前,应将相关文件复制到工程所在的主文件夹。

📂 labs
  📂 L00-framework (1)
    📂 LabPrj_DE2-115 (2)
      📄 create_revision_de2-115.tcl (3)
      📄 DE2_115_TOP.v (4)
      📄 DE2-115.sdc (5)
      📄 DE2-115.tcl (6)
1 工程框架文件夹
2 包含用于Quartus软件和DE2-115开发板的工程框架文件
3 用于自动创建Revision的脚本文件
4 DE2-115开发板的Verilog顶层模块
5 DE2-115开发板的时序约束文件
6 用于手动创建Revision的约束文件

手动创建Revision的步骤

假设已经有远程实验板的工程,现在要增加DE2-115实验板的Revision。

(1)在Quartus Prime中打开之前的工程,点击菜单Project ➤ Revision,弹出的Revisions窗口中列出了现有的Revision;双击最后一行的<new revision>,输入Revision name “DE2-115”,点击OK创建新的Revision,并且将其设置为当前Revision。

(2)此时Quartus工具条上的Revision下拉列表选择的应为DE2-115。点击菜单Assignments ➤ Remove Assignments,勾选“All”点击OK按钮移除所有的assignments。

(3)点击菜单View ➤ Tcl Console,打开 “Tcl Console” 子窗口。点击菜单Tools ➤ Tcl Scripts,在弹出的Tcl Scripts窗口中点击“Add to project”按钮,选择DE2-115.tcl。点击“Run”按钮执行该tcl脚本文件,因为DE2-115设置较多,脚本执行会花比较长时间,等待执行完成之后会弹出一个信息框提示“Tcl Script File DE2-115.tcl executed”;如果出错,会在 “Tcl Console” 子窗口显示红色的错误信息,这也是要打开“Tcl Console” 子窗口的原因。

(4)点击Project ➤ Add/Remove Files in Project,移除RemotePocket.sdc,添加DE2-115.sdc;移除LabBoard_TOP.v,添加DE2_115_TOP.v并将其设为顶层模块。

使用脚本自动创建Revision

假设已经有远程实验板的工程,并且已有的Rivision名称应为Lab,现在要增加DE2-115实验板的Revision。

(1)实验材料中提供了一个脚本文件create_revision_de2-115.tcl用于自动创建面向DE2-115的Revision,将该文件及DE2-115.sdcDE2_115_TOP.v复制到工程所在文件夹。

(2)启动 Quartus Prime,打开远程实验板的工程。 该工程是根据Quartus FPGA设计流程创建的面向远程实验板/口袋实验板的工程,并且已有的Rivision名称应为Lab,否则需要修改脚本。

(3)点击 View ➤ Tcl Console 菜单项打开 “Tcl Console” 子窗口。在“tcl>”提示符后输入 TCL 命令 source ./create_revision_de2-115.tcl ,回车执行该脚本。因为DE2-115设置较多,脚本执行会花比较长时间,等待执行完成之后会回到“tcl>”提示符;如果出错,会在 “Tcl Console” 窗口显示红色的错误信息。

使用Revision

创建完成后可以点击菜单Project ➤ Revision,在弹出的窗口中选择一个Revision,点击 Set Current 将其作为当前Revision;也可通过Quartus工具条上的下拉列表快速切换Revision。

对于经常需要在远程实验板和线下实验板之间切换的场景,使用Revision的好处是方便代码管理。多个Revision共用的文件只需一份,有差异的代码则可以保存为不同的文件,分别加入各自的Revision。