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

下载本文档

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

文档简介

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 的

3、逻辑函数表达式为:soa b a b a b co ab(1)2)(2) 全加器设计原理 除本位两个数相加外,还要加上从低位来的进位数,称为全加器。图 2 全加器原理图。 全加器的真值表如下:表 2 全加器真值表cabcoso0000000101010010111010001101101101011111其中 a 为加数, b 为加数, c 为低位向本位的进位, co 为本位向高位的进位, so 为本 位和。图 2. 全加器原理图四实现方法一:原理图输入法设计(自己独立完成)1. 建立文件夹 建立自己的文件夹(目录) ,如 c:myeda ,进入 Windows 操作系统QuartusII 不

4、能识别中文,文件及文件夹名不能用中文。2. 原理图设计输入 打 开 Quartus II , 选 菜 单 File New , 选 择 “Device Design File -BlockDiagram- Schematic File 项。”点击 “ OK”在,主界面中将打开 “ Block Editor 窗口”。 (1) 放置元件 在原理图编辑窗中的任何一个空白处双击鼠标左键或单击右键 , 跳出一个选择窗,选择 此窗中的 Enter Symbol 项输入元件,出现元件选择窗口。元件选择窗口窗口中 Symbol Libraries: 的路径 c: Quartus2max2libprim下为基本

5、逻辑元件库, 双击之, 在 Symbol Files: 下出现 prim 中的所有元件, 选中你需要的元件 (如: 二与门,即 and2);或者在 Symbol Name:中直接输入元件名称( and2),单击 OK键。你需要 的元件( and2)会出现在原理图编辑窗中。为了设计半加器,分别调入元件and2、 not 、xnor 、 input 和 output 。如果安放相同元件,只要按住 CTRL键,同时用鼠标拖动该元件。(2) 添加连线把鼠标移到引脚附近 , 则鼠标光标自动由箭头变位十字 ,按住鼠标左键拖动 , 即可画出连 线。然后用鼠标分别在 input 和 output 的 PIN-

6、NAME上双击使其变黑色, 再用键盘分别输入 各引脚名: ain 、 bin 、 co 和 so。(3). 保存原理图单击 File Save as 按扭 , 出现对话框 , 选择自己的目录(如 c:myeda )、合适名称保图 3 一位半加器图(4)设置工程文件( Project )方法 1 选择 File Project Set Project to Current File,即将当前的设计文件设置成工程。方法 2 如果设计文件未打开,选 File Project Name,然后在跳出的 Project Name 窗中找到 c:myeda 目录,在其 File 小窗口中双击 gate.bd

7、f 文件。 选择此项后可以看到窗口左上角显示出所设文件路径的变化。3. 选择目标器件单击 Assign Device ,跳出 Device 窗口,此窗口的 Device Family 是器件序列栏,首 先在此栏中选定目标器件对应的序列名,如EPM7128S对应的是 MAX7000S系列; EPF10K10对应的是 FLEX10K 系列等。根据实际情况完成器件选择后(本实验为Cyclone| 系列的EP2C35F672C8),按 OK键。应将此栏下方标有 Show only Fastest Speed Grades的勾消去,以便显示出所有速度级别的器件。4. 编译( Compiler )单击 Q

8、uartusII Compiler ,跳出 Compiler 窗口,此编译器的功能包括网表文件的提 取、设计文件的排错、逻辑综合、逻辑分配、适配(结构综合) 、时序仿真文件提取和编程 下载文件装配等。单击 Start ,开始编译!如果发现有错,排除错误后再次编译。5. 包装元件入库。编译通过后,单击 File Create Default Symbol, 当前文件变成了一个包装好的自己的单一元件(半加器: gate ),并被放置在工程路径指定的目录中以备后用。6. 用两个半加器及一个或门连接而成一位全加器我们将上述 15 步的工作看成是完成了的一个底层元件, 并被包装入库。 利用已做好的 半加

9、器 gate ,完成原理图输入、连线、引脚命名、器件选择、保存、项目设置、编译等过 程,完成顶层项目全加器的设计。如图4 所示。图 4 全加器的设计图半加器元件 gate 的调用与库元件的调用方法一样。 以文件名 aaa.bdf 存在同一目录( c:myeda )中。 以下步骤同方法二:7. 仿真,测试项目的正确性8. 观察分析波形9. 时序分析 五 VHDL 文本输入法设计 1.试验程序(程序来源:自己独立编写)-全加器设计的文本输入法设计程序-设计人:邓小娇-2012 年 9 月 26 日-1 位二进制全加器顶层设计描述LIBRARY IEEE;USE IEEE.STD_LOGIC_116

10、4.ALL;ENTITY aaa ISPORT(ain,bin,cin:IN STD_LOGIC;- 输入信号 ain 为加数, bin 为加数, cin 为低位向本位 的进位cout,sum:OUT STD_LOGIC); - 输出信号: co 为本位向高位的进位, -so 为本位和 END ENTITY aaa;-半加器描述:真值表描述方法LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY gate ISPORT(a,b:IN STD_LOGIC;-a 为加数, b 也为加数co,so:OUT STD_LOGIC); - co 为本位向高位进位,

11、 so 为本位和 END ENTITY gate;ARCHITECTURE ART4 OF gate ISSIGNAL abc:STD_LOGIC_VECTOR(1 DOWNTO 0);- 定义标准逻辑位矢量数据类型 BEGINabcso= 0;coso= 1;coso= 1;coso= 0;co NULL;END CASE;END PROCESS;END ARCHITECTURE ART4;-或门逻辑描述LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY or2a ISPORT(a,b:IN STD_LOGIC;-a .b 都为或门的输入 c:OU

12、T STD_LOGIC);-c 为或门的输出END ENTITY or2a;ARCHITECTURE one OF or2a ISBEGINc 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 ARCHITECTURE fd1;2.程序说明对于对数综合器来说 , 程序所列的全部程序可以同时输入相应的EDA 软件进行编译,也能以单独的元件模块分别进行编辑、 文件存档、 编译和综合。 程序中共有 3 个独立的 VHD

13、L 设 计模块即 2 个元件模块和一个顶层设计模块 aaa存档的文件名最好与对应的 VHDL 程序的实 体一致如可分别将它们取名为 or2a.vhd gate.vhd 和 aaa.vhd 。 程序的解析如下:(1) 作为文件说明部分由双横线 “ - ” 引导了一段注释语句在 VHDL 程序的任何一行中 双横线“ - ”后的文字都不参加编译和综合(2) 实体or2a 语句段定义了或门 or2a 的引脚信号 a b ( 输入)和c ( 输出) 其结构体语 句段描述了输入与输出信号间的逻辑关系,即将输入信号 a b 相或后传给输出信号端 c。由 此实体和结构体描述了一个完整的或门元件, 这一描述可以

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

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

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

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

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

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

20、仿真结果与真值表相同表 3 真值表cinainbincoutsum0000000101010010111010001101101101011111因此,仿真正确。 八硬件测试 1.Assignments-.device-图 11 硬件选择引脚锁定,参照下载实验板 1K100 的引脚号说明书,选择适当的引脚,如下图:图 12 引脚设置2.引脚锁定后,保存,必须重新进行一次全程编译,编译通过后才能编程下载。3. 编程下载,用下载线将计算机并口和试验箱上的JTAG 口接起来,接通电源。选择 Tools Programmer 菜单,打开 programmer 窗口。在 mode 中选中 JTAG ,将

21、 Program/Configure 下的笑方框选中图 13 编程下载4 在开始编程之前,必须正确设置编程硬件。点击“ Hardware Setup按钮”,打开硬件设置口。图 14 设置编程硬件点 击 “ Add Hardware”打 开 硬 件 添 加 窗 口 , 在 “ Hardware type ”下 拉 框 中 选 择 “ ByteBlasterMV or ByteBlaster II ,” “ Port下”拉框中选择 “ LPT1 ”,点击 OK 按钮确认,关闭 Hardware Setup 窗口,完成硬件设置。5、点击 “ Start按钮”,开始编程下载图 15 编程下载九硬件测试结果硬件测试:根据真值表,本次实验中,将 ain, bin,cin 分别取的是开关 k

温馨提示

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

评论

0/150

提交评论