一位全加器元件例化四位全加器

合集下载

EDA课程设计_一位全加器的设计

EDA课程设计_一位全加器的设计

EDA课程设计一位全加器的设计The design of one bit full adder学校:兰州交通大学学院:电子与信息工程学院班级:姓名:学号:指导老师:成绩:摘要:本设计主要是利用VHDL语言设计一个一位全加器,它由半加器和或门两个模块组成。

两个模块通过顶层元件例化连接到一起。

几个模块组成的整体能够实现全加器的功能,对所给数据,能够准确快速地计算出其结果.具体的该设计利用VHDL语言使用文本输入,新建工程,通过设计输入、编译、仿真完成各种模块设计,然后生成元器件,再根据元件例化完成各部分的整合,从而形成一个完整的全加器,功能上很好地被满足。

关键字:全加器元件例化Abstract:This design primarily uses VHDL language to design the one bit full adder, which is composed of two half adder and a OR gate. The two modules are connected by top Component instance. Finally, the whole of several parts achieve the function of full adder. For given dates, it can calculate its consequence accurately and quickly.In detail, the design uses text input method by VHDL language to create new projects. By designing the input, compile, simulate, it complete various modules design and generate new components. Then it forms a complete one bit full adder by accomplishing the integration of all parts, according to component instance. And the function can be well satisfied.Key word:full adder component instance一.原理(说明)在计算机中2个二进制数之间的加减乘除算术运算都是由若干加法运算实现的.全加器是算术逻辑运算的重要组成部分,对其深入探索研究有重要的意义。

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->simulationTool,在Simulation input中输入待仿真的波形文件即可,如图4所示) ,最后运行波形仿真。

观察分析波形。

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

图4 仿真结果5、封装入库。

封将仿真调试好的半加器封装入库。

打开 h_adder.bdf文件,在File->Create/update 如图5所示。

图5 元件封装入库6、全加器原理图设计。

四位全加器实验Verilog

四位全加器实验Verilog

实验四四位全加器一、实验目的l. 用组合电路设计4位全加器。

2.了解Verilog HDL语言的行为描述的优点。

2、实验原理4位全加器工作原理1)全加器除本位两个数相加外,还要加上从低位来的进位数,称为全加器。

被加数Ai、加数Bi从低位向本位进位Ci-1作为电路的输入,全加和Si与向高位的进位Ci作为电路的输出。

能实现全加运算功能的电路称为全加电路。

全加器的逻辑功能真值表如表中所列。

2)1位全加器一位全加器(FA)的逻辑表达式为:S=A⊕B⊕Cin;Co=AB+BCin+ACin其中A,B为要相加的数,Cin为进位输入;S为和,Co是进位输出;这两幅图略微有差别,但最后的结果是一样的。

3)4位全加器4位全加器可看作4个1位全加器串行构成, 具体连接方法如下图所示:采用Verilog HDL语言设计该4位全加器,通过主模块调用子模块(1位全加器)的方法来实现。

3、实验步骤四、实验连线K1-K4:14-11K5-K8:18-15L5-L8:7-10VIJN:83L4:64KHZ:805、心得体会首先,实现这一段全加器代码并不难,但是由于困惑给的三个时钟输入,没有太懂意思,所以只写了全加器控制LED灯的代码;后来问清楚后,运行全加器代码,有错误,原来是建文件时用的是verilog hdl,我建的是其他类型的;后来还有错,原来是把冒号打成分号;编译成功后,LED不亮,后来发现是硬件老化,换了箱子。

这一部分做好后,我准备把控制声音的加上去,本来准备再加一个模块,可是不能有两个顶层块,就对主模块做了补充,用case命令调用不同的状态,因为时间紧迫,所以代码写得比较简单,没有用经典的分频代码。

这里附一小段,是我在研究分频控制时看懂的网上的经典分频代码,适合乐曲自动播放等高级的实现,仅供分享assign preclk=(divider==16383)?1:0;//divider==16383,preclk=1always @(posedge clk) //基频上升沿触发beginif(preclk) //preclk=1divider=origin;elsedivider=divider+1;endalways @(posedge preclk) //调整占空比beginspeaker=~speaker; //2 分频产生方波信号end这部分实现了分频功能,其中origin+divider=16384=2^14,这个数根据自己的需要而定。

4位全加器

4位全加器

1 设计分析全加器是能进行加数、被加数和低位来的进位信号相加,并根据求和结果给出该位的进位信号的加法电路。

其真值表如表1所示:根据真值表可得出下列表达式:根据以上表达式,可以用数据流方式设计出1位全加器。

要设计的是4位全加器,这里采用串行进位来设计。

先设计4个1位的全加器,然后将低位的进位输出与高位的进位输入相连,将要进行加法运算的两个4位数的每一位分别作为每一个1位全加器的输入,进行加法运算,所有的1位全加器的输出组成一个4位数,即输入的两个4位数之和,最高位的全加器产生的进位输出即两个4位数求和的进位输出。

4位全加器的原理图如图1所示:()()cinb a ab cin b a b a ab abcincin b a bcin a cin ab cout ⊕+=++=+++=()()()()cinb a cin b a cin b a cin ab b a cin b a b a abcin cin b a cin b a cin b a s ⊕⊕=⊕+⊕=+++=+++=图1 4位全加器原理图根据图1所示,可以采用结构化描述方式设计4位全加器。

2 程序设计设计的程序如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY adder1 IS --1位全加器设计PORT(a,b,cin:IN STD_LOGIC;s,cout:OUT STD_LOGIC);END adder1;ARCHITECTURE dataflow OF adder1 IS --用数据流方式设计1位全加器SIGNAL tmp:STD_LOGIC; --用tmp表示a⊕b BEGINtmp<=a XOR b AFTER 10 ns;s<=tmp XOR cin AFTER 10 ns;cout<=(a AND b)OR(tmp AND cin) AFTER 20 ns;END dataflow;LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY adder4 IS --4位全加器设计PORT(a,b:IN STD_LOGIC_VECTOR(3 DOWNTO 0);cin:IN STD_LOGIC;s:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);cout:OUT STD_LOGIC);END adder4;ARCHITECTURE structural OF adder4 IS --用结构化描述风格设计4位全加器COMPONENT adder1PORT(a,b,cin:IN STD_LOGIC;s,cout:OUT STD_LOGIC);END COMPONENT;SIGNAL x,y,z:STD_LOGIC;FOR u1,u2,u3,u4:adder1 USE ENTITY WORK.adder1(dataflow);BEGINu1:adder1 PORT MAP(a(0),b(0),cin,s(0),x);u2:adder1 PORT MAP(a(1),b(1),x,s(1),y);u3:adder1 PORT MAP(a(2),b(2),y,s(2),z);u4:adder1 PORT MAP(a(3),b(3),z,s(3),cout);END structural;3 仿真结果对上面的程序进行仿真,先对1位全加器仿真,结果如图2所示:图2 1位全加器仿真图由图2可以看出,1位全加器的仿真结果与表1相符,说明1位全加器设计成功。

全加器的设计

全加器的设计

实验课程名称:EDA技术与应用实验项目名称4位全加器实验实验成绩实验者专业班级组别同组者 / 实验日期一、实验目的1、加深理解全加器的工作原理及电路组成,加深对EDA技术的掌握。

2、熟悉利用QuartusⅡ的原理图输入方法设计简单组合电路,掌握层次化设计的方法,并通过一个四位全加器的设计把握原理图输入方式设计的详细流程。

二、实验内容用原理图输入法设计4位全加器。

三、实验仪器Quartus II软件四、实验原理一个4位全加器可以由4个1位全加器构成,加法器间的进位可以串行方式实现,即将低位加法器的进位输出cout与相邻的高位加法器的最低进位输入信号cin相接。

1、半加器描述根据半加器真值表可以画出半加器的电路图。

a b so Co0 0 0 00 1 1 01 0 1 01 1 0 1表1 半加器h_adder真值表图1 半加器h_adder电路图2、一位全加器描述一位全加器可以由两个半加器和一个或门连接而成,因而可以根据半加器的电路原理图或真值表写出1位全加器的VHDL描述,1位全加器电路图如图所示:图2 一位全加器电路图3、4位全加器设计描述4位全加器可以看做四个1位全加器级联而成,首先采用基本逻辑门设计一位全加器,而后通过多个1位全加器级联实现4位全加器。

其中,其中cin 表示输入进位位,cout 表示输出进位位,输入A 和B 分别表示加数和被加数。

S 为输出和,其功能可用布尔代数式表示为:S A B Ci =++ii i i o ABC ABC ABC ABC C +++=首先根据一位全加器的布尔代数式应用基本逻辑门设计一位全加器,而后仿真验证一位全加器设计,准确无误后生成元件,供4位全加器设计用。

将4个1位全加器级联构成四位全加器。

五、实验步骤1、为本项工程设计建立文件夹 :文件夹取名为adder ,路径为d:\adder 。

2、建立原理图文件工程和仿真 原理图编辑输入流程如下:1) 打开原理图编辑窗。

实验二 原理图输入法设计-4位加法器

实验二  原理图输入法设计-4位加法器

实验二四位加法器的设计与仿真——原理图输入法一实验目的通过一个4位加法器的设计掌握QuartusII的原理图输入方法及层次化设计的方法。

二原理说明一个4位加法器可以由4个一位全加器构成,加法器间的进位可以串行方式实现,即将低位加法器的进位输出co与相邻的的高位加法器的最低进位输入信号ci相接。

三实验内容与步骤1.按照参考图2.1完成全加器的设计,包括原理图输入、编译、仿真,并将此全加器电路设置成一个硬件符号入库。

图2.1全加器的设计电路操作步骤:(1)建立设计项目(Project):与实验一的操作相同。

(2)新建模块/原理图文件,进入图形编辑器方式。

执行File|New命令,选择“Block Diagram/Schematic File ”(模块/原理图文件)。

(3)选择元件。

在原理图编辑窗中的任何一个位置上双击鼠标的左键将跳出一个元件选择窗。

图2.2元件选择对话框(4)编辑图形文件在元件库找到自己想要的元件,放好后连线并添加输入输出端口,画出完整的电路图后保存并编译通过。

(5)对设计项目设置进行仿真:过程与方法与实验一相同。

(6)将设计项目设置成可调用的元件以便调用基本逻辑元件库参数可设置的强函数元件库基本逻辑元件库中的元件 由此输入所需要的元件名MAX+plus 库 图2.3 一位全加器的图形编辑文件图2.4 将一位全加器模块生成符号入库2.建立一个更高的原理图设计层次,调用以上获得的1位全加器构成4位加法器,并完成编译、综合、仿真。

3.设计文件打包上传。

四实验报告:详细叙述4位加法器的设计流程;给出各层次的原理图及其对应的仿真波形图;将实验原理、实验过程、仿真结果写进实验报告。

五思考题:为了提高加法器的速度,如何改进以上设计的进位方式?六选作内容:用一片74163和一片74138构成一个具有8路顺序脉冲输出的顺序脉冲产生器。

要求在原理图上标明第1路到第8路输出的位置。

4位全加器

4位全加器

设计过程如下:1.构建一个全加器全加器的真值表和逻辑表达式如下:表一全加器真值表逻辑表达式为:S=A⊕B⊕c , C=AB+(A⊕B)c(1)选逻辑门。

双击Logic and Bit Operations。

将Logical Operator模块拖到工作窗口中。

双击模块打开Block Parameters窗口,将Main标签中的Operator选项改为XOR或OR,再拖入一个AND门。

(2)选输入信号。

选用Pulse Generator。

打开Sources面板,拖入三个Pulse Generator 并放置在窗口的左侧。

这三个Pulse Generator作为加法器真值表的三个输入。

双击第一个并将它的周期(period)设定为8秒,相位延迟(phase delay)设定为4秒,Pluse Width设置为50并Pulse Generator重命名为A input,。

双击第二个,将周期设定为4秒,相位设定为2秒,Pluse Width设置为50,重命名为B input,。

双击第三个,将周期设定为2秒,相位设定为1秒,Pluse Width设置为50,重命名为C input。

(3)输入输出的观测。

用Commonly Used Blocks 中的Scope(示波器)模块。

输入分别为A、B、C输出为S、C(4)选好之后,进行连线,连线结果如下图1 全加器逻辑图(5)执行运行用示波器分别观察A、B、C 、S、C如下:A:B:C:S:C:经过比较,各波形与全加器真值表中数值相符合,因此,创建全加器模块。

2. 创建全加器模块选中要创建子系统的模块,选择Edit\CreateSubsystem 菜单,创建全加器模块,命名为Full_Adder,结果如下图图2 全加器模块3.构建一个4位加法器复制为四个全加器,并在Commonly Used Blocks中拖动3个In、2个Out、2个Demux、1个Mux,并连接成四位全加器,如下图所示:图3 4位全加器经赋值检验连接正确,保存命名为Full Adder_4。

logisim1位全加器构成4位加法器的设计过程描述

logisim1位全加器构成4位加法器的设计过程描述

logisim1位全加器构成4位加法器的设计过程描述[logisim1位全加器构成4位加法器的设计过程描述]在数字电路设计中,加法器是最基本也是最常见的电路之一。

一个4位加法器由四个1位全加器组成,每个1位全加器都能实现两个1位二进制数的加法。

本文将以构造一个4位加法器为例,详细介绍1位全加器的设计过程及其在4位加法器中的应用。

1. 1位全加器的功能和原理:1位全加器是一种能够实现三个二进制输入数(a、b和进位cin)加和产生两个输出数(和sum和进位cout)的电路。

其最基本的真值表可以表示为:a b cin sum cout-0 0 0 0 00 0 1 1 00 1 0 1 00 1 1 0 11 0 0 1 01 0 1 0 11 1 0 0 11 1 1 1 1从上表中可以看出,和sum的计算结果是输入数a、b和cin的异或值;而进位cout的计算结果则是输入数a、b和cin的与运算后再与(a、b的异或结果)的或运算的结果。

2. 1位全加器的逻辑门电路设计:根据上述的真值表,我们可以设计出1位全加器的逻辑门电路。

一种常见的实现方式是使用两个异或门、一个与门和一个或门组合而成。

具体接线如下图所示:a -oooob -ooocin -oooosum cout Cin3. 构造4位加法器的步骤:一位全加器是完成二进制的加法运算的基本单元,我们可以通过将四个1位全加器按照特定的连接方式组成一个4位加法器。

下面是构造一个4位加法器的详细步骤:3.1 连接四个1位全加器:将四个1位全加器按照从右至左的顺序依次连接起来,其中每一个全加器的进位输入cin连接到其前一个全加器的进位输出cout。

这样,第一个全加器的进位输入cin可以直接连接到一个外部的输入信号,即加法器的进位输入Cin。

3.2 确定输入连接方式:将待相加的两个4位二进制数a和b的对应位与进位输入Cin分别与第一个全加器的a、b和cin相连。

四位全加器

四位全加器

实验四四位全加器一、实验目的l. 用组合电路设计4位全加器。

2.了解Verilog HDL语言的行为描述的优点。

二、实验原理4位全加器可看作4个1位全加器串行构成, 具体连接方法如下图所示:采用Verilog HDL语言设计该4位全加器,通过主模块调用子模块(1位全加器)的方法来实现。

(S表示输出结果;C表示进位输出)一位全加器的数学表示如下:(S是1位输出结果,C是1位进位输出)S=A⊕B⊕CinC=AB+BCin+ACin一位全加器可以通过两种方式实验,1)门级建模:xor (s11,a,b);and(c1,a,b);xor (s,s11,cin);and(c22,s11,cin);xor(cc,c22,c11);2)数据流方式:assign {s,cc}=a+b+cin;四位全加器:S是4位输出结果,C0、C1、C2、CC为进位输出S[0]=A[0]⊕B[0]⊕CinC0=A[0]B[0]+B[0]Cin+A[0]CinS[1]=A[1]⊕B[1]⊕C0C1=A[1]B[1]+B[1]C0+A[1]C0S[2]=A[2]⊕B[2]⊕C1C2=A[2]B[2]+B[2]C1+A[2]C1S[3]=A[3]⊕B[3]⊕C2C3=A[3]B[3]+B[3]C2+A[3]C2三、实验内容l. 用Verilog HDL语言设计4位全加器(调用子模块的方法)。

2、根据led灯显示的结果,可以通过将相应的控制信号连接至“扬声器”的输入端VIN,使得4位全加器输出不同数值时,扬声器能自动调节,并发出不同的“嘀嘀嗒嗒”的声音。

3. 锁定引脚, 并下载验证之。

四、管教配置其中:clk1k与clk4k用于控制扬声器的驱动脉冲信号。

五、实验连线K1-K4:14-11K5-K8:18-15L5-L8:7-10VIN:83L4:6500KHZ:8KHZ:34KHZ:801024HZ:81六、实验代码:module shiyan4(s,cc,a,b,cin,speaker,clk3,clk8,clk4,clk500); output [3:0] s;output reg speaker;output cc;input [3:0] a,b;input cin;input clk8,clk3,clk4,clk500;wire c0,c1,c2;yiweiadd add0(s[0],c0,a[0],b[0],cin);%子模块调用yiweiadd add1(s[1],c1,a[1],b[1],c0);yiweiadd add2(s[2],c2,a[2],b[2],c1);yiweiadd add3(s[3],cc,a[3],b[3],c2);always @(a or b)begincase(s)4'b0000: speaker=clk3;4'b0001:speaker=clk4;4'b0010:speaker=clk8;4'b0011:speaker=clk500;default:;endcaseendendmodule子模块:module fulladd(s,cc,a,b,cin);output s,cc;input a,b,cin;wire c11,c22,s11;xor (s11,a,b);and(c11,a,b);xor (s,s11,cin);and(c22,s11,cin);xor(cc,c22,c11);endmodule七、实验心得1扬声器的实现有两种方法:一是用多个时钟来表示不同的计算结果;二是用一个时钟,通过分频来实现不同的频率的声音。

4位全加器

4位全加器

实验一用原理图输入法设计4位全加器一、实验目的1)熟悉利用Quartus II 的原理图输入方法设计简单组合电路;2)掌握层次化设计的方法;3)并通过一个4位全加器的设计把握利用EDA软件进行原理图输入方式的电子线路设计的详细流程。

二、实验内容1)完成半加器、全加器和4位全加器的设计,包括原理图输入、编译、综合、适配、仿真、实验板上的硬件测试,并将此全加器电路设计成一个硬件符号入库。

键1、键2、键3(PIO0/1/2)分别接ain、bin、cin;发光管D2、D1(PIO9/8)分别接sum和cout。

2)建立一个更高的层次的原理图设计,利用以上获得的1位全加器构成的4位全加器,并完成编译、综合、适配、仿真和硬件测试。

建议选择电路模式1(附图F-2):键2、键1输入4位加数:键4、键3输入4位被加数:数码6和数码5显示加和:D8显示进位cout。

三、实验仪器1)计算机及操作系统;2)QuartusII软件;3)编程电缆。

四、实验原理一个4位全加器可以由4个一位全加器构成,加法器间的进位可以串行方式实现,即将低位加法器的进位输出 cout 与相邻的高位加法器的最低进位输入信号 cin 相接。

一个1位全加器可以参考教材介绍的方法来完成。

1位全加器示意图如图1所示。

其中,其中CI为输入进位位,CO为输出进位位,输入A和B分别为加数和被加数。

S为输出和,其功能可用布尔代数式表示为:图1 1位全加器i i i i o i i i ABCABC ABC ABC C ABCC B A C B A C B A S +++=+++= 五、实验步骤1、完成半加器和全加器的设计,包括原理图输入、编译、综合、适配、仿真、实验板上的硬件测试,并将此全加器电路设计成一个硬件符号入库。

键1、键2、键3(PIO0/1/2)分别接ain 、bin 、cin ;发光管D2、D1(PIO9/8)分别接sum 和cout 。

2、建立一个更高层次的原理图设计,利用以上获得的1位全加器构成4位全加器,并完成编译、综合、适配、仿真、和硬件测试。

用例化语句设计4位全加器

用例化语句设计4位全加器

实验三用例化语句设计4位全加器一、实验性质:设计性实验二、实验目的:掌握例化语句的使用,使用程序文本和原理图结合方法设计电路。

三、实验内容:首先用原理图方法设计1位半加器,并将其封装成一个元件,然后在此基础上设计1位全加器的顶层文件,半加器作为子元件调用,然后将其封装成一个元件。

在用同样的方法设计一位全加器原件。

设计串行4位加法器的电路,调用1位全加器设计4位加法器的原理图。

仿真正确后进行器件选择和管脚配置,下载程序后验证所设计电路的功能。

实验步骤:首先用原理图方法设计一位全加器,将其封装成一个原件:2.在全加器加器原件基础上设计4位全加器的顶层文件全加器作为子元件调用:3.利用4位全加器的原理图进行仿真,仿真波形如下:4.管脚锁定,新建好工程文件,芯片选择Cyclone Ⅲ下面的EP3C55F484C8系列。

然后锁定引脚:选择Assignments → Assignments Editor命令。

分配FPGA芯片上的管脚。

5.实验管脚接线与编译文件下载,将编译产生的SOF格式配置文件下载进FPGA中:6.管脚接线与编程测试,按分配好的输入与输出的管脚在试验箱上接线,改变输入观察输出的变化:7.实验结果与总结①原理图仿真结果②硬件测试A0,A1,A2,A3,B0,B1,B2,B3接到电平开关L1,L2,L3,L4,L5,L6,L7,L8 的改变高低电平,输出则在七段数码管上显示;进位输出C会在进位时显示。

例如:A3,A2A1,A0输入“1001”,B3,B2,B1,B0输入“1001”,则在数码管显示“2”,进位C 的发光二极管的灯亮起。

③实验当中遇到的困难实验时,由于输入管脚有10个,但是电平开关只有9个,起初是让余下的输入管脚处于悬空状态,但是改变输入的时候,输出结果始终不变,然后饿哦们将悬空的管脚接到试验箱的其他地方,测试成功。

用一位全加器设计一个四位的加法器

用一位全加器设计一个四位的加法器

专业:计算机科学与技术班级:1班姓名:洪露露学号:090308013实验二一.实验目的:用一位全加器设计一个四位的加法器二. 实验内容a.利用MAX+plusⅡ软件,对下图所示的逻辑图进行编译和仿真,并选择器件进行定时分析。

b. 利用一位全加器设计一个四位的加法器三. 实验过程(1) 在实验一做完的全加器的基础上,在原理图编辑窗口中插入所有四个全加器,将它们联接成一个四位的加法器。

(2) 为了使输入输出的线减少,可以使用总线加标号的画法。

(3) 将连接好的原理图保存在全加器的设计目录下。

(4) 将设计项目设置成工程文件(PROJECT),选择目标器件并编译;(5) 保存原理图文件,对其进行编译,仿真,用“模式1”配引脚,下载到实验仪(具体的操作方法同实验一的相同,可以参考实验一的课件)。

(6) 选择波形编辑器文件,从SNF文件中输入设计文件的信号节点,列出并选择需要观察的信号节点;(7) 将仿真时的“end time”选项设为60us,并将标尺的尺度缩小。

(8) 把波形文件存盘,选择、运行仿真器;带有引脚锁定的四位加法器原理图:四位加法器的波形图选用结构图1 , 引脚对应情况实验板位置加法器信号通用目标器件引脚名目标器件EP1K30TC144引脚号键1 a[3..0] PIO3-PIO0 12、10、9、8键2 b[3..0] PIO7-PIO4 19、18、17、13数码管7 s[3..0] PIO27-PIO24 67、65、42、41发光二极管D7 c4 PIO38 83(9)并编程下载,硬件测试逻辑功能四.实验结果分析该实验是用一位全加器设计一个四位加法器,就是当以二进制的形式输入两个四位数进行相加,得出进位和本位,再把进位跟下个本位相加在得出进位,以此类推,最终得出一个相加的结果。

五.遇到问题及解决方法1.在编译原理图的时候会出现很多个错误提示,以至于无法对原理图编译成功。

解决方法:重新打开编辑好的原理图,查看输入输出处a[3..0],b[3..0]h 和s[3..0]这三个地方是否有两个点。

一位全加器元件例化四位全加器

一位全加器元件例化四位全加器

第组西华大学实验报告.西华大学实验报告(计算机类)开课学院及实验室:机械学院实验室实验时间:年月日学生姓名学号成绩学生所在学院电气与电子信息学院年级/专业/班课程名称EDA技术课程代码106004689 实验项目名称四位加法器设计项目代码指导教师项目学分一、实验目的学习加法器的功能与定义,学习VHDL,学习用元件例化方法设计多层次结构的VHDL设计。

二、内容与实验原理内容:编写一个一位全加器和一个四位全加器的VHDL代码,用元件例化方法建立一个四位全加器并编译,仿真。

实验原理:算术运算式数值系统的基本功能,更是计算机中不可缺少的组成单元。

1、全加器全加法是算术运算电路中的基本单元,它们是完成1位二进制相加的一种组合逻辑电路。

一位加法器的真值表见下表;由表3-1中可以看见,这种加法考虑低位来的进位,所以称为全加。

一位全加器就是实现下表中逻辑关系的电路。

表3-1 一位半加器真值表被加数A 加数B 低位进位Ci 和数S 进位Co0 0 0 0 00 1 0 1 01 0 0 1 01 1 0 0 10 0 1 1 00 1 1 0 11 0 1 0 11 1 1 1 12、四位全加器按照串行进位方式,采用四个一位全加器级联可以得到四位加法器。

三、使用环境计算机、Modelsim软件。

四、核心代码及调试过程(1)library IEEE;USE IEEE.std_logic_1164.all;ENTITY full ISPORT (a,b,cin:IN STD_LOGIC;sum,Co: OUT STD_LOGIC);END full ;architecture rtl of full isSIGNAL u0_Co,u0_s,u1_c0,c,d,e,f:STD_LOGIC;BEGINc <= a OR b;d <= a NAND b;u0_Co <= NOT d;u0_s <= c AND d;e <= u0_s OR cin;f <= u0_s NAND cin;u1_c0 <= NOT f;sum <= e and f;Co <= u0_Co OR u1_c0;end rtl;(2)fulllibrary IEEE;USE IEEE.std_logic_1164.all;ENTITY full ISPORT (a,b,cin:IN STD_LOGIC;s,Co: OUT STD_LOGIC);END full ;architecture rtl of full isSIGNAL u0_Co,u0_s,u1_c0,c,d,e,f:STD_LOGIC;BEGINc <= a OR b;d <= a NAND b;u0_Co <= NOT d;u0_s <= c AND d;e <= u0_s OR cin;f <= u0_s NAND cin;u1_c0 <= NOT f;s <= e and f;Co <= u0_Co OR u1_c0;end rtl;--sifullLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY sifull ISPORT( X,Y:IN STD_LOGIC_VECTOR(3 DOWNTO 0);C:IN STD_LOGIC;SUM:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); Co1:OUT STD_LOGIC);END sifull;ARCHITECTURE struct OF sifull ISCOMPONENT fullPORT(a,b,cin:IN STD_LOGIC;s,Co:OUT STD_LOGIC);END COMPONENT;SIGNAL temp1,temp2,temp3,temp4:STD_LOGIC;BEGINU1:full PORT MAP(X(0),Y(0),C,SUM(0),temp1);U2:full PORT MAP(a=>X(1),b=>Y(1),cin=>temp1,s=>SUM(1),Co=>temp2);U3:full PORT MAP(a=>X(2),b=>Y(2),cin=>temp2,s=>SUM(2),Co=>temp3);U4:full PORT MAP(a=>X(3),b=>Y(3),cin=>temp3,s=>SUM(3),Co=>temp4);Co1<=temp4;END struct;1、按照真值表编写一位全加器VHDL代码,并采用元件例化语句编写四位加法器VHDL代码。

四位加法器设计范文

四位加法器设计范文

四位加法器设计范文四位加法器是一种用于执行四位二进制数加法的数字电路。

它可以通过将四个单独的一位加法器相连来实现。

每个一位加法器接收两个输入位和进位位,并输出一个和位和一个进位位。

四位加法器还需要一个额外的输入位作为最高位的进位位,以便处理溢出情况。

1.第一步:设计一位全加器全加器是执行两个输入位和一个进位位的加法操作,并输出一个和位和一个进位位。

它可以使用两个半加器和一个或门来实现。

半加器有两个输入位a和b,以及两个输出位s和c。

其中,s为和位,c为进位位。

半加器的真值表如下:a,b,s,c---,---,---,---0,0,0,00,1,1,01,0,1,01,1,0,1将两个半加器串联起来,可以得到一个全加器。

全加器的真值表如下:a ,b ,c , s , carry---,---,---,---,-------0,0,0,0,00,0,1,1,00,1,0,1,00,1,1,0,11,0,0,1,01,0,1,0,11,1,0,0,11,1,1,1,12.第二步:设计四位加法器四位加法器可以通过将四个全加器相连来实现。

它有四个输入位a3、a2、a1和a0,四个输入位b3、b2、b1和b0,一个输入位carry_in,四个输出位s3、s2、s1和s0,一个输出位carry_out。

其中,s3为最高位的和位,carry_out为溢出位。

首先,将a0和b0送入第一个全加器,得到s0和carry_out_0。

然后,将a1、b1和carry_out_0送入第二个全加器,得到s1和carry_out_1、同样地,将a2、b2和carry_out_1送入第三个全加器,得到s2和carry_out_2、最后,将a3、b3和carry_out_2送入第四个全加器,得到s3和carry_out。

3.第三步:使用多路选择器处理溢出当四位加法器出现溢出时,carry_out为1、为了处理溢出情况,我们可以使用一个多路选择器。

EDA实验报告(四位全加器的实现)

EDA实验报告(四位全加器的实现)

实验一四位全加器的实现一、实验目的1、掌握Quartus9.0图形编辑输入法2、掌握Quartus环境下文件的编译、仿真及下载方法3、了解VHDL语言的设计流程4、掌握quartus环境下VHDL的使用方法二、实验内容1、用图形/原理图法实现4位全加器。

2、用VHDL语言实现4位全加器,必须使用元件例化。

3、仿真并通过。

3、下载到实验板,并验收三、实验步骤1、图形编辑发设计4位加法器(1)新建图形文件,设计一位全加器,逻辑电路图如下图(图1-1)所示。

图1-1(2)将设计好的一位全加器进行例化,操作为file→Create/Update→Create symbol files for currentfile,完成此操作后会在元器件符号表里找到刚刚做好的一位全加器。

(3)再新建一个图形文件,用四个已经做好的一位全加器级联成一个四位全加器,其逻辑原理图如图1-2所示。

编辑好后保存文件,在文件列表里找到该文件,右键→Set as Top-level Entity,将其设置为顶层文件,点击编译按钮就行编译。

图1-2(4)新建波形文件,赋予每个输入端口某种输入信号,保存波形文件,进行功能仿真,观察输出端波形与输入信号关系是否正确。

若不正确,查找问题所在并解决问题;若正确,则进行管脚分配,分配完毕后再编译一次使分配生效,连接DE2开发板到电脑,将文件下载到开发板进行验证。

2、用VHDL语言设计4位加法器(1)新建一个VHDL源文件,文件名为adder1.vhd,使用VHDL实现一位全加器,其VHDL代码如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY adde1r ISPORT(A,B,Ci:IN STD_LOGIC;S,Co:OUT STD_LOGIC);END adder1;ARCHITECTURE qadder OF adder1 ISBEGINPROCESS(A,B,Ci)VARIABLE n1,n2,n3:STD_LOGIC;BEGINn1:=A AND B;n2:=A XOR B;n3:=Ci AND n2;Co<=n3 OR n1;S<=n2 XOR Ci;END PROCESS;END qadder;(2)再新建一个VHDL源文件,命名为adder4.vhd,在这里将adder 一位全加器例化并使用它,做成四位全加器,代码如下:library ieee;use ieee.std_logic_1164.all;entity adder4 isport(A,B:in std_logic_vector(3 downto 0);S:out std_logic_vector(3 downto 0);Co:out std_logic;Ci:in std_logic);end adder4;architecture adder_4 of adder4 iscomponent adderport(A:in std_logic;B:in std_logic;Ci:in std_logic;Co:out std_logic;S:out std_logic);end component;signal c1,c2,c3:std_logic;beginu1:adder port map(A(0),B(0),Ci,c1,S(0));u2:adder port map(A(1),B(1),c1,c2,S(1));u3:adder port map(A(2),B(2),c2,c3,S(2));u4:adder port map(A(3),B(3),c3,Co,S(3));end adder_4;(3)保存文件后将adder4设置为顶层文件并编译,编译通过后按照与图形编辑发一样的仿真、管脚分配方式进行操作,最后下载到开发板验证四、实验现象两种方式实现的四位加法器下载到DE2开发板后都可正常工作,其中使用SW0作为低位的进位,SW4~1作为数据B,SW8~5作为数据A,LDG3~0作为输出的结果,LEDG4作为输出的进位。

EDA(第4讲)第3章 VHDL入门3

EDA(第4讲)第3章 VHDL入门3

13三人表决器的设计——CSE语句课堂练习题 语句课堂练习题
输入变量 输出 a b 0 0 0 0 0 1 1 1 1 0 1 1 0 0 1 1 c 0 1 0 1 0 1 0 1 y 0 0 0 1 0 1 1 1 要求: 根据真值表,写出VHDL程序 bjq a b c y
14
LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; END PROCESS; ENTITY bjq IS END ARCHITECTURE aa ; PORT (a, b, c : IN STD_LOGIC; y : OUT STD_LOGIC); END ENTITY bjq; ARCHITECTURE aa OF bjq is SIGNAL abc : STD_LOGIC_VECTOR(1 DOWNTO 0) ; BEGIN 输入变量 输出 abc <= a & b & c; PROCESS(abc) a b c y BEGIN 0 0 0 0 CASE abc IS
0 0 0
0 1 1 0 0 1 1
1 0 1 0 1 0 1
0 0 1 0 1 1 1
15
; ; ; ;
1 1 1 1
外部端口
内部端口
端口连线: 端口连线:信号
16
或门的VHDL描述:or2a.vhd 描述: 或门的 描述
LIBRARY IEEE ; USE IEEE.STD_LOGIC_1164.ALL; ENTITY or2a IS PORT (a, b :IN STD_LOGIC; c : OUT STD_LOGIC ); END ENTITY or2a; ; ARCHITECTURE one OF or2a IS BEGIN c <= a OR b ; END ARCHITECTURE one ;

EDA实验四 四位全加器设计

EDA实验四 四位全加器设计

物理与电子工程学院实验报告(2020----2021学年第 1学期)课程名称:EDA技术实验实验名称:四位全加器设计专业班级:学号:姓名:实验时间:2020年11月4日(第十周)注:报告内容根据具体实验课程或实验项目的要求确定,一般包括实验目的、实验仪器、原理摘要、数据记录及结果分析等。

如纸张不够请自行加纸。

一、实验目的:通过实验让学生熟悉Quartus Ⅱ的VHDL 文本设计流程全过程,掌握组合逻辑电路的文本输入设计法,通过对设计电路的仿真和硬件验证,让学生进一步了解加法器的功能。

二、实验内容1. 编写1位全加器full_add1的VHDL 源程序,并进行编译。

2. 利用元件例化语句编写4位全加器full_adder4的VHDL 源程序,并进行编 译和仿真。

3. 锁定引脚,建议选择电路模式1:键1输入4位加数,键2输入4位被加数, 键8输入Cin ,数码管5显示相加和,D8显示进位CO 。

4.编程下载与硬件验证。

三、实验条件1、开发软件: QuartusII 9.0。

2、实验设备:GW48-PK2++型 EDA 实验开发系统3、拟用芯片:EP1C6Q240C8N 。

四、实验设计1、系统的原理框图4位全加器可看作4个1位全加器串行构成,具体连接方法如下图所示:图3-1 由1位全加器构成4位全加器连接示意图b sb sb sb sB 3 A 3 B 2 AS 3 C O S 22、VHDL源程序3、管脚锁定信号名实验箱位置锁定目标器件引脚(EP1C6Q240)Cin键8PIN_173a[0...3]键1PIN_233、234、235、236 b[0...3]键2PIN_237、238、239、240co D8PIN_160S[0...3]数码管5PIN_13、14、15、16备注验证设备:GW48-PK2实验开发系统五、实验结果及总结1、系统时序仿真情况2、硬件验证情况3、实验心得通过这次实验我掌握了组合逻辑电路的文本输入法,了解了加法器的功能写到了先通过一位加法器,扩展到四位加法器,在老师的帮助下收获良多。

logisim1位全加器构成4位加法器的设计过程描述 -回复

logisim1位全加器构成4位加法器的设计过程描述 -回复

logisim1位全加器构成4位加法器的设计过程描述-回复设计一个4位加法器的过程主要包括以下步骤:设计1位全加器电路、标准化与调整、连接4位全加器、测试和验证。

1. 设计1位全加器电路首先,我们需要设计一个1位全加器电路。

全加器是将两个输入位和一个进位位相加得出和位和进位位的电路。

全加器电路输入位为A、B和Cin,输出位为S和Cout,其中S是和位,Cout是进位位。

1位全加器的真值表如下:A B Cin S Cout0 0 0 0 00 0 1 1 00 1 0 1 00 1 1 0 11 0 0 1 01 0 1 0 11 1 0 0 11 1 1 1 1根据真值表,我们可以得到以下逻辑方程:S = A xor B xor CinCout = (A and B) or (Cin and (A xor B))其中,xor表示异或运算。

2. 标准化与调整通过使用集成电路、逻辑门和触发器等电子器件,我们可以将1位全加器电路中的逻辑方程实现为电路图。

在实现过程中,需要注意实际电子器件的特性,如输入电平、输出电平和连接方式等。

可以使用逻辑仿真软件(如Logisim)或使用手工逻辑门设计。

3. 连接4位全加器根据4位加法器的特征,我们需要将四个1位全加器相连来实现4位加法。

具体连接方式如下:- 输入的A和B连接到每一个1位全加器的A位;- 进位位Cin连接到第一个1位全加器的Cin输入,并将之后的每个1位全加器的Cin连接到上一个1位全加器的Cout输出;- 第一个1位全加器的Cout输出连接到第二个1位全加器的Cin输入,以此类推,直到最后一个1位全加器的Cout输出。

4. 测试和验证使用逻辑仿真软件或实际搭建电路进行测试和验证。

输入四个4位二进制数并检查输出是否符合预期结果。

如果输出结果与预期一致,则说明电路设计正确,否则需要检查和修正电路中的错误。

总结:通过以上的步骤,我们可以设计一个4位加法器电路。

EDA实验一 1位全加器和四位全加器的设计

EDA实验一 1位全加器和四位全加器的设计

实验一1位全加器和四位全加器的设计一、实验目的1、掌握Quartus Ⅱ6.0软件使用流程。

2、初步掌握VHDL的编程方法。

3、掌握图形层次设计方法;4、掌握全加器原理,能进行多位加法器的设计。

二、实验原理(一位全加器的逻辑表达式为:sum=a^b^Cl;Ch= a&b|(a^b)&Cl.(2)四位加法器加法器是数字系统中的基本逻辑器件。

多位加法器的构成有两种方式:并行进位和串行进位方式。

并行进位加法器设有并行进位产生逻辑,运算速度快;串行进位方式是将全加器级联构成多位加法器。

通常,并行加法器比串行级联加法器占用更多的资源,并且随着位数的增加,相同位数的并行加法器比串行加法器的资源占用差距也会越来越大。

三、实验连线(1)一位全加器1、将EP2C5适配板左下角的JTAG用十芯排线和万用下载区左下角的SOPC JTAG 口连接起来,万用下载区右下角的电源开关拨到SOPC下载的一边2、将JPLED1短路帽右插,JPLED的短路帽全部上插。

3、请将JP103的短路帽全部插上,,打开实验箱电源。

( 2 ) 四位加法器1、将EP2C5适配板左下角的JTAG用十芯排线和万用下载区左下角的SOPC JTAG 口连接起来,万用下载区右下角的电源开关拨到SOPC下载的一边2、JPLED1短路帽右插,JPLED的短路帽全部上插。

3、请将JP103的短路帽全部插上,,打开实验箱电源。

四、实验代码LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY fulladder ISPORT(A,B,C1 :IN STD_LOGIC;CH,SUM : OUT STD_LOGIC);END ENTITY fulladder;ARCHITECTURE ADO OF fulladder isSIGNAL AB :STD_LOGIC;BEGINSUM<=A XOR B XOR C1;AB<=A XOR B;CH<=(A AND B) OR (AB AND C1);END ARCHITECTURE ADO;一位全加器波形如下:图4-1四位加法器波形如下:图4-2五、实验仿真过程SW1,SW2,SW3对应a,b,Cl;D101,D102分别对应sum和Ch,当结果为0时彩色LED灯熄灭,当结果为1时彩灯点亮,改变SW1,SW2,SW3的输入状态,观察实验结果。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第组
西华大学实验报告
.
西华大学实验报告(计算机类)
开课学院及实验室:机械学院实验室实验时间:年月日学生姓名学号成绩
学生所在学院电气与电子信息学院年级/专业/班
课程名称EDA技术课程代码106004689 实验项目名称四位加法器设计项目代码
指导教师项目学分
一、实验目的
学习加法器的功能与定义,学习VHDL,学习用元件例化方法设计多层次结构的VHDL设计。

二、内容与实验原理
内容:编写一个一位全加器和一个四位全加器的VHDL代码,用元件例化方法建立一个四位全加器并编译,仿真。

实验原理:
算术运算式数值系统的基本功能,更是计算机中不可缺少的组成单元。

1、全加器
全加法是算术运算电路中的基本单元,它们是完成1位二进制相加的一种组合逻辑电路。

一位加法器的真值表见下表;由表3-1中可以看见,这种加法考虑低位来的进位,所以称为全加。

一位全加器就是实现下表中逻辑关系的电路。

表3-1 一位半加器真值表
被加数A 加数B 低位进位Ci 和数S 进位Co
0 0 0 0 0
0 1 0 1 0
1 0 0 1 0
1 1 0 0 1
0 0 1 1 0
0 1 1 0 1
1 0 1 0 1
1 1 1 1 1
2、四位全加器
按照串行进位方式,采用四个一位全加器级联可以得到四位加法器。

三、使用环境
计算机、Modelsim软件。

四、核心代码及调试过程
(1)
library IEEE;
USE IEEE.std_logic_1164.all;
ENTITY full IS
PORT (a,b,cin:IN STD_LOGIC;
sum,Co: OUT STD_LOGIC);
END full ;
architecture rtl of full is
SIGNAL u0_Co,u0_s,u1_c0,c,d,e,f:STD_LOGIC;
BEGIN
c <= a OR b;
d <= a NAND b;
u0_Co <= NOT d;
u0_s <= c AND d;
e <= u0_s OR cin;
f <= u0_s NAND cin;
u1_c0 <= NOT f;
sum <= e and f;
Co <= u0_Co OR u1_c0;
end rtl;
(2)
full
library IEEE;
USE IEEE.std_logic_1164.all;
ENTITY full IS
PORT (a,b,cin:IN STD_LOGIC;
s,Co: OUT STD_LOGIC);
END full ;
architecture rtl of full is
SIGNAL u0_Co,u0_s,u1_c0,c,d,e,f:STD_LOGIC;
BEGIN
c <= a OR b;
d <= a NAND b;
u0_Co <= NOT d;
u0_s <= c AND d;
e <= u0_s OR cin;
f <= u0_s NAND cin;
u1_c0 <= NOT f;
s <= e and f;
Co <= u0_Co OR u1_c0;
end rtl;
--sifull
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY sifull IS
PORT( X,Y:IN STD_LOGIC_VECTOR(3 DOWNTO 0);
C:IN STD_LOGIC;
SUM:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); Co1:OUT STD_LOGIC);
END sifull;
ARCHITECTURE struct OF sifull IS
COMPONENT full
PORT(a,b,cin:IN STD_LOGIC;
s,Co:OUT STD_LOGIC);
END COMPONENT;
SIGNAL temp1,temp2,temp3,temp4:STD_LOGIC;
BEGIN
U1:full PORT MAP(X(0),Y(0),C,SUM(0),temp1);
U2:full PORT MAP(a=>X(1),b=>Y(1),cin=>temp1,s=>SUM(1),Co=>temp2);
U3:full PORT MAP(a=>X(2),b=>Y(2),cin=>temp2,s=>SUM(2),Co=>temp3);
U4:full PORT MAP(a=>X(3),b=>Y(3),cin=>temp3,s=>SUM(3),Co=>temp4);
Co1<=temp4;
END struct;
1、按照真值表编写一位全加器VHDL代码,并采用元件例化语句编写四位加法器VHDL代码。

2、利用仿真软件进行编译仿真,给出电路的时序逻辑波形。

3、分析仿真时序波形。

五、实验结果分析及问题讨论
图1
图2。

相关文档
最新文档