实验01加法器wan.docx

上传人:b****4 文档编号:24323062 上传时间:2023-05-26 格式:DOCX 页数:42 大小:1.68MB
下载 相关 举报
实验01加法器wan.docx_第1页
第1页 / 共42页
实验01加法器wan.docx_第2页
第2页 / 共42页
实验01加法器wan.docx_第3页
第3页 / 共42页
实验01加法器wan.docx_第4页
第4页 / 共42页
实验01加法器wan.docx_第5页
第5页 / 共42页
点击查看更多>>
下载资源
资源描述

实验01加法器wan.docx

《实验01加法器wan.docx》由会员分享,可在线阅读,更多相关《实验01加法器wan.docx(42页珍藏版)》请在冰豆网上搜索。

实验01加法器wan.docx

实验01加法器wan

实验一加法器

一.实验目的

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

2.学会使用QuartusⅡ进行编译、仿真、锁定管脚、下载

3.掌握多位全加器的设计方法

二.预备知识

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

QuartusⅡ提供了功能强大,直观便捷和操作灵活的原理图输入设计功能,同时还配备了适用于各种需要的元件库,其中包含基本逻辑元件库(如与非门、反向器、D触发器等)、宏功能元件(包含了几乎所有74系列的器件),以及功能强大,性能良好的类似于IPCore的兆功能块LPM库。

但更为重要的是,QuartusⅡ还提供了原理图输入多层次设计功能,使得用户能设计更大规模的电路系统,以及使用方便精度良好的时序仿真器。

我们设计一个半加器,设输入信号为A,B,so为半加和,co为进位。

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

表1-1半加器真值表

输入

输出

A

B

So

Co

0

0

0

0

0

1

1

0

1

0

1

0

1

1

0

1

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

(1-1)

根据上式我们得出,so为两个输入信号的异或(xor门),co为两个信号的与(and门)。

三.实验步骤

步骤1:

为本项设计建立文件夹

任何一项设计都是一项工程(Project),QuartusII以工程方式对设计过程进行管理,工程中存放创建FPGA配置文件需要的所有设置和设计文件。

设计前一般首先为此工程建立一个放置与此工程相关的所有文件的文件夹,此文件夹将被EDA软件默认为工作库(WorkLibrary)。

一般不同的设计项目最好放在不同的文件夹中,便于以后的管理,即使有些硬件描述语言程序原来已经完成,建议最好把相关文件拷贝到新工程文件夹下,否则以后工程拷贝时可能不完全,造成不必要的麻烦。

为了区分方便起见,每位实验者在硬盘建立一个以自己学号命名的一级文件夹,一级文件夹下建立二级文件夹,二级文件夹的名字为exp_1,第二个实验的二级文件夹为exp_2,……。

注意:

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

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

步骤2:

建立设计工程

1、点击桌面的QuartusII的快捷方式图标

,或在Windows桌面选择“开始”→“程序”→“Altera”→QuartusII8.0→QuartusII8.0(32-Bit),打开QuartusⅡ8.0软件。

如果第一次使用QuartusII软件,需要安装License

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

图1-1新建工程菜单

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

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

3、点击“Next>”按钮。

弹出如图1-3所示的新建工程向导步骤一对话框。

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

其中第一项为新建工程的目录,点击右面的“…”按钮,弹出图1-4的选择文件夹对话框,选择选择合适的硬盘分区和已有的文件夹;或点击右上方的“创建文件夹”按钮可以新建文件夹。

选择好合适的文件夹后,点击右下方的“打开(O)”按钮即完成存放工程的文件夹的设置。

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

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

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

注意:

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

点击“UseExistingProjectSetting…”按钮可以复制已存在的工程到新建工程中。

(此略)

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

该步骤可以进行“在该工程中添加已存在的文件”,因我们的文件夹是空的,没有有效的文件,故跳过该步。

图1-5添加文件对话框

5、点击“Next>”,弹出如图1-6所示的选择器件对话框。

其中“Family”选项卡用来选择工程设计中所使用的器件的系列。

Altera公司的FPGA器件根据生产工艺和功能分为许多种系列,每种系列又包含若干器件。

我们根据实验箱器件配备的器件,选择Cyclone系列。

为了快速选择使用的器件,可以在“Showin‘Availabledevice’list”分别对“Package”(封装)、“Pincount”(管脚数)、“Speedgrade”(器件速度等级)进行设置对“Availabledevice:

”(符合条件的器件)进行筛选,以快速的对所使用的器件。

我们使用的器件是Cyclone系列的EP1C6Q240C8或EP1C12Q240C8器件。

其中器件名称中部分字母的含义:

Q,代表封装为PQFP,即塑料四方扁平封装,芯片的四周均有引脚。

240:

指器件的管脚数,因为是四边管脚数相同,故每边80个管脚。

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.NewQuartusIIProject:

新建工程,等同于执行菜单File(文件)NewProjectWizard…;

2.AHDLFile:

Altera公司开发的一种硬件描述语言文件;

3.BlockDiagram/SchematicFile:

原理图文件;

4.VerilogHDLFile:

Verilog语言文件;

5.VHDLFile:

VHDL语言文件;

6.MemoryInitializationFile:

ROM的数据文件;

7.VectorWaveformFile:

波形仿真文件

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

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

2、我们采用原理图完成半加器,故此处选择“BlockDiagram/SchematicFile”,点击“OK”,完成选择。

弹出如图1-10的软件平台界面:

原理图

编辑窗口

图1-10QuartusII软件界面

左侧的ProjectNavigator区域为“工程控制面板”,分3个选项卡,其中:

“Hierarchy”显示的是工程的层级;“Files”显示工程所包含的文件;“DesignUnits”显示设计的单元。

对我们来说,“Files”是经常用到的,可以方便地对工程文件进行处理和设置。

原理图输入区域左侧是模块编辑工具栏,其功能如图1-11所示。

需要特别说明的是:

器件连线是对1位的数据线连线操作,而画总线是对多位的数据总线连线操作。

橡皮筋按钮的功能是当连接功能打开时,移动元件,则连接在元件上的连线跟着移动,不改变原有的连线;否则,移动元件,连线不跟着相应的移动,从而原有的连线会断开。

选择缩放工具按钮时,对原理图文件的试图比例进行改变,鼠标左键为放大,右键为缩小。

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

3、在原理图编辑窗中的任何一个位置上双击鼠标左键,或执行菜单Edit→InsertSymbol...;或点击图1-11所示的插入符号(元件)按钮,将弹出如图1-12所示的输入元件选择窗。

在左侧的Libraries选择区域可以展开元件库。

“megafuctions”为兆功能元件库;“others”主要包括maxplus2中的元件库;“primitives”为基本元件库,主要包括缓存、基本逻辑门、输入输出管脚符号、触发器等。

或直接在“Name:

”区域直接输入元件名称以快速的找到所需的元件。

点击“MegaWizardPlug-InManager…”按钮,可以进入添加参数可设置的兆功能模块向导。

根据公式1-1可知,我们需要两个基本的逻辑门器件----两个信号的与门和异或门(XOR)。

我们可以展开“primitives”基本元件库的的logic基本逻辑门器件列表,分别找到and2选择“OK”,并在原理图输入区放置到合适的位置。

同样添加xor元件。

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

说明:

1.寻找、选择器件时可以直接在“Name:

”下直接输入元件或符号名

2.如果是同一原理图存在较多的相同元件,在添加第一个元件后,在原理图上可以点选改器件,使用快捷键“CTRL+c”进行复制,然后鼠标点击其它空白区域,使用快捷键“CTRL+v”进行粘贴。

3.为了连线方便,有连线的器件尽量距离靠近一些;为了原理图美观,尽量器件对齐。

要养成好的习惯,以达到较好的视觉效果。

所选择元件预览区

图1-11选择元件界面

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

图1-12半加器原理图

说明:

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

*]错误,便于区别和寻找。

2.“INPUT”为输入管脚符号,双击该符号,则弹出如图1-13所示的输入管脚属性设置对话框,为了方便的区分管脚名称,在“Pinname(s):

”栏可以对管脚进行重命名。

在“Defaultvalue:

”栏可以对输入管脚的默认电平进行设置。

在“Format”选项卡可以对内部线的颜色和字体进行设置。

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

3、对“Pinname”和“Defaultvalue”的设置也可以这样设置:

在管脚名称或默认电平区域点击鼠标,然后再点击鼠标(中间有一定的时间间隔不要双击而进入图1-13的界面),会选中该名称,然后进行相应的输入或设置。

如果修改完成后,键入“Enter”键确定,且该管脚不是同类管脚的最后一个添加的管脚,则自动跳到其下一个添加的同类管脚的相应位置进行修改。

4、关于连线:

如果需要连接两个元件端口,则将鼠标移动到其中的一个端口上,这时鼠标指示符会自动变为“+”形,然后按住鼠标左键并拖动鼠标至第二个端口(或其它地方),松开鼠标后则可画出一条连线。

如果两个元件端口并未在同一水平线或垂直线上,先拖动鼠标到合适位置,松开后在此处继续拖动鼠标左键,即可改变为折线。

也可以这样方便的连线:

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

如果需要删除某段连线,左键点选该线为蓝色(颜色和软件的设置有关),按“Delete”删除。

如果要对某段线相通的全部连线进行操作,在线上双击鼠标即可选择其全部连线,然后点击鼠标右键进行删除、旋转操作和线类型设置等。

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

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

元件之间的连线尽量不要和元件符号的边缘虚线重合,也尽量不要从元件符号区域穿过。

不仅原理图不美观,且无法发现连线的错误。

4、执行菜单File→Save,或点击快捷按钮中的保存按钮,文件取名为:

h_adder.bdf(注意后缀是.bdf)。

在保存文件时,文件名可以用设计者认为合适的任何英文名,但是不要和所使用的元件名重名,名称也最好和其功能相联系。

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

重点注意:

保存文件时一定要注意对文件的命名,绝对不能相互之间重名;对软件默认(建议)保存的名称一定要仔细看清楚,是否已使用。

否则一定会出错误,对初学者来说,这个错误是经常遇到的。

步骤4:

设置顶层文件

如果设计项目由多个设计文件组成,则应该将它们的主文件,设置成顶层文件。

文件保存后,工程控制面板的信息如图1-14所示,在文件选项卡,选择待设置为顶层文件的文件,点击鼠标右键,弹出如图1-15所示的文件操作界面。

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

图1-14工程控制面板

图1-15文件操作界面

在该界面中:

“RemoveFilrfromProject”是把从工程中移除该文件(不不是删除文件);“SetasTop-LevelEntity”是把该文件设置为本工程的顶层文件(类似主程序),在编译时,就编译该文件以及与其相关的文件。

我们执行“SetasTop-LevelEntity”操作,把“h_adder.bdf”设置为顶层文件。

这时图1-14所示的层级选项卡的顶层文件会相应的改变。

步骤5:

编译

QuartusII编译器是由一系列处理模块构成的,这些模块负责对设计项目的检错、逻辑综合、结构综合、输出结果的编辑配置,以及时序分析。

在这一过程中,将设计项目适配到FPGA/CPLD目标器件中,同时产生多种用途的输出文件,如功能和时序信息文件、器件编程的目标文件等。

编译器首先检查出工程文件中可能的错误信息,供设计者排除,然后产生一个结构化的以网表文件表达的电路原理图文件。

在编译前,设计者可以通过各种不同的设置,指导编译器使用各种不同的综合和适配技术,以提高设计项目的工程速度,优化器件资源的利用率。

而且在编译过程中及编译完成后,可以从编译报告窗口中获得所有相关的详细编译结果,以便于设计者及时调整设计方案。

本实验采用默认的编译设置,不进行任何修改,若要进行编译选项设置,请参考Altera公司的QuartusII使用手册。

可执行菜单“Assignments”→“Settings...”进行设置。

在将相应的文件设置为顶层实体后。

执行菜单“Processing”→“StartCompilation”或点击其工具栏上的快捷按钮

进行全程编译。

特别注意:

这时如果文件需要保存,软件会提醒使用者保存,但是,一定要注意保存的是哪个文件以及系统默认的命名是否合适,一旦出现重名文件,会造成错误,修改起来很麻烦,。

若在编译过程中发现错误,一般情况下,会告诉用户错误的位置和情况,在“Message”栏,选择“Error”选项卡,有些Error包含若干小错误,可以层级展开。

遇到错误后,要仔细看看错误的说明,以积累经验。

找出并更正错误直至编译成功为止。

一般情况下,在错误信息处双击鼠标,一般会跳到软件“识别”的错误处,在该提示附近排错。

原理图或硬件描述语言中的一个错误,在编译时可能或出现若干条错误信息报告,故要从第一条错误处查找错误原因,纠正后,然后再启动全程编译,直至成功。

如果软件报错,软件本身又无法找到错误位置,这种情况下注意以下几点:

1.工程的存盘文件夹是否合适(不要带全角字符、也不能直接存放在根目录下);

2.工程中是否存在重名文件;

在编译时,可能产生很多警告信息,这些警告不会影响设计结果,对于初学者可以不去理会;但是有些警告是设计本身存在不合适的地方造成的。

如果编译成功,看以看到一些编译信息:

在工程控制面板的层级选项卡可以看到层级结构和结构模块所耗用的逻辑宏单元数(LCS)以及管脚数等其它信息。

如图1-16所示。

图1-16编译后的工程控制面板之层级选项卡

在编译时,状态窗口显示整个编译过程及每个编译阶段所用的时间。

如图1-17所示。

编译结果显示在“CompilationReport”窗口中。

编译时间的长短取决于计算机的性能、编译选项的设置以及工程文件的复杂程度等。

图1-17工程编译耗时状态窗口

其中:

“Analysis&synthesis”为分析综合过程。

将输入的原理图文件或HDL文本文件转化成网表文件并检查其中可能的错误。

该模块还负责连接顶层设计中的多层次设计文件;此外还包含一个内置的,用于接受外部标准网表文件的阅读器。

逻辑综合器,对设计项目进行逻辑化简、逻辑优化和检查逻辑错误。

综合后输出的网表文件表达了设计项目中底层逻辑元件最基本的连接方式和逻辑关系。

逻辑综合器的工作方式和优化方案可以通过一些选项来实现。

“Filtter”为适配器,适配器也称结构综合器或布线布局器。

它将逻辑综合所得的网表文件,即底层逻辑元件的基本连接关系,在选定的目标器件中具体实现。

对于布线布局的策略和优化方式也可以通过设置一些选项来改变和实现。

“Assembler”为装配器,该功能块将适配器输出的文件,根据不同的目标器件,不同的配置ROM产生多种格式的编程/配置文件,如用于CPLD或配置ROM用的POF编程文件(编程目标文件);用于对FPGA直接配置的SOF文件(SRAM目标文件);可用于单片机对FPGA配置的Hex文件,以及其它TTFs、Jam、JBC和JEDEC文件等。

“ClassicTimingAnalyzer”为时序仿真网表文件提取器,该功能块从适配器输出的文件中提取时序仿真网表文件,留待对设计项目进行仿真测试用。

对于大的设计项目一般先进行功能仿真,方法是在Compiler窗口下选择Processing项中的FunctionalSNFExtractor功能仿真网表文件提取器选项。

说明:

以上是全程编译的内容,如果需要单独进行某一步骤,可以执行菜单“Processing”→“Start”下的相应操作。

如图1-18所示的是编译报告窗口。

左栏是编译报告项目选择菜单,单击其中各项可以在右栏详细了解编译与分析结果。

图1-18编译报告窗口

例如:

单击“FlowSummary”项,将在右栏显示工程信息、所使用的器件和硬件资源耗用的统计报告。

我们可以了解到EP1C12Q240器件的总逻辑单元为12060个,本工程使用了2个,占用率<1%。

如果单击“TimingAnalyzer”项的“+”号,展开其子项目,则能通过单击各个子项目看到当前工程所有相关时序特性报告。

步骤6:

时序仿真

对工程编译通过后,必须对其功能和时序性质进行仿真测试,以了解设计结果是否满足原设计要求。

简单的说仿真就是人为模拟输入信号,观察输出信号的变化,判断是否合乎预计的设计要求。

具体步骤如下:

(1)、建立波形测试文件。

执行菜单“File”→“New”,再选择图1-9所示的VectorWaveformFile即波形仿真文件。

弹出如图1-19所示的波形编辑器。

图1-19波形编译器

(2)添加信号节点

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

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

在该对话框,可以直接在“Name”区域输入已知的节点名称。

但是为了方便快速的输入信号节点,可以点击“NodeFinder…”按钮,弹出如图1-21所示的查找节点对话框。

在“Filter”选项中选择“Pins:

all”即不进行筛选而显示全部节点;点击“List”按钮,进行“Startnodesearch”后,在“NodesFound”会列出已寻找到的节点。

选择合适的节点,通过“>”、“>>”、“<”、“<<”四个按钮对节点进行添加或移除。

图1-21波形编辑窗口

注意:

点击“List”按钮时,若“NodesFound”栏显示的节点不对,可能是未进行全程编译、顶层文件设置不正确。

(3)设置仿真时间。

对于时序仿真来说,将仿真时间轴设置在一个合理的时间区域是十分重要的。

通常设置的时间范围在数十微妙间。

对于不同的设计和不同的情况下,仿真时间不同。

执行菜单“Edit”→“EndTime…”会弹出设置仿真时间对话框,根据情况设置仿真时间。

我们这里按默认值1us设置。

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

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

图1-22为部分输入寄来波形界面,节点符号中带“I”的为输入节点,带“O”的为输出节点。

“MasterTimeBar:

”中的时间代表时间参考线的位置;“Pointer:

”为鼠标所放位置的时间值;而“Interval:

”为二者的时间间隔。

在“节点数据类型”栏双击鼠标,弹出如图1-23所示的节点属性对话框。

这里主要使用的是对数据的“Radix”即数据的显示类型进行设定,便于在方便的观察激励波形的数据。

其中Fractional为小数,Hexadecimal为十六进制,Octal为八进制,SignedDecimal有符号的十进制,UnsignedDecimal为无符号十进制。

勾选“Displaygraycodecountasbinarycount”就是以格雷码的方式显示数据(这里不做选择)。

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

图1-24为波形编辑器工具介绍。

其中:

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

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

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

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

点击“计数器”按钮,弹出如图1-25所示的计数器设置对话框。

计数器设置就是等差数列设置,即设置起始值(Startvalue:

)、步长“Incrementby:

”、时间步长(Timing选项卡)。

(该计数器功能不体现进位溢,假如信号为8位的总线数据,初始值设为250,步长为10,其第二个数为4=260-256)。

需要说明的是:

时间设置选项卡中,开始和结束是对激励信号的仿真时间区间进行计数器设置;“Countevery:

”是设置时间间隔,而“Multipliedby:

”是时间倍数,二者的乘积即为实际的时间步长。

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

点击“时钟”设置按钮,弹出如图1-26所示的对话框

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1