当前位置:文档之家› FPGA的物理实现

FPGA的物理实现

FPGA的物理实现
FPGA的物理实现

附录D 辅导教材3—在FPGA

中的物理实现

在本辅导教材中,将重点讲解如何将一个设计项目物理地实现于FPGA芯片中。我们将展示如何用手工的方法选择器件封装的引脚,并且把这些引脚用做电路的输入和输出信号,此外还将描述如何使用Quartus II编程器模块把编译完的电路传送到所选择的FPGA芯片中。

D.1 分配引脚

在附录C的例子中,器件的引脚是由编译器自动分配给输入和输出信号的。在某些场合,设计者需要用手工将某个引脚分配给电路的某个信号。例如,包含FPGA芯片的电路板也许需要将来自于该FPGA芯片的某些引脚用硬线连接到其他元件,诸如开关或者发光二极管(LED)等。为了利用这些硬线的连接点,设计者必须具有将器件的某几个引脚分配给设计的某几个信号使用的能力。

为了用手工分配引脚,有必要指定所选用的芯片类型。在C.1.1节我们已经做过这件事,当时曾选用EP2C35F672C6 FPGA 芯片来实现逻辑电路,如图C-2所示。再次打开名为example_verilog的项目。

在C.1.4节,我们曾经用芯片布局器(Chip Planner)来检查项目example_verilog编译后生成的电路。正如图C-6 和图C-7所示的那样,该芯片布局器展示了FPGA的输入/输出单元,通常将这些排列在芯片四周的单元称为引脚垫(pad)。为了看清楚这些引脚垫是如何对应于FPGA芯片封装的引脚的,可以使用引脚布局工具(Pin Planner tool)。选择Assignments>Pin Planner,打开如图D-1所示的窗口。为了使显示的窗口与给出的图一致,可能需要将观察(View)菜单下的某些设置项启动或者关闭。图D-1中启动的设置项为:View>Show>Package Top、View>Show>Show Fitter Placements 和View>All Pins List。

图D-1上部的图像表示从型号为EP2C35F672C6的芯片上部往下看去所看到的芯片封装。虽然在这个窗口中有许多信息可以利用,但只是为了分配引脚的目的,没有必要考察细节。引脚的位置用行和列标记,行用字母标记,而列用数字标记。例如,最上面一行第5列的引脚称为引脚A5,最下面一行第5列的引脚称为AF5。用于编译生成电路的引脚以颜色区分。在引脚的符号上移动鼠标,从打开的提示框可以看到分配给该引脚的信号名(若提示工具没有启动,则选择Tools>Options,然后将Tooltip设置项修改为Pin Planner(引脚布局))。描述不同引脚符号的图例可以通过选择View>Pin Legend Window 打开。

对本辅导教材而言,假设由项目example_verilog 生成的电路将在DE2教学开发板上实现,这是一块基于Altera公司FPGA芯片的线路板。DE2教学开发板如图D-2所示。这块功能强大的开发板具有许多功能,我们的简单设计将只使用该线路板底边的几个开关和发光二极管。电

路的输入x

1、x

2

和x

3

将分配给名为SW[0]、SW[1] 和SW[2]的三个触发器(乒乓开关),这三个

开关分别连接到FPGA的引脚N25、N26 和P25。电路的输出f连接到引脚AE22,它将被连接到绿色的发光二极管LEDG[0]。

D-1 芯片布局器上显示的引脚

图D-2 Altera DE2型教学开发板

图D-1下部的表列出了项目的输入和输出端口,可以把这些端口分配给指定的引脚。为了连接输入信号x 1,双击该表的Location 列,如图D-3所示,然后从显示的清单中选择引脚N25。重复该过程完成所有引脚的分配,引脚分配完毕的表如图D-4所示。除了分配新引脚之外,引脚布局器还可以用来编辑或者删除已经分配的引脚。分配完毕的引脚可以删除,方法是:选择该引脚,然后按一下键盘上的Delete 键。

图D-3 分配一个引脚

辅导教材3—在FPGA 中的物理实现555

D-4 完整的引脚分配

引脚分配完毕后再次对设计项目进行编译

现在,尚未对example_verilog 项目进行再次编译,所以对引脚的分配不会对上次编译的结果产生影响。为了使引脚的分配方案得以实现,必须对项目进行再次编译。在这次编译期间,映射器(Fitter )将把用户手工指定的引脚分配给指定的端口,而其他未指定具体引脚的端口,则由软件自动分配引脚(对某些特定的用于FPGA 编程和配置的端口,其引脚的指定是在编译过程中自动完成的,在引脚布局器中看不到)。编译后,引脚布局器将展现正确的引脚分配。

D.2 FPGA 芯片器件的编程和配置

设计项目一旦通过编译,所生成的电路构造代码就可以下载到DE2教学开发板的FPGA 芯片中。该教学开发板支持一种叫做JTAG 编程的编程模式。用一条电缆将DE2教学开发板最左边的USB 接口与主机的USB 接口连接起来,便可将电路构造配置数据从运行Quartus II 软件的主机中传送到开发板上。为了使用该连接,必须安装USB-Blaster 驱动程序。如果该驱动程序还没有安装,请查询“Getting Started with Altera’s DE2 Board ”,其中有如何安装驱动器的材料,这篇材料可以从Altera 公司的网页上下载。在使用开发板前,请先确认USB 电缆连接是否可靠,然后再接通开发板的电源开关。

在JTAG 模式中,配置数据被直接下载到FPGA 芯片中。JTAG 是Joint Test Action Group (联合测试行动小组)这四个英文单词的首字母缩写。该小组定义了测试数字电路以及为数字电路加载数据的简单方法,这些方法已成为IEEE 标准。若用这种简单的方法来配置FPGA ,只要电源持续有效,则FPGA 将一直保留这次配置信息,而断电后配置信息就会立即丢失。没有用过DE2教学开发板的读者可能不知道如何下载电路配置数据,下载的步骤是很容易的。JTAG 编程

JTAG 的编程和配置的操作步骤如下:确认DE2板上的RUN/PROG 开关已设置在RUN (运行)上。选择Tools>Programmer 命令,出现如图D-5所示的窗口。此时,需要指定选用的编程硬件和模式。若以前还没有选择过(即默认),则应该在Mode (模式)下拉列表框中选择JTAG 。若还没有选择USB-Blaster (即默认),则点击Hardware Setup (硬件设置)按钮,然后在弹出的窗口(如图D-6所示)中选择USB-Blaster 。

点击如图D-7所示窗口中的Start (启动)按钮。当配置数据下载成功后,开发板上的一个蓝色发光二极管将会点亮。若用户看到Quartus II 软件发出错误报告,表明编程失败,则检查开发板和下载电缆,确认连接是否可靠,开发板的电源是否已经打开。

把配置数据下载到FPGA 芯片中后,用户就可以测试所实现的电路。设置乒乓开关SW[0]、SW[1] 和SW[2]的相应状态,将输入变量x 1、x 2 和x 3的八种取值都试验一下。核对该电路是否实现了项目example_verilog 代码指定的逻辑功能。若电路工作不正常,用户需要确认键入和556附录D

编译的引脚分配是否正确。若用户想要在设计的电路中做一些修改,则首先关闭编程器窗口,然后在该设计对应的Verilog 文件中进行修改,重新编译产生新的电路配置数据,对开发板重新编程,其步骤与上面讲述的一样。

图D-5 编程器窗口

图D-6 硬件设置窗口

图D-7 更新的编程器窗口

辅导教材3—在FPGA 中的物理实现

557

在example_verilog 代码中,我们用x 1、x 2、x 3和f 分别为输入和输出端口命名。另外一种方法是用DE2教学开发板上对应的乒乓开关名和发光二极管名为端口命名,这样做也许更方便些,因为在DE2教学开发板上每个乒乓开关和发光二极管附近都有一个标记,这使得我们很容易识别电路的输入和输出信号。

作为一个简单的练习,如图D-8所示,修改example_verilog 的代码。在修改后的代码中,使用了与DE2教学开发板对应的端口名,并添加了名为LEDR[0]、LEDR[1] 和LEDR[2]的三个输出。这三个输出分别对应于三个乒乓开关上面的红色发光二极管,且分别连接到FPGA 的引脚AB21、AF23 和AE23。如Verilog 代码中所描述的那样,将乒乓开关的值赋给相应的发光二极管,当开关往上拨(1)时,使得发光二极管点亮,当开关往下拨(0)时,使得发光二极管熄灭。

图D-8 使用来自于DE2开发板的端口名

在编译修改的代码之前,必须把原来为x 1、x 2、x 3和f 端口分配的引脚删除,然后为SW[0],SW[1], SW[2], LEDR[0], LEDR[1], LEDR[2] 和LEDG[0] 端口分配新的引脚。这些引脚的分配可以通过Quartus II 软件的引脚布局器手工键入,也可以像下面所描述的那样,用由Altera 公司提供的特殊文件进行引脚的分配。

为了方便起见,特别在进行大型设计时,所有与D E 2相关的引脚分配由一个名为DE2_pin_assignments.csv 的文件给定。该文件包括DE2 用户手册中所列出的所有端口的引脚分配信息,其中包括SW[0], SW[1] 等信号。该文件的存储格式叫做逗号分隔值(comma separated value, CSV)格式,这是一个纯ASCII 文本文件。有关该文件的资料可以在Altera 公司的DE2 网页上找到。

用Assignments>Import Assignments 命令,可以把通过修改DE2_pin_assignments.csv 文件进行引脚分配的功能添加到Quartus II 的项目中,然后通过浏览选中该文件。因为在DE2_pin_assignments.csv 文件中,SW 、LEDR 和LEDG 信号均被指定为向量元素,所以我们必须按照如图D-8所示的在Verilog 设计文件中用过的同样方法来引用这些信号。一旦某引脚被输入到设计中,就可以在引脚布局器窗口中看到它。注意,DE2_pin_assignments.csv 文件包括我们这个小电路没有用到的很多端口的引脚分配,输入到设计项目中的多余引脚分配将被忽略,不会产生错误。

对修改后的Verilog 代码进行必要的引脚分配,无论用手工的方法创建一个引脚分配文件558附录

D

辅导教材3—在FPGA中的物理实现559

或者输入DE2_pin_assignments.csv 文件都可以。重新编译该Quartus II项目,然后下载并测试编译后生成的可在DE2板上运行的电路。

D.3 小结

在辅导教材1、2和3中,我们已经介绍了Quartus II软件的许多重要功能。但是可用的功能还有很多,限于篇幅,这里不再逐一介绍。每次应用Quartus II时,读者可以借助于在线帮助,探索各种不同的命令,学习该CAD系统更多的高级功能。全面的辅导材料可以在Altera公司网站的University Program部分找到。

相关主题
文本预览
相关文档 最新文档