实验01加法器

更新时间:2024-06-10 21:43:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实验一 加法器

一.

1. 2. 3. 4.

实验目的

掌握QuartusⅡ的原理图输入设计方法

学会使用QuartusⅡ进行编译、仿真、锁定管脚、下载 掌握多位全加器的设计方法 熟悉实验板的部分电路

二. 预备知识

利用EDA工具进行原理图输入设计的优点是,设计者能利用原有的电路知识迅速入门,完成较大规模的电路系统设计,而不必具备许多诸如编程技术、硬件语言等新知识,而且直观,根据数字电路的知识即可完成。

QuartusⅡ提供了功能强大,直观便捷和操作灵活的原理图输入设计功能,同时还配备了适用于各种需要的元件库,其中包含基本逻辑元件库(如与非门、反向器、D触发器等)、宏功能元件(包含了几乎所有74系列的器件),以及功能强大,性能良好的类似于IP Core的兆功能块LPM库。但更为重要的是,QuartusⅡ还提供了原理图输入多层次设计功能,使得用户能设计更大规模的电路系统,以及使用方便精度良好的时序仿真器。

三. 实验步骤

设计思路

1位全加器可以用两个半加器及一个或门连接而成,因此需要首先完成半加器的设计。 设输入信号为A,B,so为半加和,co为进位。

根据数字电路的知识,我们可以列出半加器的真值表,如表1-1所示。

表1-1 半加器真值表

输入 A 0 0 1 1 B 0 1 0 1 So 0 1 1 0 输出 Co 0 0 0 1 根据真值表,我们可以得出输出和输入之间的关系,如式1-1所示。

?so?AB?AB?(A?B) ?co?A?B?A and B ? (1-1)

根据上式我们得出,so为两个输入信号的异或(xor门),co为两个信号的与(and门)。 步骤1:为本项设计建立文件夹

任何一项设计都是一项工程(Project),QuartusII以工程方式对设计过程进行管理,工程中存放创建FPGA配置文件需要的所有设置和设计文件。设计前一般首先为此工程建立一个放置与此工程相关的所有

文件的文件夹,此文件夹将被EDA软件默认为工作库(Work Library)。一般不同的设计项目最好放在不同的文件夹中。

为了区分方便起见,每个同学在E盘建立一个以自己英文名字的一级文件夹,一级文件夹下建立二级文件夹,二级文件夹的名字为shiyan_1,第二个实验的二级文件夹为shiyan_2,……,在E盘中,设路径

为:e:\\MYNAME\\shiyan_1。MYNAME为自己的英文名字。

注意:QuartusII为英文软件,不支持全角字符,故文件夹不能用中文(包括放在“桌面”文件夹下),也不能带空格。

不要将文件夹设在计算机已有的安装目录下,更不要将工程文件直接放在安装目录下。 步骤2:建立设计工程

1、点击桌面的QuartusII的快捷方式图标,或在Windows桌面选择“开始”→“程序”→“Altera”→Quartus II 8.0→Quartus II 8.0 (32-Bit),打开QuartusⅡ8.0软件。 如果第一次使用QuartusII软件,需要安装License 安装QuartusII软件License。(第一次使用)

软件界面如图1-1所示。????????

执行菜单 File(文件)?New Project Wizard…(新建工程向导),如图1-1所示。

图1-1 新建工程菜单

2、弹出如图1-2所示的新建工程向导介绍界面,介绍了新建工程所包含的步骤,可以勾选“Don?t show me this introduction again”使以后每次新建工程时不再出现该介绍界面。

图1-2 新建工程向导介绍界面

3、点击“Next >”按钮。弹出如图1-3所示的新建工程向导步骤一对话框。

图1-3 新建工程向导步骤一对话框

其中第一项为新建工程的目录,点击右面的“…”按钮,弹出图1-4的选择文件夹对话框,选择选择合适的硬盘分区和已有的文件夹;或点击右上方的“创建文件夹”按钮可以新建文件夹。选择好合适的文件夹后,点击右下方的“打开(O)”按钮即完成存放工程的文件夹的设置。

图1-4 选择工程文件夹对话框

其中第二项为新建工程命名,一般新建工程的名字和工程的功能有关,故我们在这里命名为half_adder。

其中第三项为新建工程的顶层文件名,系统默认和工程名相同即half_adder。

注意:工程即项目,而顶层文件相当于其它编程软件的主程序,在软件编译时只编译顶层文件和与其相关的文件,在编译前,可以重新设置或更改顶层文件为其它已存在的文件。

点击“Use Existing Project Setting…”按钮可以复制已存在的工程到新建工程中。(此略) 4、点击图1-3的“Next”按钮,弹出如图1-5所示的新建工程向导步骤二对话框。该步骤可以进行“在该工程中添加已存在的文件”,因我们的文件夹是空的,没有有效的文件,故跳过该步。

图1-5 添加文件对话框

5、点击“Next >”,弹出如图1-6所示的选择器件对话框。其中“Family”选项卡用来选择工程设计中所使用的器件的系列。Altera公司的FPGA器件根据生产工艺和功能分为许多种系列,每种系列又包含若干器件。我们根据实验箱器件配备的器件,选择Cyclone系列。为了快速选择使用的器件,可以在“Show in ?Available device? list”分别对“Package”(封装)、“Pin count”(管脚数)、“Speed grade”(器件速度等级)进行设置对“Available device:”(符合条件的器件) 进行筛选,以快速的对所使用的器件。

我们使用的器件是Cyclone系列的EP1C6Q240C8或EP1C12Q240C8器件。其中器件名称中部分字母的含义:

Q,代表封装为PQFP,即塑料四方扁平封装,芯片的四周均有引脚。 240:指器件的管脚数,因为是四边管脚数相同,故每边240个管脚。 8:代表速度等级为8,一般来说,器件速度等级越小,速度越快。

6或12:指器件的容量,有时也用逻辑单元、门数等表示。一般来说EP1C12Q240C8的容量是EP1C6Q240C8的容量的2倍。

对于其它符号的含义,可查找相关资料。

图1-6 选择器件对话框

6、选择相应的器件后,点击“Next >”按钮,弹出如图1-7所示的设置其它EDA工具对话框,此窗口有三个选项,分别对应:1. 选择输入的HDL类型和综合工具;2.选择仿真工具;3.时序分析工具。这是除QuartusII 自含的所有设计工具以外的外加的工具,我们没有涉及其它的EDA工具,故此处不做选择。

图1-7 设置第三方EDA工具对话框

7、点击“Next >”按钮,弹出如图1-8所示的工程的总结报告。点击“Finish”完成工程设置。

图1-8 新建工程设置总结报告界面

步骤3:建立原理图文件

1、点击下拉菜单“File”,选择“New …”选项,或直接点击新建文件图标

,弹出如图1-9所示

的新建文件选项卡。这里可选择新建文件的类型,下面仅简单介绍我们所涉及的几种文件类型:

1. New QuartusII Project:新建工程,等同于执行菜单 File(文件)?New Project Wizard…; 2. AHDL File:Altera 公司开发的一种硬件描述语言文件; 3. Block Diagram/Schematic File:原理图文件; 4. Verilog HDL File:Verilog语言文件; 5. VHDL File:VHDL语言文件; 6. Memory Initialization File:ROM文件; 7. Vector Waveform File:波形仿真文件

我们采用原理图完成半加器,故此处选择“Block Diagram/Schematic File”,点击“OK”,完成选择。

图1-9 新建文件类型界面

2、我们采用原理图完成半加器,故此处选择“Block Diagram/Schematic File”,点击“OK”,完成选择。弹出如图1-10的软件平台界面:

原理图 编辑窗口

图1-10 QuartusII软件界面

左侧的Project Navigator区域为“工程控制面板”,分3个选项卡,其中:“Hierarchy”显示的是工程的层级;“Files”显示工程所包含的文件;“Design Units”显示设计的单元。对我们来说,“Files”是经常用到的,可以方便地对工程文件进行处理和设置。

原理图输入区域左侧是模块编辑工具栏,其功能如图1-11所示。需要特别说明的是:器件连线是对1位的数据线连线操作,而画总线是对多位的数据总线连线操作。橡皮筋按钮的功能是当连接功能打开时,移动元件,则连接在元件上的连线跟着移动,不改变原有的连线;否则,移动元件,连线不跟着相应的移动,从而原有的连线会断开。选择缩放工具按钮时,对原理图文件的试图比例进行改变,鼠标左键为放大,右键为缩小。

10

分离窗口选择工具插入文本插入符号插入模块器件连线画总线画管道部分线选择工具全屏切换查找工具水平翻转垂直翻转逆时针旋转90o分离窗口画椭圆分离窗口画弧线橡皮筋功能缩放工具

图1-11 原理图编辑工具栏说明图

3、在原理图编辑窗中的任何一个位置上双击鼠标左键,或执行菜单 Edit→Insert Symbol...;或点击图1-11所示的插入符号(元件)按钮,将弹出如图1-12所示的输入元件选择窗。在左侧的Libraries选择区域可以展开元件库。“megafuctions”为兆功能元件库;“others”主要包括maxplus2中的元

件库;“primitives”为基本元件库,主要包括缓存、基本逻辑门、输入输出管脚符号、触发器等。或直接在“Name:”区域直接输入元件名称以快速的找到所需的元件。点击“MegaWizard Plug-In Manager…”按钮,可以进入添加参数可设置的兆功能模块向导。

根据公式1-1可知,我们需要两个基本的逻辑门器件----两个信号的与门和异或门(XOR)。我们可以展开“primitives”基本元件库的的logic基本逻辑门器件列表,分别找到and2选择“OK”,并在原理图输入区放置到合适的位置。同样添加xor元件。

同时我们还要添加输入(input)、输出(output)引脚符号。 说明:

1.寻找、选择器件时可以直接在“Name:”下直接输入元件或符号名

2.如果是同一原理图存在较多的相同元件,在添加第一个元件后,在原理图上可以点选改器件,使用快捷键“CTRL+ c”进行复制,然后鼠标点击其它空白区域,使用快捷键“CTRL+ v”进行粘贴。 3.为了连线方便,有连线的器件尽量距离靠近一些;为了原理图美观,尽量器件对齐。要养成好的习惯,以达到较好的视觉效果

11

所选择元件预览区

图1-11 选择元件界面

4、按照式1-1,进行连线,结果如图1-12所示。

AND2AINPUTVCCOUTPUTCOinstXOROUTPUTBINPUTVCCSOinst2 图1-12 半加器原理图

说明:

1. 放置元器件后,每个元器件的符号的左下角都有一个编号,如“inst”、“inst2”,是输入元件时软件的自动顺序标号,编译时如果该元件有错误,会提示[ID:*] 错误,便于区别和寻找。

2. “INPUT”为输入管脚符号,双击该符号,则弹出如图1-13所示的输入管脚属性设置对话框,为了方便的区分管脚名称,在“Pin name(s):”栏可以对管脚进行重命名。在“Default value:”栏可以

12

对输入管脚的默认电平进行设置。在“Format”选项卡可以对内部线的颜色和字体进行设置。

图1-13 输入管脚属性设置对话框

3、对“Pin name”和“Default value”的设置也可以这样设置:在管脚名称或默认电平区域点击鼠标,然后再点击鼠标(中间有一定的时间间隔不要双击而进入图1-13的界面),会选中该名称,然后进行相应的输入或设置。如果修改完成后,键入“Enter”键确定,且该管脚不是同类管脚的最后一个添加的管脚,则自动跳到其下一个添加的同类管脚的相应位置进行修改。

4、关于连线:如果需要连接两个元件端口,则将鼠标移动到其中的一个端口上,这时鼠标指示符会自动变为“+”形,然后按住鼠标左键并拖动鼠标至第二个端口(或其它地方),松开鼠标后则可画出一条连线。如果两个元件端口并未在同一水平线或垂直线上,先拖动鼠标到合适位置,松开后在此处继续拖动鼠标左键,即可改变为折线。

也可以这样方便的连线:如图1-12,如果在CO和AND2之间需要连线,在图1-11的“橡皮筋功能”使能的情况下,移动CO的管脚符号使其需要连线的端口和AND2符号的输出端口贴紧,松开鼠标,然后移动管脚CO,在这两个端口之间就方便连线了。

如果需要删除某段连线,左键点选该线为蓝色(颜色和软件的设置有关),按“Delete”删除。如果要对某段线相通的全部连线进行操作,在线上双击鼠标即可选择其全部连线,然后点击鼠标右键进行删除、旋转操作和线类型设置等。

对原理图操作时,一般工具箱一直选择的是“选取工具”,结合鼠标的右键弹出的相应功能,基本可以完成全部的操作了。

在空白区域点击并拖动鼠标可以选择区域内的元件和连线。

元件之间的连线尽量不要和元件符号的边缘虚线重合,也尽量不要从元件符号区域穿过。不仅原理图不美观,且无法发现连线的错误。

4、执行菜单File →Save,或点击快捷按钮中的保存按钮,文件取名为:h_adder.bdf (注意后缀是.bdf)。在保存文件时,文件名可以用设计者认为合适的任何英文名,但是不要和所使用的元件名重名,名称也最好和其功能相联系。

在保存界面上,一定要勾选“Add file to current project”,即把该文件加入到该工程。

重点注意:保存文件时一定要注意对文件的命名,绝对不能相互之间重名;对软件默认(建议)保

存的名称一定要仔细看清楚,是否使用。否则一定会出错误,对初学者来说,这个错误是经常遇到的。

13

步骤3:设置顶层文件

如果设计项目由多个设计文件组成,则应该将它们的主文件,设置成顶层文件。文件保存后,工程控制面板的信息如图1-14所示,在文件选项卡,选择待设置为顶层文件的文件,点击鼠标右键,弹出如图1-15所示的文件操作界面。

(a) 层级选项卡 (b) 文件选项卡

图1-14 工程控制面板

图1-15 文件操作界面

在该界面中:“Remove Filr from Project”是把从工程中移除该文件(不不是删除文件);“Set as Top-Level Entity”是把该文件设置为本工程的顶层文件(类似主程序),在编译时,就编译该文件以及与其相关的文件。我们执行“Set as Top-Level Entity”操作,把“h_adder.bdf”设置为顶层文件。这时图1-14所示的层级选项卡的顶层文件会相应的改变。 步骤4:引脚锁定

如果需要将设计编程下载进选定的目标器件中,进行硬件的测试,以便最终了解设计项目的正确性。这就必须根据评估板、开发电路系统或EDA实验板的要求对设计项目输入输出引脚赋予确定的引脚,以便能够对其进行实测。

在实验中,为了验证设计的正确性,就需要一定的外围电路。如本实验中,为了能控制输入信号的变化,就需要按键、拨动开关之类的电路,可以方便地控制输入的高低电平变化。本实验的输出信号只是高低电平变化,故需要使用LED,LED的亮灭变化能显示输出管脚的电平变化。假设本实验使用K1控制A、K2控制B、LED1显示CO、LED2显示SO。

如果不锁定管脚,直接下载到FPGA芯片上,半加器的4引脚A、B、CO、SO与FPGA芯片的IO管脚是随机分配的。锁定管脚,就是把半加器的输入输出管脚人为固定分配。例如我们要用K1控制半加器的输入A,实验板本身,已经把按键的信号和FPGA器件的编号为121的管脚相连接,我们只需在FPGA器件内部使半加器的输入A和121管脚相连即可,即锁定管脚,这样就实现K1控制半加器的输入信号A了。

本实验管脚分配如表1-1所示。

信号 A

14 引脚 121 B CO SO 122 50 53 执行菜单“Assignments”→“Assignment Edit”或点击与其对应的快捷按钮,弹出如图1-16所示的引脚分配对话框。

管脚顺序编号

图1-16 分配引脚对话框

在该对话框内,不激活“Show All Assignable Pin Number”的按钮Pin Names”的按钮

,激活“Show All Known

,可以只显示输入输出管脚的信息。在“Value”栏,点击相应的区域,可以

直接输入相应的管脚编号,回车后,自动跳到下一个。完成引脚分配后,关闭该子窗口,进行保存,或点击保存按钮。切换到“h_adder.bdf”文件,则看到原理图文件中的输入输出管脚附近有该管脚的引脚标号信息。如果没有引脚标号信息,执行菜单“View”,激活“Show Location Assignments”即可;或在原理图文件空白区域点击鼠标右键,在弹出的菜单“Show”中激活该选项设置。

注意:器件和引脚的其它设置 执行菜单““Assignments”→“Device…”,弹出如图1-17所示的器件选择对话框。如果需要,在这里可以重新选择FPGA器件。(更改器件可能需要重新引脚锁定)。

15

图1-23 波形编译器

(2)添加信号节点

在其左侧空白区域双击鼠标,会弹出如图1-24所示的输入信号节点对话框。

图1-24 输入信号节点对话框

在该对话框,可以直接在“Name”区域输入已知的节点名称。但是为了方便快速的输入信号节点,可以点击“Node Finder…”按钮,弹出如图1-25所示的查找节点对话框。在“Filter”选项中选择“Pins: all”即不进行筛选而显示全部节点;点击“List”按钮,进行“Start node search”后,在“Nodes Found”会列出已寻找到的节点。选择合适的节点,通过“>”、“>>”、“<”、“<<”四个按钮对节点进行添加或移除。

21

图1-25 波形编辑窗口

注意:点击“List”按钮时,若“Nodes Found”栏显示的节点不对,可能是未进行全程编译、顶层文件设置不正确。 (3)设置仿真时间。对于时序仿真来说,将仿真时间轴设置在一个合理的时间区域是十分重要的。通常设置的时间范围在数十微妙间。对于不同的设计和不同的情况下,仿真时间不同。

执行菜单“Edit”→“End Time…”会弹出设置仿真时间对话框,根据情况设置仿真时间。我们这里按默认值1us设置。

(4)设置输入信号激励波形

输出输入及节方点向序号节点名称节时点间数参据考类线型数值时间基参考线设置激励波形

图1-26 输入激励波形界面

图1-26为部分输入寄来波形界面,节点符号中带“I”的为输入节点,带“O”的为输出节点。“Master Time Bar:”中的时间代表时间参考线的位置;“Pointer:”为鼠标所放位置的时间值;而“Interval:”为二者的时间间隔。

在“节点数据类型”栏双击鼠标,弹出如图1-27所示的节点属性对话框。这里主要使用的是对数据的“Radix”即数据的显示类型进行设定,便于在方便的观察激励波形的数据。其中Fractional为小数,Hexadecimal为十六进制,Octal为八进制,Signed Decimal有符号的十进制,Unsigned Decimal

22

为无符号十进制。勾选“Display gray code count as binary count”就是以格雷码的方式显示数据(这里不做选择)。

图1-27 节点属性设置对话框

图1-28为波形编辑器工具介绍。其中:缩放工具为左键放大视图而右键缩小视图,在设置输入激励波形时,尽量点击鼠标右键至显示全部仿真时间段,这样设置的波形的比例就比较合适;“反向”工具是在所选时间区域对激励信号取反。

从“未初始化”到“无关状态”就是图1-24中的“9_Level”即9种逻辑电平类型。

分离窗口选择工具波形编辑工具全屏显示查找工具未初始化低电平高阻态弱低电平无关状态计数器任意值对齐网格替 换未知状态高电平弱未知态弱高电平反 向时 钟随机值 排 序文本工具缩放工具

图1-28 波形编辑器工具条

部分工具是对所选择的仿真时间区域进行操作,故只有使用选择工具选择激励波形的某个时间区域后才有效;在“节点名称”栏点击相应的节点,可以选择该节点的全部仿真时间进行同一设置或规律性设置。

点击“计数器”按钮,弹出如图1-29所示的计数器设置对话框。计数器设置就是等差数列设置,

23

即设置起始值(Start value:)、步长“Increment by:”、时间步长(Timing选项卡)。(该计数器功能不体现进位溢,假如信号为8位的总线数据,初始值设为250,步长为10,其第二个数为4=260-256)。需要说明的是:时间设置选项卡中,开始和结束是对激励信号的仿真时间区间进行计数器设置;“Count every:”是设置时间间隔,而“Multiplied by:”是时间倍数,二者的乘积即为实际的时间步长。

图1-29 计数器设置对话框

点击“时钟”设置按钮,弹出如图1-30所示的对话框。其中:“Period:”为时钟信号的周期;“Offset:”为偏置时间,相当于初始相位,默认为0;“Duty cycle(%):”为占空百分比,默认50%。一般情况下根据设计的延时情况,设定合适的时钟周期即可,其它两项为默认值。

24

图1-30 时钟设置对话框

“对齐网格”若使能,就是在手动设定激励信号电平时,只能在“网格”处改变。执行菜单“Edit”→“Grid Size …”可以进行网格间隔的设置。

设置合适的激励波形后,保存文件,注意保存的默认文件名为 工程名.vwf,在这里不要修改,因为仿真时,默认的仿真文件为工程名.vwf。如需进行设置,执行菜单“Processing…”→“Simulator Tool”,打开仿真工具设置对话框,如图1-31所示。

25

图1-31 仿真设置对话框

在仿真模式“Simulation mode:”选项下选择“Timing”类型,即选择时序仿真;在仿真激励文件“Simulation input:”中,选择合适的文件文件名,如果是空白,则软件默认为工程名.vwf文件;并勾选毛刺检测“Glitch detection”,设置为1ns宽度。

点击该界面的“Start”按钮,或在未弹出本界面时,执行菜单“Processing”→“Start Simulation”,或直接点击其相应的快捷按钮,则可以进行仿真。如果正确无误,则自动弹出仿真波形结果文件“Simulation Report”。

26

时间参考线节点电平

图1-32 仿真结果文件查看说明图

在仿真结果区域,点击鼠标右键,执行菜单“Zoom”→“Fit in windows Ctrl+W”操作,使全时域显示仿真波形结果文件。移动时间参考线,可以在节点电平栏方便的看出该时刻的各个节点的电平。如图1-32所示。

注意:QuartusII软件的仿真波形文件中,波形编辑文件(*.vmf)与波形仿真报告文件(Simulation report)是分开的。一般情况下,重新设置激励信号时,要在波形编辑文件(*.vmf)中进行,而不要在波形仿真报告文件进行设置。

这里,CO和SO是半加器输出的结果,有时为了方便观察起见,需要把这两个信号以总线方式显示。我们在波形编辑文件(*.vmf)中,首先把高位放在上方,方法是在图1-26所示的界面上,点击节点相对应的图标

,松开鼠标,并按下鼠标,鼠标变成“”形状时拖动鼠标,把节点移

动到合适的位置。然后点选某个相应的图标,然后按着“Shift”键,再添加其他相应的节点。在选中的节点位置,点击鼠标右键,在弹出的浮动菜单中选择“Grouping”→“Group...”,弹出如图1-33所示的组合“Group对话框。在“Group name:”栏输入节点组合后的名称,假设为“result”;在“Radix:”栏可以选择总线数据以何种进制显示。确定后,在波形编辑文件(*.vmf)中会出现以“result”命名的总线,其前面的“+”号代表层级结构,可以展开。重新执行仿真后,仿真结果文件也相应变化。如果分离某个总线,只需在弹出的浮动菜单中选择“Grouping”→“Ungroup...”即可。

图1-33 节点组合设置对话框

我们把仿真结果文件放大到合适比例,可以看到,输出信号并不是随输入信号“立即”变化的,

27

而是经过一定延时后才改变。这个延时称为tpd,即管脚到管脚之间的延时(pin-to-pin delay),该延时不仅与设计的工程有关,而且还与器件的速度有关。管脚之间的延时在工程编译报告有详细的信息,执行菜单“Processing”→“Compilation Report”,展开“Timing Analyzer”项,其子项目“tpd”中可以看到各个管脚之间的延时。在FPGA设计中,延时是固有的,一般情况下,可以不去理会。

RTL电路 封装。 步骤7:配置文件下载

在第一次使用下载之前,需要对系统进行一些设置。 需要安装ByteBlasterII驱动程序,方法如下:

首先要检查ByteBlasterII驱动程序是否安装。查看方法是在“设备管理器”中查看“声音、视频和游戏控制器选项”里是否已经安装,如图1-34所示,如果已经安装,则可以跳过此步。如果没有安装,可以通过以下步骤进行安装:

驱动程序已经安装

图1-34 设备管理器

选择“开始”→“设置”→“控制面板”,打开“添加硬件”向导,在如图1-35的界面选择“是,我已经连接了此硬件”选项,单击“下一步”按钮。并按照图示设置安装。

(a)

28

(b) (c)

(d) (e)

(f)

(g)

图1-35 添加ByteBlasterII驱动程序向导示例图

其中步骤f的文件路径和QuartusII软件的安装目录有关。

安装结束后,需要重新启动计算机,ByteBlasterII下载线才可以正常使用。

在QuartusII软件添加Altera ByteBlasterII下载电缆。方法如下: 在QuartusII软件主界面下,执行菜单“Tools”→“Programmer”,或直接点击其需要的快捷按钮,弹出如图1-36所示的编程器对话框,查看编程器对话框左上角的“Hardware Setup”栏中硬件是否已经安装,如果是“No Hardware”,表明没有设置编程方式。究竟选用哪种编程方式取决于硬件电路设计。

29

图1-36 编程配置界面

我们的硬件使用的是ByteBlasterMV方式下载,设置方法如下:

点击“Hardware Setup…”按钮,弹出如图1-37(a)所示的对话框,在“Hardware Settings”选项卡下点击“Add Hardware…”按钮,弹出添加硬件对话框,选择如图1-37(b)所示的设置。

(a)

30

(b)

图1-37 设置编程方式步骤

连接硬件:

把并口延长电缆线的一端连接到计算机并行口,另一端连接“ByteBlasterII”下载器,然后连接10针排线,再连接到实验箱的核心板上的“JTAG”下载口。注意:在JTAG下载口(10针双排阵)的上方位置的丝印层标有连接方向提示,即10针排线的凸出部分在左边。

连接电源线,打开实验箱的电源开关。

勾选编程配置的文件,点击“Start”按钮,在配置进度提示栏会显示配置完成情况。如图1-38所示。

配置进度提示栏勾选配置文件图1-38 编程配置选择界面

注意:如果编程失败,分别检查系统是否上电;计算机是否和并口延长电缆线正确连接;10针排线方向是否正确;是否勾选合适的配置文件;配置方式是否正确;实验箱重新上电等。在下载配置过程中,禁止插拔下载线。

观察结果是否正确。实验箱的按键和LED的电路图如图1-39所示。需要强调的是:从电路原理图上我们可以看出,在按下按键时,相应的FPGA管脚为低电平,松开按键时为高电平;FPGA管脚为高电平时,相应的LED灭,而FPGA管脚为低电平时,相应的LED亮。在观察时注意这个现象。

图1-39 按键和LED连线原理图(不清楚)

提示:实验箱打开电源后,会核心板的EPSC串行配置器件会自动将其存储的配置数据对FPGA进行配置,这种自动配置在脱机情况下运行,一旦进行核心板重新上电或按下核心板上的“RE_CONFIG”

31

按键时,都将启动一次FPGA的自动配置。在脱机之前,要事先将配置数据通过编程器写入EPCS中。一旦用户配置后,FPGA里的原配置信息会自动清空而重新配置。可以拔下实验箱上相应的跳线而断开相应模块的输出,如:把JP7拔下,即使自动配置,也没有蜂鸣器的“自动演奏”声音了。 注意:如果在编译后,有重新锁定了管脚编号或改变了设计的功能,一定要重新编译,重新生成下载文件。 步骤8:元件封装

所谓封装,就是我们对已经完成的具有一定功能的元器件封装成一个元器件符号,我们可以在其更高一层的文件中调用。例如,我们已经做好了半加器,封装成元器件后,就像我们已经“生产”出了半加器,可以在设计中使用了。这个类似其它编程语言中的子程序或子函数一样,在其它程序中可以调用,而不需每次都要该子程序或函数重新写一遍。

并不是每次设计都需要进行元件封装这一步。

可以对原理图输入的电路进行元器件封装,也可以对硬件描述语言设计的文件进行元器件封装。二者的方法基本相同。对于对原理图输入的电路,方法如下:

在工程控制面板,打开文件选项卡,选择待封装的文件,执行菜单“File”→“Create/Update”→“Create Symbol Files for Current File”,在弹出的对话框选择默认设置,即保存为与该文件同名的bsf格式的文件。

说明:如果半加器原理图有错误,需要纠错才能封装成元器件。 步骤9:全加器的设计

为了对封装的元器件有深入的了解,我们这里使用半加器进行设计全加器。如何使用半加器组成全加器呢?

半加器就是两个数相加,全加器就是三个数相加,设全加器的结果为CoSo。加上3个输入信号为A、B、C,首先我们使用半加器算出 A+B,结果记为C1S1,再把计算S1+C结果记为C2S2,S2即为全加器结果的最低位So,而进位C1和C2只要有1个为1(最多只可能1个为1),则全加器的结果就有进位,就是“或”的关系,即Co = C1 or C2。

在该工程下新建一个原理图文件,在该文件原理图空白区域双击鼠标,弹出输入元件对话框,这时我们可以看出,在“元件库”栏多出了“Project”项,该项是用户的元件库,里面的“h_adder”元件就是我们上步封装生成的半加器元器件,在元件预览区,我们可以看到封装后的元件符号。如图1-40所示。

32

图1-40 封装生成的半加器元件图

按图1-41所示的电路图连接电路。然后保存文件,文件名默认为和工程名同名,我们根据功能保存为full_adder。

注意:绝对不要和以前设计的文件同名,否则会把原来的文件覆盖而造成错误。初学者经常出现这个错误。

h_adderBDINPUTVCCINPUTVCCABCOSOinstOR2OUTPUTCOh_adderACINPUTVCCinst5COSOOUTPUTBSOinst1 图1-41 全加器原理图

把该文件设为顶层文件,进行锁定管脚(见说明)、编译、仿真、下载配置。 说明:

33

如果不把全加器设为顶层文件,编译时还是原来指定的半加器文件。如果在管脚锁定时,发现“应该”出现的管脚为出现,就要看看设置的顶层文件是否为设计者的本意。

半加器封装后,其原理图文件中的锁定管脚信息将不影响全加器的管脚编号的设置,但在全加器锁定管脚时,可能会出现原来锁定管脚的编号,是因为半加器编译生成的管脚信息文件未更新而已。比较方便的方法是在图1-16所示的分配引脚对话框,在管脚顺序变化栏选中全部管脚,点击鼠标右键,在弹出的浮动菜单选择选择Delete,如图1-42所示。这里还可能还会存在未能删除的部分管脚,是因为全加器新的管脚。在“From”或“To”栏点击鼠标,在弹出的浮动菜单选择选择“Node Finder…”选择添加管脚,同时删除重复管脚。或在锁定管脚时直接执行菜单“Assignments”→“Pin Planner”,进行管脚锁定。

半加器元器件的输入输出管脚名分别为A、B、CO和SO,这和全加器的输入输出管脚尽管重名,但不冲突。类似局部变量和“全局”变量。

半加器元件符号的输入输出管脚的排列顺序可能不同,这和设计半加器原理图管脚的顺序有关,本质上没有区别,注意连线要正确,这里也体现了输入管脚命名的重要性,如果在设计半加器时,对输入输出管脚任意命名,在全加器原理图连线时可能会造成误解。

现在许多设计都是“由下向上”或“由上向下”设计的理念,QuartusII软件也是基于此理念的。我们这里体现的是“由下向上”设计。相对而言,半加器是低层,全加器为高一级层,当然全加器也可以当作八位加法器的低层设计。

在全加器原理图文件中,双击半加器符号,则会直接弹出半加器的设计文件即低层文件。 如果在以后的设计中,低层文件的输入输出管脚没变,只是更改了其中的功能设计内容,不需要重新编译低层文件,只需编译顶层文件即可,即顶层原理图文件中显示的只是一个符号图标而已。这和其他软件类似。例如:如果本设计的半加器原理图中,把其中的或门改为与门(这里功能就不对了,只是举例),在只需编译顶层全加器原理图文件即可。

如果顶层文件调用低层文件后而又改变低层文件的输入输出管脚信息,需要进行如下处理:在低层文件中重新封装生成元器件符号文件,覆盖原来的符号文件。在顶层原理图文件中,右键点击低层文件的原符号文件,在弹出的浮动菜单中选择“Update Symbol or Block…”,在弹出的更新符号对话框里选择“All symbols or blocks in the file”,如图 所示。更新后,可能需要重新对元件进行连线。

(a)

34

(b)

图 1-42 删除、添加管脚示意图

图1-43 更新低层元件符号对话框

四. 实验内容

1. 根据上面的设计向导,完成半加器的设计,并仿真、配置验证;

2. 在半加器的基础上,利用生成的半加器元件,组成一个1位全加器adder_1.gdf,并封装为

元件; 3. 在1位全加器的基础上,利用上步生成的全加器元件,设计一个8位全加器adder_8.gdf,

并仿真。

五. 实验报告

1. 锁定管脚的含义

2. 一位全加器的gdf文件

3. 8位全加器的gdf文件,仿真波形文件。

35

本文来源:https://www.bwwdw.com/article/iwa6.html

Top