当前位置:文档之家› EDA1_4位加法器原理图设计

EDA1_4位加法器原理图设计

EDA1_4位加法器原理图设计
EDA1_4位加法器原理图设计

4 位加法器原理图设计

一、实验目的

1、进一步掌握 Quartus Ⅱ原理图输入设计法。

2、通过4位加法器的设计,掌握原理图输入法中的层次化设计。

二、实验原理

图1 半加器原理图

图2 1位全加器原理图

图3 4 位加法器原理图

4 位加法器(如图3)是以 1 位全加器作为基本硬件,由 4 个 1 位全加器串行构成, 1位全加器又可以由两个1位的半加器和一个或门连接而成(如图2),而1位半加器可以由若干门电路组成(如图1)。

三、实验内容

本次实验使用 Altera FPGA 的开发工具 Quartus Ⅱ,利用原理图输入设计方法设计一个 4位加法器。

四、实验步骤

1、打开QUARTUS II软件,新建一个工程adder4bit。

2、建完工程之后,再新建一个Block Diagram/Schematic File。在原理图编辑窗口

绘制如图1的半加器原理图。点击 File ->Save,将已设计好的图文件取名为:

h_adder,并存在此目录内。

3、编译。如果发现有错,排除错误后再次编译。直到编译通过就可以进行波形仿真了。

4、时序仿真。建立波形文件,设置波形参量,再保存(注意: QuartusⅡ在波形仿真

时,只支持一个与工程名同名的波形文件,所以在对多个文件进行波形仿真时,

对波形文件都取工程名进行保存,后缀名为.vwf;若确实想保留多个波形文件,

则可以分别命名,想对哪个波形文件进行仿真时,点击Processing->simulation

Tool,在Simulation input中输入待仿真的波形文件即可,如图4所示) ,最后

运行波形仿真。观察分析波形。

然后将半加器 h_adder 封入库生成半加器元件了,为后续生成 1 位全加器做准备。

图4 仿真结果

5、封装入库。封将仿真调试好的半加器封装入库。打开 h_adder.bdf文件,在

File->Create/update 如图5所示。

图5 元件封装入库

6、全加器原理图设计。以上实验步骤主要是生成了一个半加器,再用同样的方法按照

图2中1位全加器原理图生成一个1位全加器元件(注意生成的半加器在元器件库的Project选项下,如图6)。

图6 Symbol对话框

7、全加器仿真。

8、4位加法器原理图设计。根据4位加法器的原理画出如图3的4位加法器原理图。

为方面观察输出波形,4位加法器输入输出才采用总线画法,总线命名为被加数a[3..0],加数命名为b[3..0],同时要为每根总线分支加上网络名,方法为选定某总线分支后,右键->Properties,在弹出的Node Properties对话框(如图2-8)中输入总线分支网络名,如a[0],a[1],……。

图7 节点添加网络名

9、4位全加器仿真,仿真波形如图8。注意仿真结果观察将数值以无符号数形式输出

最好,设置方法为选定某个端口后,右键->Properties,在图9对话框中选择

Unsigned Decimal。

图8 4为加法器仿真波形

图9 节点数据进制选择

五、实验报告

1.绘出仿真波形,并作说明。

2.熟悉QUARTUS II软件。

3.将实验原理、设计过程、编译仿真波形和分析结果记录下来。

实验一四位串行进位加法器的设计实验报告

实验一四位串行进位加法器的设计 一、实验目的 1.理解一位全加器的工作原理 2.掌握串行进位加法器的逻辑原理 3.进一步熟悉Quartus软件的使用,了解设计的全过程, 二、实验容 1.采用VHDL语言设计四位串行进位的加法器 2.采用画原理图的方法设计四位串行进位加法器 三、实验步骤 1、使用VHDL语言设计 1.打开File—>New Project Wizard输入文件名adder4保存在D 盘,打开File—>New—>VHDL File,从模版中选择库的说明,use 语句的说明,实体的说明,结构体的说明,编写VHDL代码,然后保存、编译。打开File—>New—>Other File—>Vector Waveform File,查找引脚,从Edit中选择End Time 输入40、ns 保存。从Assignments—>Settings—>Simulator Settings —>Functional 然后Processing—>Generate Functional Simnlation Netlist —>确定。选择Start Simulation保存最后的波形图,打开File —>close关闭工程。 底层文件: LIBRARY ieee;

USE ieee.std_logic_1164.ALL; ENTITY fadder IS PORT ( a, b,cin : IN STD_LOGIC; s, co : OUT STD_LOGIC ); END fadder; ARCHITECTURE arc1 OF fadder IS BEGIN s<=a xor b xor cin; co<=((a xor b)and cin)or(a and b); END arc1; 顶层文件: LIBRARY ieee; USE ieee.std_logic_1164.ALL; ENTITY adder4 IS PORT ( c0: IN STD_LOGIC; a,b : IN STD_LOGIC_VECTOR(3 DOWNTO 0); s : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);

8位全加器的设计

课程设计报告 课程名称数字逻辑课程设计 课题8位全加器的设计 专业计算机科学与技术 班级1202 学号34 姓名贺义君 指导教师刘洞波陈淑红陈多 2013年12月13日

课程设计任务书 课程名称数字逻辑课程设计 课题8位全加器的设计 专业班级计算机科学与技术1202 学生姓名贺义君 学号34 指导老师刘洞波陈淑红陈多审批刘洞波 任务书下达日期:2013年12月13日 任务完成日期:2014年01月21日

一、设计内容与设计要求 1.设计内容: 本课程是一门专业实践课程,学生必修的课程。其目的和作用是使学生能将已学过的数字电子系统设计、VHDL程序设计等知识综合运用于电子系统的设计中,掌握运用VHDL或者Verilog HDL设计电子系统的流程和方法,采用Quartus II等工具独立应该完成1个设计题目的设计、仿真与测试。加强和培养学生对电子系统的设计能力,培养学生理论联系实际的设计思想,训练学生综合运用数字逻辑课程的理论知识的能力,训练学生应用Quartus II进行实际数字系统设计与验证工作的能力,同时训练学生进行芯片编程和硬件试验的能力。 题目一4线-16线译码器电路设计; 题目二16选1选择器电路设计; 题目三4位输入数据的一般数值比较器电路设计 题目四10线-4线优先编码器的设计 题目五8位全加器的设计 题目六RS触发器的设计; 题目七JK触发器的设计; 题目八D触发器的设计; 题目九十进制同步计数器的设计; 题目十T触发器的设计; 每位同学根据自己学号除以10所得的余数加一,选择相应题号的课题。 参考书目 1 EDA技术与VHDL程 序开发基础教程 雷伏容,李俊,尹 霞 清华大学出版 社 978-7-302-22 416-7 201 TP312VH/ 36 2 VHDL电路设计雷伏容清华大学出版 社 7-302-14226-2 2006 TN702/185 3 VHDL电路设计技术王道宪贺名臣? 刘伟 国防工业出版 社 7-118-03352-9 2004 TN702/62 4 VHDL 实用技术潘松,王国栋7-8106 5 7-81065-290-7 2000 TP312VH/1 5 VHDL语言100 例详解 北京理工大学A SIC研究所 7-900625 7-900625-02-X 19 99 TP312VH/3 6 VHDL编程与仿真王毅平等人民邮电出版 社 7-115-08641-9 20 00 7 3.9621/W38V 7 VHDL程序设计教程邢建平?曾繁泰清华大学出版 社 7-302-11652-0 200 5 TP312VH/27 /3

16位超前加法器实验报告

16位超前加法器设计实验 一、实验分析: 四位超前进位加法器HDL程序: module add4_head ( a, b, ci, s, pp, gg); input[3:0] a; input[3:0] b; input ci; output[3:0] s; output pp; output gg; wire[3:0] p; wire[3:0] g; wire[2:0] c; assign p[0] = a[0] ^ b[0]; assign p[1] = a[1] ^ b[1]; assign p[2] = a[2] ^ b[2]; assign p[3] = a[3] ^ b[3]; assign g[0] = a[0] & b[0]; assign g[1] = a[1] & b[1]; assign g[2] = a[2] & b[2]; assign g[3] = a[3] & b[3]; assign c[0] = (p[0] & ci) | g[0]; assign c[1] = (p[1] & c[0]) | g[1]; assign c[2] = (p[2] & c[1]) | g[2]; assign pp = p[3] & p[2] & p[1] & p[0]; assign gg = g[3] | (p[3] & (g[2] | p[2] & (g[1] | p[1] & g[0]))); assign s[0] = p[0] ^ ci; assign s[1] = p[1] ^ c[0]; assign s[2] = p[2] ^ c[1]; assign s[3] = p[3] ^ c[2]; endmodule p表示进位否决信号(pass),如果p为0就否决调前一级的进位输入。否决的意思就是即使前一级有进位,本级也不会向后一级产生进位输出。 g表示进位产生信号(generate),如果g为1就表示一定会向后一级产生进位输出。p[n] = a[n] ^ b[n]这句话的意思是说,当a=1,b=0或a=0,b=1时前一级的进位输入信号不能否决。这样就有个问题了,即当a=1,b=1时前一级的进位输入信号也不能否决啊,怎么没有体现出来?其实当a=1,b=1时产生了进位产生信号g,它的优先级高于p信号,就忽略了p信号,直接产生了向后一级产生进位输出,是没有逻辑错误的。 g[n] = a[n] & b[n] 这句话的意思是说,如果a=1,b=1时就直接向后一级产生进位输出信号,而不用考虑其它的任何因素。

EDA FPGA设计实例 四位加法器(含源程序)

EDA FPGA 四位加法器设计说明:程序使用原件例化语句编写。 半加器程序: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY bjq IS PORT(A,B:IN STD_LOGIC; Y,Co:OUT STD_LOGIC); END bjq; ARCHITECTURE bjqbehv OF bjq IS SIGNAL c,d:STD_LOGIC; BEGIN c<=A OR B; d<=A NAND B; Co<=NOT d; Y<=c AND d; END bjqbehv; 全加器程序: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY qjq IS

PORT(Ci,A,B:IN STD_LOGIC; S,Co:OUT STD_LOGIC); END qjq; ARCHITECTURE qjqbehv OF qjq IS BEGIN S<=A XOR B XOR Ci; Co<=(A AND B) OR (A AND Ci) OR (B AND Ci); END qjqbehv; 加法器例化程序: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY jfq4 IS PORT(A,B:IN STD_LOGIC_VECTOR(3 DOWNTO 0); y:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); Co:OUT STD_LOGIC); END jfq4; ARCHITECTURE jfq4behv OF jfq4 IS COMPONENT qjq PORT(Ci,A,B:IN STD_LOGIC; S,Co:OUT STD_LOGIC); END COMPONENT; COMPONENT bjq PORT(A,B:IN STD_LOGIC; Y,Co:OUT STD_LOGIC); END COMPONENT; SIGNAL C0,C1,C2:STD_LOGIC; BEGIN u1:bjq PORT MAP(A(0),B(0),Y(0),C0); u2:qjq PORT MAP(C0,A(1),B(1),Y(1),C1); u3:qjq PORT MAP(C1,A(2),B(2),Y(2),C2); u4:qjq PORT MAP(C2,A(3),B(3),Y(3),Co); END ARCHITECTURE jfq4behv; 兄弟加qq 352995783,技术交流。 暮落 2011年12月2日

实验一-加法器的设计与实现讲解

实验项目二:简单计算器设计与实现基本要求: 1. 能够实现加减运算 2. 能够实现乘法运算 扩展要求: 1.能够实现除法运算 一、实验目的 利用原件例化语句完成一个8位加法器的设计。 二、实验环境 Quartus II 开发系统 三、实验内容 1、掌握层次化设计的方法; 2、掌握一位全加器工作原理; 3、掌握用VHDL文本输入法设计电子线路的详细流程; 4、掌握元件例化语句用法; 5、熟悉软硬件设计验证方法。 四、实验过程 设计思想: 8位二进制加法器可以由8个全加器通过级联的方式构成。根据全加器级联的原理,用VHDL设计一个8位二进制数的加法器,可以先设计一个一位全加器,然后利用一位全加器采用元件例化的方式实现加法器。 实验步骤: 1、设计一个全加器 新建工程,建立源文件,输入VHDL设计文件,如下图所示:

完成设计文件输入后,保存文件,对文件进行编译、仿真,以下是仿真结果,如图所示: 由图可知仿真结果正确。 2、元件例化 把VHDL设计文件转为原理图中使用的元件。在文件菜单File中选择Creat/Update选项,单击Create Symbol File for Current File 选项,系统自动生成相应的元件标号。 重复新建文件的操作,选择Block Diagram/Schmatic File 选项,新建一个原理图文件,在添加元件列表中可以看到自动生成的元件,选择full_adder这个元件添加到原理图中,如下图所示:

3、完成顶层图的设计 用生成的元件标号,完成顶层图的设计。这里有两种方法,一种是直接用原理图设计,根据原理图设计工具的使用方法,完成顶层文件的设计,这个方法比较复杂,所以这里选择另一种方法,通过VHDL设计文件。 继续建立源文件,输入VHDL设计文件,如下图所示: 依照上述步骤,保存文件,对文件进行编译、仿真,以下是仿真结果,如图所示:

实验一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位二进制全加器)。

加法器设计介绍

加法器设计介绍 算术逻辑部件主要处理算术运算指令和逻辑运算指令,它的核心单元是加法器。这个加法器是影响算术逻辑部件整体性能的关键部分,因为几乎所有的算术运算和逻辑运算,都要通过它来完成。 加法器结构包括串行进位加法器(Carry Ripple Adder,CRA)、进位跳跃加法器(cany skip Adder,CKA),以及较高速度的进位选择加法器(carry select Adder,CSA)、超前进位加法器(Can 了Look—a}lead Adder,CLA)和并行前缀加法器(Parallel Prcfix Adder)等。 串行进位加法器(CRA) 串行进位加法器是最简单、最基本的加法器结构。串行进位加法器的进位像水波一样依次通过每位,因此也称为“行波进位加法器”。它每次只能进行一位运算,因此速度很慢。 如下图所示 进位跳跃加法器(CKA) 进位跳跃加法器是串行进位加法器的改进结构。它将整个加法器分为几个组,如果某组的所有进位传播信号都为“1”,则将该组的进位输入直接传送到输出,而不需要进行进位运算。这个过程好像进位做了一个跳过该组的动作,因此称为进位跳跃加法器。 为了实现跳跃进位,每组需要增加一个多路选择器和一个与门,这种结构可以提高加法器的运算速度,但是,速度的提高只有在某些特定的情况下才会出现。如下图所示

进位选择加法器(CSA) 进位选择加法器采用资源复制的基本思想,用硬件来换取速度。它将整个加法器分为几 个组,每组有两条路径,进位输入为“O”和“1”的两种情况通过两条路径同时计算。一 旦该组进位输入信号到来,通过多路选择器选择正确的进位输出与和值。如下图所示 由于采用了前瞻的思想,因此进位选择加法器的速度有很大提高。如果整个加法器分为 M 组,则运算延时可由第一组进位延时、M 个多路选择器的延时及一个和产生延时相加得到。进位选择加法器虽然具有较快的速度,但由于它采用了资源复制的方法,因此实现代价 也成倍增加。 一般的进位选择加法器每组具有相同的位数,延迟也与位数成线性关系,称为“线性进 位选择加法器”。如果不把每组设置为相同的位数,而是从低位到高位组内位数逐渐增大, 例如第一组2 位,第二组3 位,等三组4 位,等等。这种逐组位数加长的方法使加法器结构具有亚线性延迟的特性。经过计算,这种结构的延迟与位数的平方根成正比,因此称为“平 方根进位选择加法器”。

一位全加器电路版图设计-11页精选文档

目录 1 绪论 (1) 1.1 设计背景 (1) 1.2 设计目标 (1) 2一位全加器电路原理图编辑 (2) 2.1 一位全加器电路结构 (2) 2.2 一位全加器电路仿真分析波形 (2) 2.3 一位全加器电路的版图绘制 (3) 2.4一位全加器版图电路仿真并分析波形 (3) 2.5 LVS检查匹配 (3) 总结 (4) 参考文献 (4) 附录一:电路原理图网表 (5) 附录二:版图网表 (6)

1 绪论 1.1 设计背景 Tanner集成电路设计软件是由Tanner Research 公司开发的基于Windows 平台的用于集成电路设计的工具软件。早期的集成电路版图编辑器L-Edit在国内已具有很高的知名度。Tanner EDA Tools 也是在L-Edit的基础上建立起来的。整个设计工具总体上可以归纳为电路设计级和版图设计级两大部分,即以S-Edit为核心的集成电路设计、模拟、验证模块和以L-Edit为核心的集成电路版图编辑与自动布图布线模块。Tanner软件包括S-Edit,T-Spice, L-Edit与LVS[1]。 L-Edit Pro是Tanner EDA软件公司所出品的一个IC设计和验证的高性能软件系统模块,具有高效率,交互式等特点,强大而且完善的功能包括从IC设计到输出,以及最后的加工服务,完全可以媲美百万美元级的IC设计软件。L-Edit Pro包含IC设计编辑器(Layout Editor)、自动布线系统(Standard Cell Place & Route)、线上设计规则检查器(DRC)、组件特性提取器(Device Extractor)、设计布局与电路netlist的比较器(LVS)、CMOS Library、Marco Library,这些模块组成了一个完整的IC设计与验证解决方案。L-Edit Pro丰富完善的功能为每个IC设计者和生产商提供了快速、易用、精确的设计系统。 1.2 设计目标 1.用tanner软件中的原理图编辑器S-Edit编辑一位全加器电路原理图 2.用tanner软件中的TSpice对一位全加器的电路进行仿真并分析波形 3.用tanner软件中的版图编辑器L-Edit进行一位全加器电路的版图绘制,并进行DRC验证 4.用tanner软件中的TSpice对一位全加器的版图进行仿真并分析波形 5.用tanner软件的layout-Edit中的lvs功能对一位全加器进行LVS检验观察原理图与版图的匹配程度

超前进位加法器设计报告

存档资料成绩: 华东交通大学理工学院 课程设计报告书 所属课程名称EDA课程设计 题目超前进位加法器设计 分院 专业班级 学号 学生姓名 指导教师 2013 年7月2日

目录 第一章设计内容与要求 (3) 第二章超前进位加法器设计原理 (3) 第三章详细设计流程 (4) 3.1.创建工程文件 (4) 3.2.程序的编译 (5) 3.3.波形的仿真 (7) 第四章设计结果分析 (11) 第五章源程序代码 (12) 第六章心得体会 (14) 第七章参考文献 (15)

第一章设计内容与要求 加法运算是最重要也是最基本的运算,所有的其他基本运算,如减、乘、除运算最终都能归结为加法运算。但因为加法运算存在进位问题,使得某一位计算结果的得出和所有低于他的位相关。因此为了减少进位传输所消耗的时间,提高计算速度,人们设计了多种类型的加法器,如跳跃进位加法器、进位选择加法器、超前进位加法器等。本设计采用的是超前进位加法器。通过Verilog 设计一个超前8位加法器。 要求在Quartus II软件下,利用Verilog编程完成层次式电路设计,电路中的元件可以用Verilog设计也可以用库元件连线构成再封装。8位超前进位加法器,借助EDA工具中的综合器,适配器,时序仿真器和编程器等工具进行相应处理。适配采用Cyclone系列的EP1C6Q240C8。 要求综合出RTL电路,并进行仿真输入波形设计并分析电路输出波形. 试比较并阐述数据类型reg型和wire型的区别。 第二章超前进位加法器设计原理 将n个全加器相连可得n位加法器,但是加法时间较长。解决的方法之一是采用“超前进位产生电路”来同时形成各位进位,从而实现快速加法。超前进位产生电路是根据各位进位的形成条件来实现的 首先对于1位加法器基本位值和与进位输出为1;如果a,b有一个为1,则进位输出等于cin; 令G=ab,P=a+b,则有: Cout==ab+(a+b)cin=G+P?cin 由此可以G和P来写出4位超前进位链如下(设定四位被加数和加数为A

实验二一位8421BCD码加法器的设计

实验二一位8421BCD码加法器的设计 一、实验目的 1. 理解四位加法器7483和四位比较器7485的工作原理及使用 2. 掌握一位8421BCD码加法器的工作过程 3. 进一步熟悉Quartus软件的使用,了解设计的全过程, 二、实验内容 1.采用画原理图的方法设计一位8421BCD码加法器。要求使用四位 加法器7483和四位比较器7485及必要的逻辑门电路。 三、分析过程 7483是四位二进制加法器,其进位规则是逢16进1。而8421BCD 码表示的是十进制数,进位规则是逢10进1。用7483将两个1位BCD码相加时,当和小于等于9时,结果正确;当和大于9时,需加6进行修正。 实验中要求使用7483、7485及必要的逻辑门完成。由于7483通过输出引脚C4 S3 S2 S1 S o输出二进制的和,7485是四位比较器,关键在于如何通过7483及7485的输出判断何时应对结果修正以及如何修正。 由于两个1位十进制数相加时,和的取值范围是0—18,将该范围内各数值对应的二进制数和8421BCD码列表,以便寻找何时应对结果修正以及如何修正

从表中分析可得出如下结论: 当7483输出的二进制数的和为0---9时,即S3 S2 S1 SO W 9时结果正确,不需修正;当和为10-----15时S3 S2 S1 S)> 9时,需加6 修正,此种情况可将7483的输出S3 S2 S1 S0送入7485的输入引脚A3 A2 A1 A0 ,将1001(即卩9)送入7485另一组输入引脚B3 B2 B1 B0, 若7485的输出A> B=1,则说明需加6修正;当和为16、17、18时,结果需加6修正。此种情况7483的输出S3 S2 S1 S)v 9,但C4=1。 综合以上分析,当7483输出的二进制数的和S3 S2 S1 S)> 9或 C4=1时结果需修正。此修正的条件可通过7485的输出A> B和7483 输出的C4通过逻辑或门(OR1获得。当OR1输出为1时需修正,当OR1输出为0时不需修正。(分析出何时应对结果修正)

实验一半加器的设计

实验一半加器设计 一、实验目的 1、了解和学习Quartus II 5.1 软件设计平台。 2、了解EDA的设计过程。 3、通过实例,学习和掌握Quartus II 5.1 平台下的图形输入法 4、学习和掌握半加器的工作和设计原理。 二、实验仪器 PC机,操作系统为Windows2000/XP,本课程所用系统均为WindowsXp下同),Quartus II 5.1 设计平台。 三、实验原理 加法器是构成算术运算器的基本单元,有来自低位的进位将两个1位二进制数相力口,称为半加。实现半加运算的电路叫做半加器。 按照二进制加法运算规则可以列出如表1-1所示的半加器真值表。其中A、B是两个加数,S是相加的和,CO是相加高位的进位。将S、CO和A、B的关系写成逻 辑表达式如下: S 二AB AB = A: B CO 二AB 四、实验步骤 1、启动Quartus II 5.1 :在Windows操作系统下,单击"开始”,选择"程序”,再选择"altera ”选项下的"Quartus II 5.1 ”命令。 2、新建工程:在File菜单中选择New Project Wizard …,弹出对话框如图1-1所示

图1 — 1 在这个对话框中,第一行是需要你指定项目保存的路径,支持含中文字符的路径,第二行是 需要你为这个项目取一个名称,第三行是需要你为这个项目的顶层实体取个名称,如实验不 需要使用芯片,这三个设定好后,点击“ finish ”。(如何使用芯片及各参数设定将在实验 3 中讲到)出现如下界面

在File 菜单中选择New,出现一个对话框如图 1 — 2 图1 — 2 选择 Block Diaqram/Schematic File ,然后点击 "OK ”。 ft QuBEtus TK - £:7>uuiiKn!x mJ 5D 3i E x/tafi/|Krii/ 3/d D ? - -£Bl?i£kl .MFj tils £di L £LM * frajiiri,占■■LfriaAB tiaLi [lain Ukl? □ GS ? 筍而訂 T 旦才?曙涉C ?轿峙fe ? 0 IkCLTJ^ dm AI .TO 'i. SyriE-Hi/i Pltionti^j k /i B I-A J "Vt'-mmy 扎 CiifcdiWkniW 扎 Eiot 人行WM J Nfrlrtfl? p 暑讣1 F4t IN IK TiRii Fl EH. "V |础 1■■中■ | Mb 图1 — 3 4、 保存文件:选菜单File'Save ,在弹出的Save As 对话窗口中,指定存放文件类型、 文件夹和文件名。这一步也可以放在图形设计完成后进行。 5、 原理图设计输入: (1 )元器件符号放置 通过Edit->lnsert Symbol 插入元器件或点击图板左侧的快捷键 卜' I Symbol,或双击图板 3 、新建文件 \ l±

一位全加器的设计

课程设计任务书 学生:袁海专业班级:电子1303班 指导教师:封小钰工作单位:信息工程学院 题目: 一位全加器的设计 初始条件: 计算机、ORCAD软件,L-EDIT软件 要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求) 1、课程设计工作量:1周 2、技术要求: (1)学习ORCAD软件,L-EDIT软件。 (2)设计一个一位全加器电路。 (3)利用ORCAD软件对该电路进行系统设计、电路设计,利用L-EDIT软件进行版图设计,并进行相应的设计、模拟和仿真工作。 3、查阅至少5篇参考文献。按《理工大学课程设计工作规》要求撰写设计报告书。全文用A4纸打印,图纸应符合绘图规。 时间安排: 2016.12.30布置课程设计任务、选题;讲解课程设计具体实施计划与课程设计报告格式的要求;课程设计答疑事项。 2016.12.31-2017.1.2学习ORCAD软件和L-EDIT软件,查阅相关资料,复习所设计容的基本理论知识。 2017.1.3-2017.1.4对一位全加器电路进行设计仿真工作,完成课设报告的撰写。 2017.1.5 提交课程设计报告,进行答辩。

指导教师签名:年月日 系主任(或责任教师)签名:年月日 目录 摘要 .................................................................................................................................. I ABSTRACT ........................................................................................................................ I 1绪论 (1) 1.1集成电路发展现状 (1) 1.2集成电路版图工具L-edit简介 (1) 2全加器原理及一位全加器原理图设计 (1) 2.1一位全加器原理简介 (1) 2.2实现一位全加器功能的原理图设计 (1) 2.2.1一位全加器原理图 (1) 2.2.2基于ORCAD的一位全加器设计 (1) 2.2.3 一位全加器的电路图仿真 (1) 3一位全加器的版图设计 (1) 3.1确定一位全加器版图结构 (1) 3.2源漏共享缩小版图面积 (1) 3.3 版图所需基础器件绘制编辑 (1) 3.3.1 PMOS、NMOS等基础器件编辑 (1) 3.3.2 两输入与非门与异或门的绘制编辑 (1) 3.3.3源漏共享得到版图 (1) 3.4 绘制最终一位全加器版图 (1) 4心得体会 (1) 5参考文献 (1)

加法器的设计与仿真实验报告

加法器的设计与仿真 一、实验内容 1、用逻辑图和VHDL语言设计全加器。 2、利用设计的全加器组成串行加法器。 3、用逻辑图和VHDL语言设计并行加法器。 4、应用MaxplusII软件对全加器和串行加法器进行编译、仿真和模拟。 5、在“MaxplusII软件的基本操作”实验的基础上,能更加熟练的掌握应用MaxplusII软件,从而更形象更深层次的理解全加器和串行加法器。 二、实验平台及实验方法 用VHDL语言编写全加器和串行加法器的程序,运用MaxplusII软件进行仿真,再结合FPGA(即对实验箱的芯片进行编译)进行验证。也可以用原理图进行文本设计,波形设计。逻辑符号图: 真值表: 电路图: 三、实验过程 1.启动MaxplusII软件; 2.新建一个文本编辑文件,输入全加器的VHDL语言; 3.编译。点击file save as,保存文件名为f-adder名称,扩展名为vhd,选择芯片类型为EPF10K20TI144-4,保存并进行编译,

若编译结果出现0 error,0 warnings则说明编译通过。 4.仿真波形。点Max+plus II→Waveform editor,出现波形图的设置界面,然后点Node→Enter Nodes from SNF→list,将输入输出端添加到界面,并设置其周期和输入波形,保存后,点Max+plus II→Simulator,即可仿真出输出的波形。 5.配置芯片。点Max+plus II→Floorplan editor,将Unassigned Nodes & 栏中,电路的输入输出节点标号直接用鼠标“拖到” 想分配的引脚上,Max+plusII→programmer→configuer,然后就可以操作试验箱,观察全加器的工作情况。 四、实验结果 实验步骤: 1、用VHDL语言编写全加器的程序 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY f_adder IS PORT( x,y,cin:IN STD_LOGIC; s,cout:OUT STD_LOGIC ); END ENTITY f_adder; ARCHITECTURE bhv OF f_adder IS BEGIN s<=x XOR y XOR cin; cout<=(x AND y)OR(x AND cin)OR(y AND cin); END ARCHITECTURE bhv; 2、将上述程序保存为文件名为f_adder的文件,点击Maxplus里的compiler进行编译,点击start,如果出现0 error,0 warnings,则编译成功。

四位串行进位加法器设计

集成电路CAD课程设计报告 四位串行加法器设计 1串行进位加法器简介 1.1加法器实现多为二进制数相加的电路,称为加法器。根据进位方式不同,有串行进位加法器和超前进位加法器之分。采用串行进位方式,优点是电路简单,连接方便;缺点是运算速度不高。 原理:把四个全加器(例如两片74LS183)依次级联起来,便可构成四位串行进位加法器。因此四位串行进位加法器的设计可以分以下两步进行:(1)全加器设计;(2)将全加器级联,构成四位串行进位加法器 (a)(b) 图(1)四位串行加法器7483 1.2 图2为四位串行加法器7483逻辑图

图(2)四位串行加法器 2 四位串行进位加法器的设计实现: 2.1 输出级电路设计 与TTL电路兼容驱动10个TTL ①输出高电平时|IoH|<=20uAV oHmin=4.4V ②输出低点平时|IoH|<=20mAV oHmax=0.4V ③输出级充放电时间tr=tf 计算电路如图3所示 ①以15个PF的电容负载代替10个TTL电路来计算tr、tf ②输入V为的前一级的输出被认为是理想的输出,即:

ViL=Vss,ViH=Vdd ③计算电流时,负载为电流负载,有拉电流的灌电流。 图3 (1)CMOS N 管(W/L )N 的计算: 当输入为高电平时(Vi=Vdd ),N 管导通后级TTL 电路有较大的灌电流输入,此时(表示成对称形式) 使方括号中的值和栅电容Cox 及电子迁移率un 为最小值: o u t 00f f [] 200200)()(2V V V V V V C L W I tn i s tn ox N n dsn -----? ?? ??=μm ax 0m in 2 ox SiO ox t C εε= 2 30m ax 0m in - ??? ? ? ?=T T n n μμ

四位二进制加法器课程设计

课题名称与技术要求 课题名称: 四位二进制加法器设计 技术要求: 1)四位二进制加数与被加数输入 2)二位数码管显示 摘要 本设计通过八个开关将A3,A2,A1,A0和B3,B2,B1,B0信号作为加数和被加数输入四位串行进位加法器相加,将输出信号S3,S2,S1,S0和向高位的进位 C3通过译码器Ⅰ译码,再将输出的Y3,Y2,Y1,Y0和X3,X2,X1,X0各自分别通过一个74LS247译码器,最后分别通过数码管BS204实现二位显示。 本设计中译码器Ⅰ由两部分组成,包括五位二进制译码器和八位二进制输出器。信号S3,S2,S1,S0和向高位的进位C3输入五位二进制-脉冲产生器,将得到的n(五位二进制数码对应的十进制数)个脉冲信号输入八位二进制输出器,使电路的后续部分得以执行。 总体论证方案与选择 设计思路:两个四位二进制数的输入可用八个开关实现,这两个二进制数经全加器求和后最多可以是五位二进制数。本题又要求用两个数码管分别显示求和结果的十进制十位和各位,因此需要两个译码器Ⅱ分别译码十位和

个位。综上所述,需要设计一个译码器Ⅰ,能将求和得到的五位二进制数译成八位,其中四位表示这个五位二进制数对应十进制数的十位,另四位表示个位。而译码器Ⅱ有现成的芯片可选用,此处可选74LS247,故设计重点就在译码器Ⅰ。 加法器选择 全加器:能对两个1位二进制数进行相加并考虑低位来的进位,即相当于3个1位二进制数相加,求得和及进位的逻辑电路称为全加器。或:不仅考虑两个一位二进制数相加,而且还考虑来自低位进位数相加的运算电路,称为全加器。 1)串行进位加法器 构成:把n位全加器串联起来,低位全加器的进位输出连接到相邻的高位全加器的进位输入。 优点:电路比较简单。 最大缺点:进位信号是由低位向高位逐级传递的,运算速度慢。 2)超前进位加法器 为了提高运算速度,必须设法减小或消除由于进位信号逐级传递所消耗的时间,于是制成了超前进位加法器。 优点:与串行进位加法器相比,(特别是位数比较大的时候)超前进位加法器的延迟时间大大缩短了。 缺点:电路比较复杂。 综上所述,由于此处位数为4(比较小),出于简单起见,这里选择串行进位加法器。 译码器Ⅱ选择 译码是编码的逆过程,将输入的每个二进制代码赋予的含意“翻译”过来,给出相应的输出信号。译码器是使用比较广泛的器材之一,主要分为:变量译码器和码制译码器,其中二进制译码器、二-十进制译码器和显示译码器三种最典型,使用十分广泛。显示译码器又分为七段译码器和八段

用门电路设计一位的全加器

实验二组合逻辑设计 一、实验目的 1、掌握组合电路设计的具体步骤和方法; 2、巩固门电路的运用和电路搭建能力; 3、掌握功能表的建立与运用; 4、为体验MSI(中规模集成电路)打基础。 二、实验使用的器件和设备 四2输入异或门74LS86 1片 四2输入正与非门74LS00 1片 TDS-4数字系统综合实验平台1台 三、实验内容 1.测试四2输入异或门74LS86 一个异或门的输入和输出之间的逻辑关系。 2.测试四2输人与非门74LS00一个与非门的输入和输出之间的逻辑关系。 3.等价变换Si=Ai○十Bi○十Ci-1 Ci=AiBi +(Ai○十Bi)Ci-1 4.画出变换后的原理图和接线图。 四、实验过程 1、选择实验题目,分析逻辑功能 用门电路设计一位的全加器 一位全加器:在进行两个数的加法运算时不仅要考虑被加数和加数而且要考虑前一位(低位)向本位的进位的一种逻辑器件。 2、根据逻辑功能写出真值表;

3、根据真值表写出逻辑函数表达式; Si=Ai○十Bi○十Ci-1 Ci=AiBi +(Ai○十Bi)Ci-1 4、利用卡诺图法或布尔代数法对逻辑函数表达式进行化简; 不需化简 Si=Ai○十Bi○十Ci-1 Ci=AiBi +(Ai○十Bi)Ci-1 5、将化简的逻辑表达式等价变换,统计出实验所需芯片; Si=Ai○十Bi○十Ci-1 所需芯片: 四2输入异或门74LS86 1片 四2输入正与非门74LS00 1片 6、根据各芯片的引脚图,测试所有需用芯片的功能,画出各芯片的功能表; VCC VCC 74LS86接线图 74LS00接线图74LS 86芯片测试结果 74LS00 芯片测试结果

十六位硬件乘法器电路设计报告

课程名称电子设计自动化 题目十六位硬件乘法器电路 院系班级信息学院11电子信息工程A班姓名 学号 指导老师凌朝东 2013 年 12 月 5 日

题目名称: 十六位硬件乘法器电路 摘要: 设计一个16位硬件乘法器电路.要求2位十进制乘法,能用LED数码管同时显示乘数,被乘数和积的值.本设计利用Quartus II软件为设计平台,通过移位相加的乘法原理:即从被乘数的最低位开始,若为1,则乘数左移后与上一次的和相加;若为0,左移后以全零相加,直至被乘数的最高位。经软件仿真和硬件测试验证后,以达到实验要求。

目录 1.题目名称 (2) 2.摘要 (2) 3.目录 (3) 4.正文 (4) 4.1. 系统设计 (4) 4.1 设计要求 (4) 4.2 系统设计方案 (4) 4.2 单元电路设计 (4) 4.2.1十进制计算模块 (5) 4.2.2 BCD码转二进制模块 (5) 4.2.3 8位右移寄存器模块 (6) 4.2.4 8位加法器模块 (7) 4.2.5 1乘法器multi_1模块 (7) 4.2.6 16位移位寄存器reg_16模块 (8) 4.2.7 16位二进制转BCD码B_BCD模块 (9) 4.2.8 8位乘法器multi_8x8顶层设计 (10) 4.3 软件设计 (12) 4.3.1设计平台和开发工具 (12) 4.3.2程序流程方框图 (13) 4.4 系统测试 (14) 4.1仿真分析 (14) 4.2硬件验证 (15) 5. 结论 (15) 6. 参考文献 (15) 7. 附录 (15)

4.正文 4.1系统设计 1.1设计要求 题目要求设计一个16位硬件乘法器电路.要求2位十进制乘法;能用LED数码管同时显示乘数,被乘数和积的信息.设置一个乘法使能端,控制乘法器的计算和输出. 1.2系统设计方案 此设计问题可分为乘数和被乘数输入控制模块,乘法模块和输出乘积显示模块基本分. 乘数和被乘数的输入模块使输入的十进制数转化为二进制数输入乘法模块,乘法模块利用移位相加的方法将输入的两组二进制数进行相乘,并将16位乘积输出到乘积输出显示模块.显示模块将输入的二进制数按千,百,十,个位分别转化为十进制数输出. 乘数和被乘数的输入可用数据开关K1~K10分别代表数字1,2,…,9,0,用编码器对数据开关K1~K10的电平信号进行编码后输入乘法器进行计算.但此方案所用硬件资源较多,输入繁琐,故不采取. 方案二是利用硬件箱自带16进制码发生器,由对应的键控制输出4位2进制构成的1位16进制码,数的范围是0000~1111,即0H~FH.每按键一次,输出递增1,输出进入目标芯片的4位2进制数将显示在该键对应的数码管. 乘数和被乘数的输入模块将16进制码的A~F码设计成输出为null.使得减少了无用码的输入. 两数相乘的方法很多,可以用移位相加的方法,也可以将乘法器看成计数器,乘积的初始值为零,每一个时钟周期将乘数的值加到积上,同时乘数减一,这样反复执行,直到乘数为零.本设计利用移位相加的方法使得程序大大简化. 系统总体电路组成原理图如下图所示: 4.2单元电路设计

快速加法器的设计与应用

实验报告 课程名称: 数字系统设计实验 II 指导老师:屈民军、唐奕 成绩:_________________ 实验名称: Lab7 快速加法器的设计与应用 实验类型: 设计型 _ 一、 实验要求 实验任务为3.3:采用“进位选择加法”技术设计32位加法器 二、 实验设计思路 “进位选择加法”是通过增大元器件数量、增加硬件面积来提高运算性能。以四位先行加法器为最基本的运算单元,并在每个单元内分别计算出初始进位为‘0’和‘1’时的结果,再通过数据选择器(根据从低一级的进位信号来判断初始进位的值)选择出正确的该四位加法结果,并且将该四位中最高位的进位输出给下一级,作为下一级的初始进位输入。 具体分析:将32位的计算分为八块,0-3位为一块,4-7位一块,依次类推。除去第一块(0-3位的计算),后7块采用进位选择,即每块均计算出初始进位为‘0’或者‘1’时的情况,然后根据低一级的进位输出,来选择正确的结果。 因此,首先要设计4位的先行进位加法器。根据书上的公式,即可实现。这里可以看到,为了提高运算速度,每一个进位的计算都直接依赖于整个加法器的最初输入,而不需要等待相邻低位的进位传递。所以,在verilog 代码中关于c[3],c[2],c[1],c[0]的公式要全部展开,而不是利用前面的进位来计算后面的进位值。 之后,就是模块调用,第一块调用一个4为先行进位加法器,后面七块全部调用两个4为先行进位加法器。 专业:信息与通信工程 姓名:陈博华 学号:3120101830 日期:2014-12-01 地点:教11-400

三、verilog代码部分 整个工程(包括测试文件)的代码有 分别为:1位全加器及其测试文件,4位先行进位加法器及其测试文件,32位快速加法器及其测试文件,和数据选择器。 其中代码 为了充分加快运算速度,,每一位的进位直接依赖于整个加法器的最初输入。 四、仿真结果及其分析 1、四位先行进位加法器的仿真

八位加法器设计实验报告

实验四: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]),.cout(cout4 )); f_adder

相关主题
文本预览
相关文档 最新文档