文档库 最新最全的文档下载
当前位置:文档库 › 实验一-一位二进制全加器设计实验

实验一-一位二进制全加器设计实验

实验一-一位二进制全加器设计实验
实验一-一位二进制全加器设计实验

实验一-一位二进制全加器设计实验

南昌大学实验报告

学生姓名:学号:专业班级:中兴101

实验类型:■验证□综合□设计□创新实验日期:2012 9 28 实验成绩:

实验一一位二进制全加器设计实验

一.实验目的

(1)掌握Quartus II的VHDL文本设计和原理图输入方法设计全过程;

(2)熟悉简单组合电路的设计,掌握系统仿真,学会分析硬件测试结果;

(3)熟悉设备和软件,掌握实验操作。

二.实验内容与要求

(1)在利用VHDL编辑程序实现半加器和或门,再利用原理图连接半加器和或门完成全加器的设计,熟悉层次设计概念;

(2)给出此项设计的仿真波形;

(3)参照实验板1K100的引脚号,选定和锁定引脚,编程下载,进行硬件测试。

三.设计思路

一个1位全加器可以用两个1位半加器及一个或门连接而成。而一个1位半加器可由基本门电路组成。

(1) 半加器设计原理

能对两个1位二进制数进行相加而求得和及进位的逻辑电路称为半加器。或:只考虑两个一位二进制数的相加,而不考虑来自低位进位数的运算电路,称为半加器。图1为半加器原理图。其中:a、b分别为被加数与加数,作为电路的输入端;so为两数相加产生的本位和,它和两数相加产生的向高位的进位co一起作为电路的输出。

半加器的真值表为

表1 半加器真值表

a b so co

0 0 0 0

0 1 1 0

1 0 1 0

1 1 0 1

由真值表可分别写出和数so,进位数co的逻辑函数表达式为:

b a b

a b a so ⊕=+=-- (1)

ab co

=

(2)

图1半加器原理图

(2) 全加器设计原理

除本位两个数相加外,还要加上从低位来的

进位数,称为全加器。图2全加器原理图。全加器的真值表如下:

表2全加器真值表 c a b co so

0 0 0 0 0

0 1 0 1 0

1 0 0 1 0

1 1 1 0 1

0 0 0 1 1

0 1 1 0 1 1 0 1 0

1 1 1 1 1

其中a为加数,b为加数,c为低位向本位的进位,co为本位向高位的进位,so为本位和。

图2.全加器原理图

四.实现方法一:原理图输入法设计(自己独立完成)

1. 建立文件夹

建立自己的文件夹(目录),如c:\myeda,进入Windows操作系统

QuartusII不能识别中文,文件及文件夹名不能用中文。

2. 原理图设计输入

打开Quartus II,选菜单File→New,选择“Device Design File->Block Diagram->Schematic File”项。点击“OK”,在主界面中将打开“Block Editor”窗口。

(1) 放置元件

在原理图编辑窗中的任何一个空白处双击鼠标左键或单击右键,跳出一个选择窗,选择此

窗中的Enter Symbol项输入元件,出现元件选择窗口。

元件选择窗口窗口中Symbol Libraries:的路径c:\ Quartus2\max2lib\prim下为基本逻辑元件库,双击之,在Symbol Files:下出现prim 中的所有元件,选中你需要的元件(如:二与门,即and2);或者在Symbol Name:中直接输入元件名称(and2),单击OK键。你需要的元件(and2)会出现在原理图编辑窗中。

为了设计半加器,分别调入元件and2、not、xnor、input和output。

如果安放相同元件,只要按住CTRL键,同时用鼠标拖动该元件。

(2) 添加连线

把鼠标移到引脚附近,则鼠标光标自动由箭头变位十字,按住鼠标左键拖动,即可画出连线。然后用鼠标分别在input和output的PIN-NAME 上双击使其变黑色,再用键盘分别输入各引脚名:ain、bin、co和so。

(3). 保存原理图

单击File→Save as…按扭,出现对话框,选择自己的目录(如c:\myeda)、合适名称保存刚

才输入的原理图,原理图的扩展名为.bdf,本实验取名gate.bdf。如图3所示。

图3 一位半加器图

(4) 设置工程文件(Project)

方法1 选择File→Project→Set Project to Current File,即将当前的设计文件设置成工程。

方法2 如果设计文件未打开,选

File→Project→Name,然后在跳

出的Project Name窗中找到

c:\myeda目录,在其File小窗口

中双击gate.bdf文件。

选择此项后可以看到窗口左上角显示出所设文件路径的变化。

3. 选择目标器件

单击Assign→Device,跳出Device窗口,

此窗口的Device Family是器件序列栏,首先在此栏中选定目标器件对应的序列名,如EPM7128S 对应的是MAX7000S系列;EPF10K10对应的是FLEX10K系列等。根据实际情况完成器件选择后(本实验为Cyclone||系列的EP2C35F672C8),按OK键。

应将此栏下方标有Show only Fastest Speed Grades的勾消去,以便显示出所有

速度级别的器件。

4. 编译(Compiler)

单击QuartusII→Compiler,跳出Compiler 窗口,此编译器的功能包括网表文件的提取、设计文件的排错、逻辑综合、逻辑分配、适配(结构综合)、时序仿真文件提取和编程下载文件装配等。单击Start,开始编译!如果发现有错,排除错误后再次编译。

5. 包装元件入库。

编译通过后,单击File→Create Default Symbol,当前文件变成了一个包装好的自己的单一元件(半加器:gate),并被放置在工程路径指定的目录中以备后用。

6. 用两个半加器及一个或门连接而成一位全加

我们将上述1~5步的工作看成是完成了的一个底层元件,并被包装入库。利用已做好的半加器gate,完成原理图输入、连线、引脚命名、器件选择、保存、项目设置、编译等过程,完成顶层项目全加器的设计。如图4所示。

图4全加器的设计图

●半加器元件gate的调用与库元件的调用方

法一样。

●以文件名aaa.bdf存在同一目录

(c:\myeda)中。

以下步骤同方法二:

7. 仿真,测试项目的正确性

8. 观察分析波形

9. 时序分析

五.VHDL文本输入法设计

1.试验程序(程序来源:自己独立编写)

--全加器设计的文本输入法设计程序

--设计人:邓小娇

--2012年9月26日

--1位二进制全加器顶层设计描述

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

ENTITY aaa IS

PORT(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 IS

PORT(a,b:IN STD_LOGIC;--a为加数,b 也为加数

co,so:OUT STD_LOGIC); -- co为本位向高位进位,so为本位和

END ENTITY gate;

ARCHITECTURE ART4 OF gate IS

SIGNAL abc:STD_LOGIC_VECTOR(1 DOWNTO 0);--定义标准逻辑位矢量数据类型BEGIN

abc<=a&b;--a相并b,即a与b并置操作PROCESS(abc)

BEGIN

CASE abc IS --类似于真值表的CASE 语句

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 ARCHITECTURE ART4;

--或门逻辑描述

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

ENTITY or2a IS

PORT(a,b:IN STD_LOGIC;--a .b 都为或门的输入

c:OUT STD_LOGIC);--c为或门的输出END ENTITY or2a;

ARCHITECTURE one OF or2a IS

BEGIN

c <= a OR b;

END ARCHITECTURE one; ARCHITECTURE fd1 OF aaa IS COMPONENT gate --调用半加器声明语句

PORT(a,b:IN STD_LOGIC;

co,so:OUT STD_LOGIC);

END COMPONENT;

COMPONENT or2a

PORT(a,b:IN STD_LOGIC;

c:OUT STD_LOGIC);

END COMPONENT;

SIGNAL d,e,f:STD_LOGIC;--定义3个信号作为

内部的连接线。

BEGIN

u1: 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 ARCHITECTURE fd1;

2.程序说明

对于对数综合器来说,程序所列的全部程序可以同时输入相应的EDA 软件进行编译,也能以单独的元件模块分别进行编辑、文件存档、编译和综合。程序中共有3 个独立的VHDL 设计模块即2 个元件模块和一个顶层设计模块aaa存档的文件名最好与对应的VHDL 程序的实体一致如可分别将它们取名为or2a.vhd gate.vhd和

aaa.vhd。程序的解析如下:

(1) 作为文件说明部分由双横线“--”引导了一段注释语句在VHDL 程序的任何一行中双横线“--”后的文字都不参加编译和综合

(2) 实体or2a 语句段定义了或门or2a 的引脚信号a b (输入)和c (输出) 其结构体语句段描述了输入与输出信号间的逻辑关系,即将输入信号a b 相或后传给输出信号端c。由此实体和结构体描述了一个完整的或门元件,这一描述可以进行独立编译、独立综合与存档,或被其它的电路系统所调用。

(3) 实体gate 和结构体ART4 描述了一个如图1 所示的半加器,由其结构体的描述可以看到,它是由一个与非门、一个非门、一个或门和一个与门连接而成的,其逻辑关系来自于半加器真值表(表1)。

(4) 在全加器接口逻辑即顶层文件的VHDL 描述中,根据图1右侧的1位二进

全加器aaa 的原理图,其实体定义了引脚的端口信号属性和数据类型。其中,ain 和bin 分别为两个输入的相加位,cin 为低位进位输入,cout 为进位输出,sum为1位和输出。结构体fd1的功能是利用COMPONENT 和COMPONENT 例化语句将上面由两个实体or2a 和gate 描述的独立器件,按照图1全加器内部逻辑原理图中的接线方式连接起来。

(5) 在结构体fd1中,COMPONENT END COMPONENT 语句结构对所要调用的或门和半加器两个元件作了声明(Component Declaration),并由SIGNAL 语句定义了三个信号d、e和f作为中间信号转存点,以利于几个器件间的信号连接。接下去的PORT MAP( ) 语句称为元件例化语句(Component Instantiation)。所谓例化,在电路板上,相当于往上装配元器件;在逻辑原理图上,相当于从元件库中取了一个元件符号放在电路原理图上,并对此符号的各引脚进行连线。例化也可理解为元件映射或元件连接,MAP 是映射的意思。例如由u2指示的语句表示将实体h_adder 描述的元件的引脚信号a、b、co和so分别连向外部信号

e、cin、

f、和sum符号=>表示信号连接。

(6) 由图1可见,实体f_adder 引导的逻辑描述也是由三个主要部分构成的,即库、实体和结构体。从表面上看来,库的部分仅包含了一个IEEE 标准库和打开的

IEEE.STD_LOGIC_1164.ALL 程序包但实际上从

结构体的描述中可以看出,对外部的逻辑有调用的操作,这类似于对库或程序包中的内容作了调

用。因此,库结构部分还应将上面的或门和半加器的VHDL描述包括进去,作为工作库中的两个待调用的元件。由此可见,库结构也是VHDL 程序的重要组成部分。

图5. VHDL设计基本结构

一个相对完整的VHDL程序具有如图9所示的比较固定的结构。即首先是各类库及其程序包的使用声明,包括未以显式表达的工作库WORK 库的使用声明。然后是实体描述,在这个实体中含有一个或一个以上的结构体,而在每一个结构体中可以含有一个或多个进程,当然还可以是其它语句结构,例如其它形式的并行语句结构,最后是配置说明语句结构,这个语句结构在以上给出的示例中没有出现。配置说明主要用于以层次化的方式对特定的设计实体进行元件例化,或是为实体选定某个特定的结构体。一个相对完整的

VHDL 程序设计构建称为设计实体。

六.VHDL文本输入法设计实验步骤

1.新建项目,选择项目文件夹,输入工程名称,添加文件(一般为空),选择芯片型号,选择仿真工具(一般为默认),最后生成项目。如下图:

图6.选择编辑文件

图7新建项目

2.新建VHDL文件,输入设计语言,保存时要注意与工程文件名相同。如下图:

图8新建VHDL文件

3.保存好后,进行综合编译,如果有错误,折回修改。如下图:

图9综合编译

4、

(1)新建一个.vwf文件,并将其设为仿真激励:菜单Assignments->Settings,在左侧选择Simulation Settings,选择这里的.vwf文件

(2)设置为功能仿真:菜单Assignments->Settings,在左侧选择Simulation Settings,设置为Functional Simulation

(3)生成功能仿真网表:菜单Processing->Generate Functional Simulation Netlist

(4)开始仿真:菜单Processing->Start Simulation 如下图:

图10 输入设置

七.仿真波形分析

.如下图:

cin 1

ain 0

bin 0 其他

(5)经过分析,可知仿真结果与真值表相同

表3 真值表

cin ain bin cout su

m

0 0 0 0 0

0 0 1 0 1

0 1 0 0 1

0 1 1 1 0

实验四 四位二进制全加器

实验序号实验题目四位二进制全加器实验时间实验室 1.实验元件(元件型号;引脚结构;逻辑功能;引脚名称) 1.SAC-DS4数字逻辑电路实验箱 1个 2.万用表 1块 3.74LS283 四位二进制全加器1片 74LS283 四位二进制全加器引脚结构及逻辑功能 2.实验目的 1、掌握中规模集成电路四位全加器的工作原理及其逻辑功能。 2、学习全加器的应用。 3.实验电路原理图及接线方法描述: (1)74LS283四位全加器实验电路图

(2)用74LS283四位全加器实现BCD码到余3码的转换实验电路图

4.实验中各种信号的选取及控制(电源为哪些电路供电;输入信号的分布位置;输出信号的指示类型;总结完成实验条件) (1)用开关按表下图设置输入A1-A4、B1-B4、C0的状态,借助指示灯观测输出F1-F4、C4的状态。 (2)将每个BCD码加上0011,即可得到相应的余3码。故应按下图接线。 5.逻辑验证与真值表填写 (1)74LS283四位全加器真值表 输入输出 A4 A3 A2 A1B4 B3 B2 B1C0F4 F3 F2 F1C4 0 0 0 1 0 0 0 1 1 0 0 1 1 0 0 1 0 0 0 0 1 1 0 0 1 1 1 0 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 1 1 1 0 1 1 0 1 0 1 1 0 0 0 1 1 1 1 0 0 0 1 1 0 0 0 0 1 0 1 1 1 0 1 0 1 0 0 1 0 0 1 0 1 1 1 1 1 1 1 1 1 0 1 1 1 0 1 (2)用74LS283四位全加器实现BCD码到余3码的转换真值表 输入BCD码输出余3码 B4 B3 B2 B1 F4 F3 F2 F1 0 0 0 0 0 0 1 1 0 0 0 1 0 1 0 0 0 0 1 0 0 1 0 1

实验一1位全加器电路设计

实验一1位全加器电路的设计 一、实验目的 1、学会利用Quartus Ⅱ软件的原理图输入方法设计简单的逻辑电路; 2、熟悉利用Quartus Ⅱ软件对设计电路进行仿真的方法; 3、理解层次化的设计方法。 二、实验内容 1、用原理图输入方法设计完成一个半加器电路。并进行编译与仿真。 2、设计一个由半加器构成1位全加器的原理图电路,并进行编译与仿真。 3、设计一个由1位全加器构成4位加法器的原理图电路,并进行编译与仿真。 三、实验步骤 1. 使用Quartus建立工程项目 从【开始】>>【程序】>>【ALtera】>>【】打开Quartus软件,界面如图1-1示。 图1-1 Quartus软件界面 在图1-1中从【File】>>【New Project Wizard...】新建工程项目,出现新建项目向导New Project Wizard 对话框如图1-2所示。该对话框说明新建工程应该完成的工作。

在图1-2中点击NEXT进入新建项目目录、项目名称和顶层实体对话框,如图1-3 所示,顶层实体名与项目名可以不同,也可以不同。输入项目目录如E:\0512301\ first、工程项目名称和顶层实体名同为fadder。 图1-2 新建工程向导说明对话框 图1-3 新建工程目录、项目名、顶层实体名对话框

接着点击NEXT进入新建添加文件对话框如图1-4所示。这里是新建工程,暂无输入文件,直接点击NEXT进入器件选择对话框如图1-5所示。这里选择Cyclone 系列的EP1C6Q240C8。 图1-4 新建添加文件对话框

图1-5器件选择对话框 点击NEXT进入添加第三方EDA开发工具对话框如图1-6所示。

一位全加器VHDL的设计实验报告

EDA技术及应用实验报告 ——一位全加器VHDL的设计 班级:XXX 姓名:XXX 学号:XXX

一位全加器的VHDL设计 一、实验目的: 1、学习MAX+PLUSⅡ软件的使用,包括软件安装及基本的使用流程。 2、掌握用VHDL设计简单组合电路的方法和详细设计流程。 3、掌握VHDL的层次化设计方法。 二、实验原理: 本实验要用VHDL输入设计方法完成1位全加器的设计。1位全加器可以用两个半加器及一个或门连接构成,因此需要首先完成半加器的VHDL设计。采用VHDL层次化的设计方法,用文本编辑器设计一个半加器,并将其封装成模块,然后在顶层调用半加器模块完成1位全加器的VHDL设计。 三、实验内容和步骤: 1、打开文本编辑器,完成半加器的设计。 2、完成1位半加器的设计输入、目标器件选择、编译。

3、打开文本编辑器,完成或门的设计。 4、完成或门的设计输入、目标器件选择、编译。 5、打开文本编辑器,完成全加器的设计。

6、完成全加器的设计输入、目标器件选择、编译。 7、全加器仿真 8、全加器引脚锁定

四、结果及分析: 该一位加法器是由两个半加器组成,在半加器的基础上,采用元件的调用和例化语句,将元件连接起来,而实现全加器的VHDL编程和整体功能。全加器包含两个半加器和一或门,1位半加器的端口a和b分别是两位相加的二进制输入信号,h是相加和输出信号,c是进位输出信号。构成的全加器中,A,B,C分别是该一位全加器的三个二进制输入端,H是进位端,Ci是相加和输出信号的和,下图是根据试验箱上得出的结果写出的真值表: 信号输入端信号输出端 Ai Bi Ci Si Ci 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1

实验一1位二进制全加器的设计

龙岩学院实验报告 班级学号姓名同组人 实验日期室温大气压成绩 实验题目:基于原理图输入法的1位二进制全加器的设计 一、实验目的 1、学习、掌握QuartusⅡ开发平台的基本使用。 2、学习基于原理图输入设计法设计数字电路的方法,能用原理图输入设计法 设计1位二进制半加器、1位二进制全加器。 3、学习EDA-V型实验系统的基本使用方法。 二、实验仪器 装有QuartusⅡ软件的计算机一台、EDA系统实验箱、导线若干 三、实验原理 半加器只考虑两个1位二进制数相加,而不考虑低位进位数相加。半加器的逻辑函数 为 式中A和B是两个相加的二进制数,S是半加和,C是向高位的进位数。表1为半加器真值表。 表1 A B C S 0 0 0 0 0 1 0 1 1 0 0 1 1 1 1 0 显然,异或门具有半加器求和的功能,与门具有进位功能。 其逻辑图跟逻辑符号如下图:

全加器除了两个1位二进制数相加以外,还与低位向本位的进位数相加。表2为全加器的真值表。 表2 A i B i C I-1 C i S 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 1 0 1 0 0 0 1 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1 由真值表可得出逻辑函数式 式中,A i 和B i 是两个相加的1为二进制数,C i-1 是由相邻低位送来的进位数, S I 是本位的全加和,C I 是向相邻高位送出的进位数。其逻辑图跟逻辑符号如下图所示: 四、实验内容 1、根据1位二进制半加器、1位二进制全加器的真值表,设计并画出1位二进制半加器的原理框图,由半加器及门电路设计并画出1位二进制全加器的原理框图(最终设计的是1位二进制全加器)。

实验一 一位二进制全加器设计实验

南昌大学实验报告 学生姓名: 学 号: 专业班级: 中兴101 实验类型:■ 验证 □ 综合 □设计 □ 创新 实验日期: 2012 9 28 实验成绩: 实验一 一位二进制全加器设计实验 一.实验目的 (1)掌握Quartus II 的VHDL 文本设计和原理图输入方法设计全过程; (2)熟悉简单组合电路的设计,掌握系统仿真,学会分析硬件测试结果; (3) 熟悉设备和软件,掌握实验操作。 二.实验内容与要求 (1)在利用VHDL 编辑程序实现半加器和或门,再利用原理图连接半加器和或门完成全加器的设计,熟悉层次设计概念; (2)给出此项设计的仿真波形; (3)参照实验板1K100的引脚号,选定和锁定引脚,编程下载,进行硬件测试。 三.设计思路 一个1位全加器可以用两个1位半加器及一个或门连接而成。而一个1位半加器可由基本门电路组成。 (1) 半加器设计原理 能对两个1位二进制数进行相加而求得和及进位的逻辑电路称为半加器。或:只考虑两个一位二进制数的相加,而不考虑来自低位进位数的运算电路,称为半加器。图1为半加器原理图。其中:a 、b 分别为被加数与加数,作为电路的输入端;so 为两数相加产生的本位和,它和两数相加产生的向高位的进位co 一起作为电路的输出。 半加器的真值表为 表1 半加器真值表 由真值表可分别写出和数so ,进位数co 的逻辑函数表达式为: b a b a b a so ⊕=+=- - (1) ab co = (2)

图1半加器原理图 (2) 全加器设计原理 除本位两个数相加外,还要加上从低位来的进位数,称为全加器。图2全加器原理图。全加器的真值表如下: 表2全加器真值表 其中a为加数,b为加数,c为低位向本位的进位,co为本位向高位的进位,so为本位和。 图2.全加器原理图 四.实现方法一:原理图输入法设计(自己独立完成) 1. 建立文件夹 建立自己的文件夹(目录),如c:\myeda,进入Windows操作系统 QuartusII不能识别中文,文件及文件夹名不能用中文。 2. 原理图设计输入 打开Quartus II,选菜单File→New,选择“Device Design File->Block Diagram->Schematic File”项。点击“OK”,在主界面中将打开“Block Editor”窗口。 (1) 放置元件 在原理图编辑窗中的任何一个空白处双击鼠标左键或单击右键,跳出一个选择窗,选择

利用全加器电路创建四位二进制加法器

一.课程设计的目的: 1、学习并了解MATLAB软件。 2、尝试用Simulink建模。 3、实现对数字电路的防真设计。 4、利用全加器电路创建四位二进制加法器。 二.课程设计题目描述及要求: 利用所学的数字电路的基本知识和MUTLAB软件中Simulink的应用学习,完成对数字电路的仿真设计。用各种各样的组合逻辑电路设计全加器,输出曲线,再利用全加器设计电路创建四位二进制加法器电路图,给出输出。 三.MATLAB软件简介: MATLAB是MathWorks公司于1984年推出的一套高性能的数值计算可视化软件,集数值分析、矩阵运算、信号处理和图形显示于一体。MATLAB是由Matrix 和Laboratory单词的前三个字母组合而成的,其含义是矩阵实验室。 Simulink是MATLAB最重要的组件之一,是实现动态系统建模、仿真的一个集成环境。它支持线性和非线性系统,连续时间、离散时间,或者两者的相结合的仿真,而且系统是多进程的。Simulink是从底层开发的一个完整的仿真环境和图形界面,它把MATLAB的许多功能都设计成一个个直观的功能模块,把需要的功能模块连接起来就可以实现所需要的仿真功能。Simulink仿真应用于数字电路、数字信号处理、通信仿真、电力系统仿真、宇航仿真等领域。由于数字系统中高低电平分别用0和1表示,因此数字电路问题往往可以转化为一个数字上的逻辑问题。MATLAB提供了逻辑运算模块和各种触发器模块,可以方便的进行数字电路的设计和仿真。借助于组合电路仿真常用模块Logic and Bit Operations子库中的Local Operator模块,将其拖到所建的untitled窗口中,然后鼠标左键双击该模块弹出的Block Parameters/Logical Operator对话框,按Operator栏后的黑三角来选择所需要的门电路标识符,如:AND、OR、NAND、NOR、XOR、NOT中的一个,并依次设置所需的输入、输出端子个数,之后按OK 键确定。利用这些基本门电路组成加法器逻辑电路。 四.课程设计的内容: 1、1位全加器的设计。 所谓全加器,就是带进位输入和进位输出的加法器。1位全加器有3个输入,分别是加

FPGA一位全加器设计实验报告

题目:1位全加器的设计 一.实验目的 1.熟悉QUARTUSII软件的使用; 2.熟悉实验硬件平台的使用; 3.掌握利用层次结构描述法设计电路。 二.实验原理 由于一位全加器可由两个一位半加器与一个或门构成,首先设计半加器电路,将其打包为半加器模块;然后在顶层调用半加器模块组成全加器电路;最后将全加器电路编译下载到实验箱,其中ain,bin,cin信号可采用实 验箱上SW0,SW1,SW2键作为输入,并将输 入的信号连接到红色LED管 LEDR0,LEDR1,LEDR2上便于观察,sum,cout 信号采用绿色发光二极管LEDG0,LEDG1来 显示。 三.实验步骤 1.在QUARTUSII软件下创建一工程,工程名为full_adder,芯片名为EP2C35F672C6; 2.新建Verilog语言文件,输入如下半加器Verilog语言源程序; module half_adder(a,b,s,co); input a,b; output s,co; wire s,co; assign co=a & b; assign s=a ^ b; Endmodule 3.保存半加器程序为,进行功能仿真、时序仿真,验证设计的正确性。 其初始值、功能仿真波形和时序仿真波形分别如下所示

4.选择菜单File→Create/Update→Create Symbol Files for current file,创建半加器模块; 5.新建一原理图文件,在原理图中调用半加器、或门模块和输入,输出引脚,按照图1所示连接电路。并将输入ain,bin,cin连接到FPGA的输出端,便于观察。完成后另保存full_adder。 电路图如下 6.对设计进行全编译,锁定引脚,然后分别进行功能与时序仿真,验证全加器的逻辑功能。其初始值、功能仿真波形和时序仿真波形分别如下所示

半加器全加器的工作原理和设计方法实验报告[精品文档]

一、实验目的 1、学习和掌握半加器全加器的工作原理和设计方法。 2、熟悉EDA工具Quartus II的使用,能够熟练运用Vrilog HDL语言在 Quartus II下进行工程开发、调试和仿真。 3、掌握组合逻辑电路在Quartus Ⅱ中的图形输入方法及文本输入方法, 掌握层次化设计方法。 4、掌握半加器、全加器采用不同的描述方法。 二、实验内容 1、完成半加器全加器的设计,包括原理图输入,编译、综合、适配、仿真等。并将半加器电路设 置成一个硬件符号入库 2、建立更高层次的原理图设计,利用1位半加器构成1位全加器,并完成编译、综合、适配、仿 真并硬件测试 3、采用图形输入法设计1位加法器分别采用图形输入和文本输入方法,设计全加器 4、实验报告:详细叙述1位全加法器的设计流程,给出各层次的原理图及其对应的仿真波形图, 给出加法器的上时序分析情况,最后给出硬件测试流程和结果。 三、实验步骤 1、建立一个Project。 2、编辑一个VHDL程序,要求用VHDL结构描述的方法设计一个半加器 3、对该VHDL程序进行编译,修改错误。 4、建立一个波形文件。(根据真值表) 5、对该VHDL程序进行功能仿真和时序仿真 四、实验现象 任务1:半加器真值表描述方法 代码如下: 半加器是只考虑两个加数本身,而不考虑来自低位进位的逻辑电路 S=A B+A B CO=AB

代码如下: LIBRARY IEEE; --行为描述半加器 USE IEEE.STD_LOGIC_1164.ALL; ENTITY h_adder IS PORT(a,b:IN STD_LOGIC; so,co:OUT STD_LOGIC); END h_adder; Architecture FH1 OF h_adder IS Signal abc:STD_LOGIC_vector(1 downto 0); Begin abc<=a&b; --并 Process(abc) --进程 begin case abc is 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 ARCHITECTURE FH1; 结果如下: 逻辑图

整理实验一-一位二进制全加器设计实验

整理人 尼克 实验一一位二进制全加器设计实验

目录 实验一Protel DXP 2004认识实验 (1) 实验二两级阻容耦合三极管放大电路原理图设计 (1) 实验三原理图元件库建立与调用 (3) 实验四两级阻容耦合三极管放大电路PCB图设计 (5) 实验五集成电路的逻辑功能测试 (7) 实验六组合逻辑电路分析与设计 (12) 实验七Quartus II 的使用 (17) 实验八组合逻辑器件设计 (17) 实验九组合电路设计 (25)

实验一 Protel DXP 2004 认识实验 一、实验目的 1.掌握Prot e l DXP 2004 的安装、启动和关闭。 2.了解Protel DXP 2004 主窗口的组成和各部分的作用。 3.掌握Prot e l DXP 2004 工程和文件的新建、保存、打开。 二、实验内容与步骤 1、Protel_DXP_2004 的安装 (1)用虚拟光驱软件打开Protel_DXP_2004.iso 文件 (2)运行setup\Setup.exe 文件,安装Protel DXP 2004 (3) 运行破解程序后,点击“导入模版”,先导入一个ini文件模版(如果要生成单机版的License选择Unified Nexar-Protel License.ini;要生成网络版的License选择Unified Nexar-Protel Network License.ini),然后修改里面的参数:TransactorName=Your Name(将“Your Name”替换为你想要注册的用户名);SerialNumber=0000000(如果你只有一台计算机,那么这个可以不用修改,如果有两台以上的计算机且连成局域网,那么请保证每个License文件中的SerialNumber=为不同的值。修改完成后点击“生成协议文件”,任意输入一个文件名(文件后缀为.alf)保存,程序会在相应目录中生成1个License文件。点击“替换密钥”,选取DXP.exe (在DXP 2004安装目录里,默认路径为C:\Program Files\Altium2004\),程序会自动替换文件中的公开密钥。将前面生成的License文件拷贝至DXP 2004安装目录里(默认路径为 C:\Program Files\Altium2004\)授权完成。 (4)打开Protel 在左上角DXP 菜单下的Preference 菜单项里,选中Use localize resources 后关闭Protel_DXP_2004,重新打开软件变为简体中文版本。 2、Protel_DXP_2004 的卸载 卸载Protel_DXP_2004 的具体步骤如下: (1)在Windows 的“开始”菜单中选择“设置/控制面板”,然后在控制面板中选择“添加/删除程序”选项,将弹出对话框。从中选择DXP 2004 应用软件。 (2)单击删除”按钮,将弹出对话框,询问用户是否真的要删除程序。 (3)单击“是”按钮,开始卸载。在卸载过程中,若想终止卸载,可单击“取消”按钮。

8位全加器实验报告

实验1 原理图输入设计8位全加器 一、实验目的: 熟悉利用QuartusⅡ的原理图输入方法设计简单组合电路,掌握层次化设计的方法,并通过一个8位全加器的设计把握利用EDA软件进行电子线路设计的详细流程。 二、原理说明: 一个8位全加器可以由8个1位全加器构成,加法器间的进位可以串行方式实现。即将低位加法器的进位输出cout与其相邻的高位加法器的最低进位输入信号cin相接。而一个1位全加器可以按照本章第一节介绍的方法来完成。 三、实验内容: 1:完全按照本章第1节介绍的方法与流程,完成半加器和全加器的设计,包括原理图输入、编译、综合、适配、仿真。 2:建立一个更高的原理图设计层次,利用以上获得的1位全加器构成8位全加器,并完成编译、综合、适配、仿真和硬件测试。 四、实验环境: 计算机、QuartusII软件。 五、实验流程: 实验流程: 根据半加器工作原 理,建立电路并仿 真,并将元件封装。 ↓ 利用半加器构成一位 全加器,建立电路并 仿真,并将元件封 装。 ↓ 利用全加器构成8位全 加器,并完成编译、综 合、适配、仿真。 图1.1 实验流程图

六、实验步骤: 1.根据半加器工作原理建立电路并仿真,并将元件打包。(1)半加器原理图: 图1.2 半加器原理图(2)综合报告: 图1.3 综合报告: (3)功能仿真波形图4: 图1.4 功能仿真波形图

时序仿真波形图: 图1.5 时序仿真波形图 仿真结果分析:sout为和信号,当a=1,b=0或a=0,b=1时,和信号sout为1,否则为0.当a=b=1时,产生进位信号,及cout=1。 (4)时序仿真的延时情况: 图1.6 时序仿真的延时情况 (5)封装元件: 图1.7 元件封装图 2. 利用半加器构成一位全加器,建立电路并仿真,并将元件封装。 (1)全加器原理图如图: 图2.1 全加器原理图

杭电计组实验1-全加器设计实验

杭电计组实验1-全加器设计实验 杭州电子科技大学计算机学院实验报告实验项目:实验1-全加器设计实验课程名称:计算机组成原理与系统结构课程设计姓名: 学号: 同组姓名: 学号: 实验位置(机号): 自己的笔记本实验日期: 指导教师: 实验内容(算法、程序、步骤和方法)一、实验目的(1),学习ISE工具软件的使用及仿真方法(2)学习FPGA程序的下载方法(3)熟悉Nexys3实验板(4)掌握运用VerilogHDL进行结构描述与建模的技巧和方法(5)掌握二进制全加器的原理和设计方法二、实验仪器ISE工具软件三、步骤、方法(1)启动XilinxISE 软件,选择File-NewProject,输入工程名,默认选择后,点击Next按钮,确认工程信息后点击Finish按钮,创建一个完整的工程。 (2)在工程管理区的任意位置右击,选择NewSource命令。弹出NewSourceWizard对话框,选择VerilogModule,并输入Verilog文件名shiyan1,点击Next按钮进入下一步,点击Finish完成创建。 (3)编辑程序源代码,然后编译,综合;选择Synthesize--XST项中的CheckSyntax右击选择Run命令,并查看RTL视图;如果编译出错,则需要修改程序代码,直至正确。 (4)在工程管理区将View类型设置成Simulation,在任意位置右击,选择NewSource命令,选择VerilogTestFixture选项。输入文件名shiyan1_test,点击Next,点击Finish,完成。编写激励代码,观察仿真波形,如果验证逻辑有误,则修改代码,重新编译,仿真,直至正确。 (5)由于实验一并未链接实验板,所以后面的链接实验板的步骤此处没有。 操作过程及结果一、操作过程实验过程和描述: moduleshiyan1(A,B,C,F,Ci);inputA,B,C;outputF,Ci;wireA,B,C,F,Ci;wi reS1,S2,S3;xorXU1(F,A,B,C),XU2(S1,A,B);andAU1(S2,A,B),AU2(S3,S1,C);or OU1(Ci,S2,S3);endmodule仿真代码 moduleshiyan1_test;//InputsregA;regB;regC;//OutputswireF;wireCi;/ /InstantiatetheUnitUnderTest(UUT)shiyan1uut(.A(A),.B(B),.C(C),.F(F),. Ci(Ci));initialbegin//InitializeInputsA=0;B=0;C=0;//Wait100nsforgloba lresettofinish#100;//AddstimulushereA=0;B=0;C=0;#100A=0;B=0;C=1;#100A =0;B=1;C=0;#100A=0;B=1;C=1;#100A=1;B=0;C=0;#100A=1;B=0;C=1;#100A=1;B= 1;C=0;#100A=1;B=1;C=1;EndRTL图 二、结果 思考题: ((1)根据查看顶层模块RTL的最外层的输入输出接口,和实验指导书式(14.1)所示电路相比,该电路图的输入输出引脚和这个加法器的引脚图式是相符合的。 ((2))尝试使用数据流描述方式现实现

4位全加器实验报告.doc

四位全加器 11微电子黄跃1117426021 【实验目的】 采用modelsim集成开发环境,利用verilog硬件描述语言中行为描述模式、结构描述模式或数据流描述模式设计四位进位加法器。 【实验内容】 加法器是数字系统中的基本逻辑器件。多位加法器的构成有两种方式:并行进位和串行进位方式。并行进位加法器设有并行进位产生逻辑,运算速度快;串行进位方式是将全加器级联构成多位加法器。通常,并行加法器比串行级联加法器占用更多的资源,并且随着位数的增加,相同位数的并行加法器比串行加法器的资源占用差距也会越来越大。 实现多位二进制数相加的电路称为加法器,它能解决二进制中1+1=10的功能(当然还有 0+0、0+1、1+0). 【实验原理】 全加器 除本位两个数相加外,还要加上从低位来的进位数,称为全加器。图4为全 加器的方框图。图5全加器原理图。被加数A i 、加数B i 从低位向本位进位C i-1 作 为电路的输入,全加和S i 与向高位的进位C i 作为电路的输出。能实现全加运算 功能的电路称为全加电路。全加器的逻辑功能真值表如表2中所列。 信号输入端信号输出端 A i B i C i S i C i 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1

表2 全加器逻辑功能真值表 图4 全加器方框图 图5 全加器原理图 多位全加器连接可以是逐位进位,也可以是超前进位。逐位进位也称串行进位,其逻辑电路简单,但速度也较低。 四位全加器 如图9所示,四位全加器是由半加器和一位全加器组建而成: 图9 四位全加器原理图 【实验步骤】 (1)建立新工程项目: 打开modelsim软件,进入集成开发环境,点击File→New project建立一

一位全加器

存档资料成绩: 华东交通大学理工学院 课程设计报告书 所属课程名称计算机组成原理 题目一位全加器的设计 分院电信分院 专业班级 15计算机科学与技术3班 学号20150210440313 学生姓名张子辰 指导教师王莉 2016 年 12 月 19 日

课程设计(论文)评阅意见 评阅人 王莉 职称 讲师 2016年12月19日 序号 项 目 等 级 优秀 良好 中等 及格 不及格 1 课程设计态度评价 2 出勤情况评价 3 任务难度评价 4 工作量饱满评价 5 任务难度评价 6 设计中创新性评价 7 论文书写规范化评价 8 综合应用能力评价 综合评定等级

目录 引言 (2) 一.全加器的介绍 (2) 1.1 全加器的基本概念 (2) 1.2全加器仿真设计分析 (3) 1.3 全加器的原理 (3) 二.课程设计目的 (3) 三.不同方法的一位全加器设计 (4) 3.1用逻辑门设计全加器 (4) 3.2 用74LS38译码器设计全加器 (6) 3.3用74LS153D数据选择器设计全加器 (8) 四.观测仿真电路 (10) 4.1逻辑门仿真电路的分析 (10) 4.2 74LS138译码器仿真电路的分析 (12) 4.3 74LS153D数据选择器仿真电路的分析 (13) 五.两位全加器的实现 (15) 5.1.原理 (15) 5.2创建电路 (18) 5.3 仿真电路的输出信号分析 (19) 六.收获与心得 (19) 参考文献 (20)

一位全加器的设计 引言 MAX+PLUS II是一个专门用于电路设计与仿真的工具软件。它以界面形象直观、操作方便、分析功能强大、易学易用等突出优点,迅速被推广应用。MAX+PLUS II仿真软件能将电路原理图的创建、电路的仿真分析及结果输出都集成在一起,并具有绘制电路图所需的元器件及其仿真测试的仪器,可以完成从电路的仿真设计到电路版图生成的全过程,从而为电子系统的设计、电子产品的开发和电子系统工程提供一种全新的手段和便捷的方法。 数字系统的基本任务之一就是进行算术运算。而常见的加、减、乘、除等运算均可以利用加法运算来实现。所以,加法器就成为数字系统中最基本的运算单元,可广泛用于构成其它逻辑电路。 一.全加器的介绍 1.1 全加器的基本概念 加法器是一种常见的组合逻辑部件,有半加器和全加器之分。半加器是只考虑两个加数本身,而不考虑来自低位进位的逻辑电路,就是两个相加数最低位的加法运算。全加器不仅考虑两个一位二进制数相加,还要考虑与低位进位数相加的运算电路。两个数相加时,除最低位之外的其余各位均是全加运算

实验一 4位全加器的设计

实验一4位全加器的设计 一、实验目的: 1 熟悉QuartusⅡ与ModelSim的使用; 2 学会使用文本输入方式和原理图输入方式进行工程设计; 3 分别使用数据流、行为和结构化描述方法进行四位全加器的设计; 4 理解RTL视图和Technology Map视图的区别; 5 掌握简单的testbench文件的编写。 二、实验原理: 一个4位全加器可以由4个一位全加器构成,加法器间的进位可以串行方式实现,即将低位加法器的进位输出cout与相邻的高位加法器的进位输入信号cin相接。 三、实验内容: 1.QuartusII软件的熟悉 熟悉QuartusⅡ环境下原理图的设计方法和流程,可参考课本第4章的内容,重点掌握层次化的设计方法。 2.设计1位全加器原理图 设计的原理图如下所示:

VHDL源程序如下(行为描述):-- Quartus II VHDL Template -- Unsigned Adder library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity f_add is port ( a : in std_logic; b : in std_logic; ci : in std_logic; y : out std_logic; co : out std_logic ); end entity; architecture rtl of f_add is begin (co,y)<=('0',a)+('0',b)+('0',ci); end rtl;

加法器实验报告

加法器实验报告 篇一:加法器实验报告 实验 __一__ 【实验名称】 1位加法器 【目的与要求】 1. 掌握1位全加器的设计 2. 学会1位加法器的扩展 【实验内容】 1. 设计1位全加器 2. 将1位全加器扩展为4位全加器 3. 使4位的全加器能做加减法运算 【操作步骤】 1. 1位全加器的设计 (1)写出1位全加器的真值表 (2)根据真值表写出表达式并化简 (3)画出逻辑电路 (4)用quartusII进行功能仿真,检验逻辑电路是否正确,将仿真波形截图并粘贴于此 (5)如果电路设计正确,将该电路进行封装以用于下一个环节 2. 将1位全加器扩展为4位全加器 (1)用1位全加器扩展为4位的全加器,画出电路图

(2)分别用两个4位补码的正数和负数验证加法器的正确性(注意这两 个数之和必须在4位补码的数的范围内,这两个数包括符号在内共4位),用quartusII进行功能仿真并对仿真结果进行截图。 3. 将4位的全加器改进为可进行4位加法和减法的运算器 (1)在4位加法器的基础上,对电路进行修改,使该电路不仅能进行加 法运算而且还能进行减法运算。画出该电路 (2)分别用两个4位补码的正数和负数验证该电路的正确性(注意两个 数之和必须在4位补码的数的范围内),用quartusII进行功能仿真并对仿真结果进行截图。 【附录】 篇二:加法器的基本原理实验报告 一、实验目的 1、了解加法器的基本原理。掌握组合逻辑电路在Quartus Ⅱ中的图形输入方法及文本输入方法。 2、学习和掌握半加器、全加器的工作和设计原理 3、熟悉EDA工具Quartus II和Modelsim的使用,能够熟练运用Vrilog HDL语言在Quartus II下进行工程开发、调试和仿真。

EDA课程设计八位二进制全加器

EDA课程设计八位二进制全加器

EDA设计说明书 课程名称: EDA技术实用教程 设计题目:八位二进制全加器 院系:电子信息与电气工程学院学生姓名: 学号: 专业班级: 指导教师:李响 年 6 月 1

1. 设计目的 熟悉利用QuartusⅡ的原理图输入法设计简单的组合电路,掌握层次化设计的方法,并经过一个八位全加器的设计把握利用EDA软件进行原理图输入方式的电子线路设计的详细流程。 2. 设计原理 2.1 一位全加器的原理 一位全加器能够用两个半加器及一个或门连接而成,因此需要首先完成半加器的设计。在本设计中,将采用原理图输入法来完成设计。 一位全加器的设计步骤: ①为本项工程设计建立文件夹; ②输入设计项目和存盘; ③将设计项目设计成可调用的元件; ④设计全加器顶层文件; ⑤将设计项日设置成工程和时序仿真。 2.2 八位全加器的原理 一个八位全加器能够由八个一位全加器构成,加法器之间的进位能够用串行方式实现,即将低位加法器的进位输出cout 与相邻的高位加法器的最低进位输入信号cin 相接。

3. 设计方案与仿真 3.1 一位全加器的设计与仿真 全加器的实现是以半加器的实现为基础的,因此,要设计全加器应首先设计一个一位的半加器。半加器的实现方案为: ①为此项工程建立文件夹; ②在基本元件库中,选中需要的元件,将元件(包含元件 and2、not 、xnor 和输入输出引脚input、output)调入原理图编辑窗口中; ③将己设计好的原理图文件存盘; ④将所设计的半加器设置成可调用的元件。 用原理图输入法所设计的半加器原理图如图3-1所示,利用QuartusⅡ软件平台,根据图3-1所示电路,可生成一个半加器元件符号,如图3-2所示。在半加器的基础上,为了建立全加器的顶层文件,必须再打开一个原理图编辑窗口,方法同上。其中,所选择的元件包含半加器、或门和输入输出引脚,由此可得到如图3-3所示的全加器原理图;进而可生成个全加器元件符号,如图3-4所示。 图3-1 半加器原理图图3-2 半加器元件符号

数电实验报告半加全加器

实验二 半加/减器与全加/减器 一、 实验目的: (1) 掌握全加器和半加器的逻辑功能。 (2) 熟悉集成加法器的使用方法。 (3) 了解算术运算电路的结构。 二、 实验设备: 1、 74LS00 (二输入端四与非门) 2、 74LS86 (二输入端四异或门) 3、 数字电路实验箱、导线若干。 Ver 4B 4A 4¥ 3B 3A 3Y 1A IB !Y 2A 2B 2Y GND (74LS86引脚图) 三、 实验原理: 两个二进制数相加,叫做半加,实现半加操作的电路,称为半加器。 A 表示 被加数,B 表示加数,S 表示半加和,Co 表示向高位的进位。 全加器能进行加数、被加数和低位来的信号相加,并给出该位的进位信号以 及和。 四、 实验内容: 用74LS00和74LS86实现半加器、全加器的逻辑电路功能。 (一)半加器、半减器 M=0寸实现半加,M=1时实现半减,真值表如下: (74LS00引脚 )

功能M A B S C 半加00000 00110 01010 01101 半减10000 10111 11010 11100 —s +/- ——co M (半加器图形符号) 2、 ⑴S真值表: 00011110 00110 11001 A ⑵C真值表: 00011110 00000 10101 C 二B(A二M)

(二)全加器、全减器 S CO C^BC i-1 ?(M 十 A )(B 十 C ) 、实验结果 半加器: S 二 AB AB = A 二 B C =B (A 二 M ) 全加器: S = A 二 B - C i-1 G 二GM C 2M CI B +/一

全加器实验报告

全加器设计实验报告 姓名: 班级: 学号:

实验目的: 1.熟悉QuartusⅡ原理图设计流程,学习简单电路的设计方法、输入步骤、层次化步骤。 2.掌握QuartusII的文本输入方式的设计过程,理解VHDL语言的结构级描述方法,学习元件例化语句的设计方法。 实验原理:一位全加器可以用两个半加器及一个或门连接而成。要求使用原理图输入的方法先进行底层半加器设计,再建立上层全加器设计文件,调用半加器和或门符号,连线完成原理图设计。 全加器可以用两个半加器和一个或门连接而成,在半加器描述的基础上,采用COMPONENT语句和PORT MAP语句就可以很容易地编写出描述全加器的程序。 一.原理图 1.半加器 实验步骤 1.打开Quartus Ⅱ软件,选择新建命令,在新建对话框中选择原理图文件编辑输入项,完成新建进入原理图编辑窗口。 2.在原理图编辑窗口任意位置右击鼠标,将出现快捷菜单,选择其中的输入元件项insert symbol,按照所设计的电路,放置器件,排版,连线,完成设计后选择另存为命令,命名为h_adder存放在指定文件夹中。

3.完成半加器的设计后,重复新建命令,开始进行全加器设计,在新建的原理图中,双击鼠标,在弹出的窗口中选择project选项,将之前存入的h_adder元件,放入原理图中。 2.全加器 实验步骤 1.新建工程,在新建的工程中建立VHDL语言编辑文件,在编辑窗口处,输入设计的半加器全加器程序。 2.将设计好程序进行编译,没有错误之后定义全加器五个引脚所对应耳朵硬件电路的引脚号。 3.烧录程序,调试,验证程序是否合理。

二.程序

实验一一位二进制全加器设计实验

◎南昌大学实验报告 学生姓名: ______ 学号:____________ 专业班级:中兴101 实验类型:■ 验证口综合□设计口创新实验日期:2012 9 28 实验成绩: _________________ 实验一一位二进制全加器设计实验 一. 实验目的 (1)掌握Quartus II的VHDL文本设计和原理图输入方法设计全过程; (2)熟悉简单组合电路的设计,掌握系统仿真,学会分析硬件测试结果; (3)熟悉设备和软件,掌握实验操作。 二. 实验内容与要求 (1)在利用VHDL编辑程序实现半加器和或门,再利用原理图连接半加器和或门完成全加器的设计,熟悉层次设计概念; (2)给出此项设计的仿真波形; (3)参照实验板1K100的引脚号,选定和锁定引脚,编程下载,进行硬件测试。 三?设计思路 一个1位全加器可以用两个1位半加器及一个或门连接而成。而一个1位半加器可由基本门电路组成。 (1) 半加器设计原理 能对两个1位二进制数进行相加而求得和及进位的逻辑电路称为半加器。或:只考虑两 个一位二进制数的相加,而不考虑来自低位进位数的运算电路,称为半加器。图1为半加器 原理图。其中:a、b分别为被加数与加数,作为电路的输入端;so为两数相加产生的本位 和,它和两数相加产生的向高位的进位co 一起作为电路的输出。 半加器的真值表为 表1 由真值表可分别写出和数so,进位数co的逻辑函数表达式为: so a b a b a b co ab (1) (2)

(2) 全加器设计原理 除本位两个数相加外,还要加上从低位来的进位数,称为全加器。图2全加器原理图。 全加器的真值表如下: 其中a为加数,b为加数,c为低位向本位的进位,co为本位向高位的进位,so为本位和。 图2.全加器原理图 四?实现方法一:原理图输入法设计(自己独立完成) 1. 建立文件夹 建立自己的文件夹(目录),女口c:\myeda,进入Windows操作系统Quartusll不能识别中文,文件及文件夹名不能用中文。 2. 原理图设计输入 打开Quartus II ,选菜单File 宀New ,选择“Device Design File->Block Diagram- 'Schematic File 项。点击“ OK'在主界面中将打开“ Block Editor 窗口'。 (1) 放置元件 在原理图编辑窗中的任何一个空白处双击鼠标左键或单击右键,跳出一个选择窗,选择此窗中的Enter Symbol项输入元件,出现元件选择窗口。 元件选择窗口窗口中Symbol Libraries: 的路径c:\ Quartus2\max2lib\prim 下为基本

八位加法器设计实验报告

实验四:8位加法器设计实验 1.实验目的:熟悉利用quartus原理图输入方法设计简单组合电路,掌握层次化设计方法。 2.实验原理:一个八位加法器可以由八个全加器构成,加法器间的进位可以串行方式实现,即将低位加法器的进位输出cout与相邻的高位加法器的最低进位输入信号cin相接。 3.实验任务:完成半加器,全加器,八位加法器设计,使用例化语句,并将其设计成一个原件符号入库,做好程序设计,编译,程序仿真。 1)编译成功的半加器程序: module h_adder(a,b,so,co); input a,b; output so,co; assign so=a^b; assign co=a&b; endmodule 2)编译成功的全加器程序: module f_adder(ain,bin,cin,cout,sum); output cout,sum;input ain,bin,cin; wire net1,net2,net3; h_adder u1(ain,bin,net1,net2); h_adder u2(.a(net1),.so(sum),.b(cin),.co(net3));

or u3(cout,net2,net3); endmodule 3)编译成功的八位加法器程序: module f_adder8(ain,bin,cin,cout,sum); output [7:0]sum; output cout;input [7:0]ain,bin;input cin; wire cout0, cout1, cout2 ,cout3, cout4,cout5,cout6; f_adder u0(.ain(ain[0]),.bin(bin[0]),.cin(cin),.sum(sum[0]) ,.cout(cout0)); f_adder u1(.ain(ain[1]),.bin(bin[1]),.cin(cout0),.sum(sum[1 ]),.cout(cout1)); f_adder u2(.ain(ain[2]),.bin(bin[2]),.cin(cout1),.sum(sum[2 ]),.cout(cout2)); f_adder u3(.ain(ain[3]),.bin(bin[3]),.cin(cout2),.sum(sum[3 ]),.cout(cout3)); f_adder u4(.ain(ain[4]),.bin(bin[4]),.cin(cout3),.sum(sum[4

相关文档
相关文档 最新文档