实验一一位二进制全加器设计实验_第1页
实验一一位二进制全加器设计实验_第2页
实验一一位二进制全加器设计实验_第3页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、南昌大学实验报告学生姓名: 学 号: 专业班级:中兴 101实验类型: 验证 口综合 设计 口创新 实验日期:2012 9 28实验成绩: 实验一 一位二进制全加器设计实验一.实验目的(1) 掌握Quartus II的VHDL文本设计和原理图输入方法设计全过程;(2) 熟悉简单组合电路的设计,掌握系统仿真,学会分析硬件测试结果;(3) 熟悉设备和软件,掌握实验操作。二.实验内容与要求(1) 在利用VHDL编辑程序实现半加器和或门,再利用原理图连接半加器和或门完成全 加器的设计,熟悉层次设计概念;(2) 给出此项设计的仿真波形;(3) 参照实验板1K100的引脚号,选定和锁定引脚,编程下载,进行

2、硬件测试。三设计思路一个1位全加器可以用两个 1位半加器及一个或门连接而成。而一个1位半加器可由基本门电路组成。(1) 半加器设计原理能对两个1位二进制数进行相加而求得和及进位的逻辑电路称为半加器。或:只考虑两个一位二进制数的相加,而不考虑来自低位进位数的运算电路,称为半加器。图1为半加器原理图。其中:a、b分别为被加数与加数,作为电路的输入端;so为两数相加产生的本位和,它和两数相加产生的向高位的进位co 一起作为电路的输出。半加器的真值表为表1半加器真值表absoco0000011010101101由真值表可分别写出和数so,进位数co的逻辑函数表达式为:soa ba ba bcoab图1

3、半加器原理图(1)(2)(2) 全加器设计原理除本位两个数相加外,还要加上从低位来的进位数,称为全加器。图2全加器原理图。全加器的真值表如下:表2全加器真值表cabcoso0000000101010010111010001101101101011111其中a为加数,b为加数,c为低位向本位的进位,co为本位向高位的进位,so为本位和。图2.全加器原理图四实现方法一:原理图输入法设计(自己独立完成)1. 建立文件夹建立自己的文件夹(目录),女口 c:myeda,进入 Windows操作系统 Quartusll不能识别中文,文件及文件夹名不能用中文。2. 原理图设计输入打开 Quartus II

4、,选菜单 File 宀New ,选择 “Device Design File ->Block Diagram- >Schematic File ”项。点击"OK ,在主界面中将打开“Block Editor ” 窗口。(1)放置元件在原理图编辑窗中的任何一个空白处双击鼠标左键或单击右键,跳出一个选择窗,选择此窗中的Enter Symbol项输入元件,出现元件选择窗口。元件选择窗口窗口中 Symbol Libraries:的路径c: Quartus2max2libprim 下为基本逻辑元件库,双击之,在Symbol Files:下出现prim中的所有元件,选中你需要的元件(

5、如: 二与门,即and2);或者在Symbol Name:中直接输入元件名称(and2),单击OK键。你需要 的元件(and2)会出现在原理图编辑窗中。为了设计半加器,分别调入元件an d2、not、xnor、in put和output 。如果安放相同元件,只要按住CTRL键,同时用鼠标拖动该元件。(2)添加连线把鼠标移到引脚附近,则鼠标光标自动由箭头变位十字 ,按住鼠标左键拖动,即可画出连 线。然后用鼠标分别在in put和output的PIN-NAME上双击使其变黑色, 再用键盘分别输入 各引脚名:ain、bin、co和so。(3).保存原理图单击File tSave as按扭,出现对话框

6、,选择自己的目录(如 c:myeda )、合适名称保 存刚才输入的原理图,原理图的扩展名为.bdf,本实验取名。如图3所示。图3 一位半加器图(4)设置工程文件(Project )方法1 选择File Project Set Project to Current File,即将当前的设计文件设置成工程。方法2如果设计文件未打开,选File Project Name然后在跳出的 Project Name窗中找到c:myeda目录,在其File小窗口中双击文件。选择此项后可以看到窗口左上角显示出所设文件路径的变化。3. 选择目标器件单击Assign宀Device,跳出Device窗口,此窗口的 D

7、evice Family是器件序列栏,首 先在此栏中选定目标器件对应的序列名,如EPM7128S对应的是MAX7000S系列;EPF10K10对应的是 FLEX10K系列等。根据实际情况完成器件选择后(本实验为Cyclo ne|系列的EP2C35F672C8,按 0K键。应将此栏下方标有 Show only Fastest Speed Grades 的勾消去,以便显示出所有 速度级别的器件。4. 编译(Compiler )单击QuartusII宀Compiler,跳出Compiler窗口,此编译器的功能包括网表文件的提 取、设计文件的排错、逻辑综合、逻辑分配、适配(结构综合)、时序仿真文件提取

8、和编程下载文件装配等。单击Start,开始编译!如果发现有错,排除错误后再次编译。5. 包装元件入库。编译通过后,单击 File tCreate Default Symbol,当前文件变成了一个包装好的自己 的单一元件(半加器:gate ),并被放置在工程路径指定的目录中以备后用。6. 用两个半加器及一个或门连接而成一位全加器我们将上述15步的工作看成是完成了的一个底层元件,并被包装入库。利用已做好的半加器gate,完成原理图输入、连线、弓I脚命名、器件选择、保存、项目设置、编译等过 程,完成顶层项目全加器的设计。如图4所示。图4全加器的设计图 半加器兀件gate的调用与库兀件的调用方法一样。

9、 以文件名存在同一目录(c:myeda )中。以下步骤同方法二:7. 仿真,测试项目的正确性8. 观察分析波形9. 时序分析五. VHDL文本输入法设计1. 试验程序(程序来源:自己独立编写)-全加器设计的文本输入法设计程序-设计人:邓小娇-2012年9月26日-1位二进制全加器顶层设计描述LIBRARY IEEE;USE aaa IScin 为低位向为本位和PORT(ain,bin,cin:IN STD_LOGIC;-输入信号 ain 为加数, bin 为加数,本位的进位cout,sum:OUT STD_LOGIC); - 输出信号: co 为本位向高位的进位, -so END ENTITY

10、 aaa;- 半加器描述:真值表描述方法 LIBRARY IEEE;USE gate IS为加数, b 也为加数为本位向高位进位, so 为本位和PORT(a,b:IN STD_LOGIC;-a co,so:OUT STD_LOGIC); - co END ENTITY gate;ARCHITECTURE ART4 OF gate ISSIGNAL abc:STD_LOGIC_VECTOR(1 DOWNTO 0);-定义标准逻辑位矢量数据类型BEGINabc<=a&b;-a 相并b,即a与b并置操作PROCESS(abc)BEGINCASE abc IS -类似于真值表的 CAS

11、E语句WHEN "00"=>so<= '0'co<= '0'WHEN "01"=>so<= '1'co<= '0'WHEN "10"=>so<= '1'co<= '0'WHEN "11"=>so<= '0'co<= '1'WHEN OTHERS=> NULL;END CASE;END PROCESS;END AR

12、CHITECTURE ART4;- 或门逻辑描述LIBRARY IEEE;USE or2a ISPORT(a,b:IN STD_LOGIC;-a .b都为或门的输入c:OUT STD_LOGIC);-c为或门的输出END ENTITY or2a;ARCHITECTURE one OF or2a ISBEGINc <= a OR b;END ARCHITECTURE one;ARCHITECTURE fd1 OF aaa ISCOMPONENT gate - 调用半加器声明语句PORT(a,b:IN STD_LOGIC;co,so:OUT STD_LOGIC);END COMPONENT;

13、COMPONENT or2aPORT(a,b:IN STD_LOGIC;c:OUT STD_LOGIC);END COMPONENT;SIGNAL d,e,f:STD_LOGIC;- 定义 3 个信号作为内部的连接线。BEGINu1: gate PORT MAP(a=>ain,b=>bin,co=>d,so=>e);-例化语句, =>表示信号连接u2: gate PORT MAP(a=>e,b=>cin,co=>f,so=>sum);u3: or2a PORT MAP(a=>d,b=>f,c=>cout);END ARCH

14、ITECTURE fd1;2. 程序说明对于对数综合器来说 , 程序所列的全部程序可以同时输入相应的 EDA 软件进行编译,也 能以单独的元件模块分别进行编辑、 文件存档、 编译和综合。 程序中共有 3 个独立的 VHDL 设 计模块即2个元件模块和一个顶层设计模块aaa存档的文件名最好与对应的 VHDL程序的实体一致如可分别将它们取名为 和。 程序的解析如下:(1) 作为文件说明部分由双横线 “- ” 引导了一段注释语句在 VHDL 程序的任何一行中 双横线“ - ”后的文字都不参加编译和综合(2) 实体or2a语句段定义了或门or2a的引脚信号a b (输入)和c (输出)其结构体语句段描

15、述了输入与输出信号间的逻辑关系,即将输入信号ab相或后传给输出信号端 c。由此实体和结构体描述了一个完整的或门元件, 这一描述可以进行独立编译、 独立综合与存档, 或被其它的电路系统所调用。(3) 实体gate和结构体ART4描述了一个如图1所示的半加器,由其结构体的描述可以 看到, 它是由一个与非门、一个非门、一个或门和一个与门连接而成的,其逻辑关系来自于 半加器真值表 (表1)。(4) 在全加器接口逻辑即顶层文件的 VHDL 描述中,根据图 1右侧的 1位二进全加器aaa的原理图,其实体定义了引脚的端口信号属性和数据类型。其中,ain和bin分别为两个输入的相加位,cin为低位进位输入,c

16、out为进位输出,sum为1位和输出。结构体fd1的功能是利用COMPONENT COMPONENTS化语句将上面由两个实体 or2a和gate描 述的独立器件,按照图 1全加器内部逻辑原理图中的接线方式连接起来。(5) 在结构体fd1中,COMPONENNDCOMPONEN语句结构对所要调用的或门和半加器两个元件作了声明(Component Declaration),并由SIGNAL语句定义了三个信号 d、e和f 作为中间信号转存点,以利于几个器件间的信号连接。接下去的PORT MAP( ) 语句称为元件例化语句 (Component Instantiation) 。所谓例化,在电路板上,相

17、当于往上装配元器件; 在逻辑原理图上, 相当于从元件库中取了一个元件符号放在电路原理图上,并对此符号的各引脚进行连线。例化也可理解为元件映射或元件连接,MAP是映射的意思。例如由 u2指示的语句表示将实体 h_adder 描述的元件的引脚信号 a、b、co 和 so 分别连向外部信号 e、cin 、 f 、和 sum 符号 =>表示信号连接。(6) 由图1可见,实体 f_adder 引导的逻辑描述也是由三个主要部分构成的,即库、实体和结构体。 从表面上看来, 库的部分仅包含了一个 IEEE 标准库和打开的 程序包但实际上 从结构体的描述中可以看出, 对外部的逻辑有调用的操作, 这类似于对

18、库或程序包中的内容 作了调用。因此,库结构部分还应将上面的或门和半加器的VHD描述包括进去,作为工作库中的两个待调用的元件。由此可见,库结构也是VHDL 程序的重要组成部分 。图5. VHDL设计基本结构一个相对完整的VHD程序具有如图9 所示的比较固定的结构。即首先是各类库及其程序包的使用声明,包括未以显式表达的工作库 WORK库的使用声明。然后是实体描述,在这个 实体中含有一个或一个以上的结构体, 而在每一个结构体中可以含有一个或多个进程, 当然 还可以是其它语句结构, 例如其它形式的并行语句结构, 最后是配置说明语句结构, 这个语 句结构在以上给出的示例中没有出现。 配置说明主要用于以层

19、次化的方式对特定的设计实体 进行元件例化,或是为实体选定某个特定的结构体。一个相对完整的VHDL 程序设计构建称为设计实体。六. VHDL文本输入法设计实验步骤1. 新建项目,选择项目文件夹,输入工程名称,添加文件(一般为空),选择芯片型号,选 择仿真工具(一般为默认),最后生成项目。如下图:图6. 选择编辑文件图 7 新建项目2. 新建VHDL文件,输入设计语言,保存时要注意与工程文件名相同。如下图:图8新建VHDL文件3. 保存好后,进行综合编译,如果有错误,折回修改。如下图:图 9 综合编译4.(1)新建一个 .vwf 文件,并将其设为仿真激励:菜单 Assignments->Se

20、ttings ,在左侧选择 Simulation Settings ,选择这里的 .vwf 文件( 2) 设置为功能仿真:菜单 Assignments->Settings ,在左侧选择 Simulation Settings , 设置为 Functional Simulation(3) 生成功能仿真网表:菜单Processing->Generate Functional Simulation Netlist(4) 开始仿真:菜单 Processing->Start Simulation如下图:图10输入设置七. 仿真波形分析.如下图:(5 )经过分析,可知仿真结果与真值表相同

21、表3真值表因此,仿真正确。八硬件测试.>device->图11硬件选择引脚锁定,参照下载实验板1K100的引脚号说明书,选择适当的引脚,如下图:图12引脚设置2. 引脚锁定后,保存,必须重新进行一次全程编译,编译通过后才能编程下载。3. 编程下载,用下载线将计算机并口和试验箱上的JTAG口接起来,接通电源。选择 Tools 'Programmer 菜单,打开 programmer 窗口。在mode中选中JTAG 将Program/Configure 下的笑方框选中图 13 编程下载4 在开始编程之前,必须正确设置编程硬件。点击“ HardwareSetup ”按钮,打开硬件设置口。图 14 设置编程硬件点 击 “ Add Hardware” 打 开 硬 件 添 加 窗 口 , 在 “ Hardware type ” 下 拉 框 中 选 择 “ByteBlasterMV or ByteBlaster II ”,“ Port ”下拉框中选择“ LPT1”,点击OK按钮确认,关闭 Hardware Setup 窗口,完成硬件设置。5、点击“ Start ”按钮,开始编程下载图 15 编程下载九

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论