四位二进制乘法器电路的设计
四位二进制全加器设计

四位二进制全加器设计(总3页) -CAL-FENGHAI.-(YICAI)-Company One1-CAL-本页仅作为文档封面,使用请直接删除组合逻辑电路课程设计题目:用74ls283构成四位二进制全加/减器一、设计思路74ls283为四位加法器,而如果希望进行减法运算,则需要将其转化为加法,而之前学到,二进制运算,一个数减去另一个数,即等于加上其补码。
于是得到如下公式,A-B=A+(-B)=A+B’+1。
将其全部视为加法运算,即一个数加上一个正数或者一个负数,这个数为加数B。
那么,需要将加数增添一位符号位,以区分正负。
因为74ls283芯片的引脚为低位向正在运算的数的进位,所以可以将其作为加数的符号位。
当其为正数时,输入为0,即计算A+B。
而当加数为负数时候,使其输入为1,并将B取反,再加上进位1,正好与公式相符。
根据以上原理,应用输入作为符号位,进行4位被加(减)数与5位加(减)数的加法运算。
设A3-A0为被加(减)数,B3-B0为加(减)数,M0为符号位。
当M0为0时表示正数,为1时表示负数。
而当B为负数需要取反时,刚好可以利用异或门的特性来进行,即1异或B等于B’,0异或B等于B即将B的各个数位和M0通过异或门相连,即可以做到负数取反。
二、电路图如图,输入输出ABC都用LED来指示二进制的数值,开关S2控制A的数值,S1控制B的数值以及符号位。
BX1指示灯指示的是输入B经过异或门作用后的电平。
三、由于此电路进行的是加法运算,两个加数一共2的9次方中组合,所以真值表又多又显而易见,此处将不给出。
四、举例演示:(1)5+6=11如图拨动开关,A=5,B=6,可见C为11的二进制表示1011。
(2)7-3=4如图,将M0置为1以表示负数。
BX1表示的是3的反码,在74283中进行了加1的运算即变成了补码,输出结果为0100(2)=4(10)(3)1000+1000=10000由于输出只有四位,而1000+1000会产生进位。
4位二进制全加器设计

任务一4位全加器设计一、实验目的1、掌握运用Quartus II原理图编辑器进行层次电路系统设计的方法。
2、进一步熟悉利用Quartus II进行电路系统设计的一般流程。
3、掌握4位全加器原理图输入设计的基本方法及过程。
二、实验原理(1)设计一位半加器真值表:(2)设计一位全加器真值表:SOn=n n n−1;COn=(A n⨁B n)C n−1+A n B n;(2)设计多位全加器由一位全加器组合成多位全加器。
依次将低位全加器的进位输出端接到高位全加器的进位输入端,由四个一位全加器构成四位全加器。
三、实验过程1、一位半加器的设计(1)电路图①执行“Files”─>“New”─>“Block Diagram/Sch matic”─>“OK”②在编辑窗口输入“与非”门电路原理图,保存电路为“01.bdf”,如图:(2)仿真波形①执行“Files”─>“New”─>“Vector Waveform File”─>“OK”②在波形编辑窗口双击左键,执行“Insert Node or Bus”─> “New Finder”─> “List”─>“》”─>“OK”。
③保存文件为“01.vwf”。
④执行菜单“Processing”─> “Start Simulation”,如图:(3)仿真波形分析:(4)封装之后的图:设“01.bdf”为顶层文件,执行“Files”─>“Create、Update”─> “Create Symbol Files forCurrent Files”,保存。
如图:2、一位全加器(1)电路图①执行“Files”─>“New”─>“Block Diagram/Sch matic”─>“OK”②在编辑窗口输入“与非”门电路原理图,保存电路为“02.bdf”,如图:(2)仿真波形①设“02.bdf”为顶层文件。
设计一个四位二进制计数器

1、要求:设计一个四位二进制计数器,将计数结果由数码管显示,显示结果为十进制数。
数码管选通为低电平有效,段码为高电平有效。
分析:VHDL描述包含五部分:计数器、将四位二进制数拆分成十进制数的个位和十位、二选一的数据选择器、七段译码、数码管选通控制信号en线定义为信号library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity counter3 isPort ( clk:in STD_LOGIC;clk1 : in STD_LOGIC;clr : in STD_LOGIC;en : in STD_LOGIC;co : out STD_LOGIC;scanout:out std_logic_vector(1 downto 0);ledout:out std_logic_vector(6 downto 0)); end counter3;architecture Behavioral of counter3 issignal cnt:std_logic_vector(3 downto 0);signal cnt1:std_logic_vector(3 downto 0);signal cnt2:std_logic_vector(3 downto 0);signal hex:std_logic_vector(3 downto 0);signal scan:std_logic_vector(1 downto 0);signal led:std_logic_vector(6 downto 0); begin--四位二进制计数器process(clk)beginif clk'event and clk='1' thenif clr='1' thencnt<=(others=>'0');co<='0';elsif en='1' thenif cnt="1111" thencnt<="0000";co<='1';elsecnt<=cnt+'1';co<='0';end if;end if;end if;end process;--将二进制数拆分成十进制数的个位和十位cnt1<=cnt when cnt<="1001" elsecnt-"1010";cnt2<="0000" when cnt<="1001" else"0001";--七段数码管选通控制信号产生process(clk1,clr)beginif clr='1' thenscan<="00";elsif clk1'event and clk1='1' thenif scan="00" or scan>="10" thenscan<="01";elsescan<=scan+'1';end if;end if;end process;scanout<=scan;--二选一数据选择器with scan selecthex<=cnt1 when "01",cnt2 when others;ledout<=not led;--七段译码with hex selectled<="1111001" when "0001","0100100" when "0010","0110000" when "0011","0011001" when "0100","0010010" when "0101","0000010" when "0110","1111000" when "0111","0000000" when "1000","0010000" when "1001","0001000" when "1010","0000011" when "1011","1000110" when "1100","0100001" when "1101","0000110" when "1110","0001110" when "1111","1000000" when others;end Behavioral;2、八位二进制计数器结果有两位七段数码管显示library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;---- Uncomment the following library declaration ifinstantiating---- any Xilinx primitives in this code.--library UNISIM;--use UNISIM.VComponents.all;entity counter8 isPort ( clk:in std_logic;clk1 : in STD_LOGIC;clr : in STD_LOGIC;en : in STD_LOGIC;co : out STD_LOGIC;scanout:out std_logic_vector(1 downto 0);ledout : out STD_LOGIC_VECTOR (6 downto 0));end counter8;architecture Behavioral of counter8 issignal cnt:std_logic_vector(7 downto 0);signal hex:std_logic_vector(3 downto 0);signal scan:std_logic_vector(1 downto 0);signal led:std_logic_vector(6 downto 0);beginprocess(clk)beginif clk'event and clk='1' thenif clr='1' thencnt<=(others=>'0');co<='0';elsif en='1' thenif cnt="11111111" thencnt<="00000000";co<='1';elsecnt<=cnt+'1';co<='0';end if;end if;end if;end process;process(clk1,clr)beginif clr='1' thenscan<="00";elsif clk1'event and clk1='1' thenif scan="00" or scan>="10" thenscan<="01";elsescan<=scan+'1';end if;end if;end process;scanout<=scan;with scan selecthex<=cnt(3 downto 0) when "01",cnt(7 downto 4) when others; ledout<=not led;with hex selectled<="1111001" when "0001","0100100" when "0010","0110000" when "0011","0011001" when "0100","0010010" when "0101","0000010" when "0110","1111000" when "0111","0000000" when "1000","0010000" when "1001","0001000" when "1010","0000011" when "1011","1000110" when "1100","0100001" when "1101","0000110" when "1110","0001110" when "1111","1000000" when others;end Behavioral;[文档可能无法思考全面,请浏览后下载,另外祝您生活愉快,工作顺利,万事如意!]。
课程设计--四位二进制加减法器

组合逻辑电路课程设计之四位二进制加减法器摘要:加法器即是产生数的和的装置。
加数和被加数为输入,和数与进位为输出的装置为半加器。
若加数、被加数与低位的进位数为输入,而和数与进位为输出则为全加器。
对于4位的二进制加法,相关的有五个的量:1,被加数A ,2,被加数B ,3,前一位的进位CIN ,4,此位二数相加的和S ,5,此位二数相加产生的进位COUT 。
前三个量为输入量,后两个量为输出量,五个量均为4位.本文采用4位二进制并行加法器原理,选择74LS283,74LS283是4位二进制先行进位加法器,它只用了几级逻辑来形成,并连接几个异或门,由其构成4位二进制加法器/减法器,并用Verilog HDL 进行仿真。
关键字:全加器,异或门,74LS283, verilog,加法/减法功能.总的电路设计 一.硬件电路的设计本电路74LS283为核心元件,其逻辑符号为U174LS283DSUM_410SUM_313SUM_14SUM_21C49B411A412B315A314B22A23B16A15C07全加器由加位输入X 和Y ,还有进位输入CIN,3个输入的范围是0~3,可以用两个输出位表示.S(全加和)和COUT(送给高位的进位).满足下面等式.CINY CIN X Y X COUT CINY X CIN Y X N CI Y X N CI Y X CIN Y X S ⋅+⋅+⋅=⋅⋅+⋅'⋅'+'⋅⋅'+'⋅'⋅=⊕⊕=实现全加器的电路图如下74LS08D本电路还需要4个异或门,要实现加法器和减法器的双重功能,需要有选择功能端,设A为四位二进制被加数,B为二进制被减数.当使能端为0时,电路实现加法运算,当使能端为1时电路实现减法运算.电路原理图如下1.Multisim原理图2.MAX plus2原理图当A口输入为0011,B口输入为0001,使能端为0时.输出为0100.电路图如下当A口输入为0011,B口输入为0001,使能端输入为1时.输出为0010.电路图如下二.软件程序设计Verilog HDL语言程序module b(A,B,C,D,E);input[3:0] A,B;input C;output[3:0] D;output E;assign {E,D}=C?(A+B):(A-B);endmodule当A口输入为0011,B口输入为0001,使能端输入为0,输出为0010,仿真图如下.当A口输入为0011,B口输入为0001,使能端输入为1时.输出为0010.仿真图如下三.总结及心得体会1.通过本次课题设计,自学了一些相关的Verilog语言和MAX+plusII,Multisim 软件的使用方法.2.基本掌握了74LS283的基本原理及使用方法.。
利用全加器电路创建四位二进制加法器

一.课程设计的目的: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 键确定。
四位二进制加减法器课程设计

组合逻辑电路的课程设计之4位二进制全加\全减器(改进版——加法器与减法器的复合器)自动化工程学院摘要:加法器是产生数的和的装置。
加数和被加数为输入,和数与进位为输出的装置为半加器。
若加数、被加数与低位的进位数为输入,而和数与进位为输出则为全加器。
常用作计算机算算术逻辑部件,执行逻辑操作、移位与指指令调用。
在电子学中,加法器是一种数位电路,其可进行数字的加法计算。
在现代的电脑中,加法器存在于算术逻辑单元(ALU)之中。
加法器可以用来表示各种数值,如:BCD、加三码,主要的加法器是以二进制作运算。
简介:对于简单的四位二进制全加器,本文只做简要介绍,因为对于单一的加法器,显然是不够实用的,本文将着重就一种加法器与减法器的组合,即设计电路一个电路实现2个4位符号数(原码表示)的加减运算。
另有一个控制信号select 选择加法运算或减法运算。
若有溢出则产生溢出指示信号。
这种加法器与减法器的复合器将在实际操作中表现的更加的适用。
关键字:四位二进制全加器,四位二进制全减器,原理图Verilog HDL仿真电路的设计:常见的四位二进制全加器,通过两片74 283可以实现全加器的功能,即如下图所示:单一加法器的真值表如图所示:A3 A2 A1 A0 B3 B2 B1 B0 CIN S3 S2 S1 S0 COUT而详细的电路图为:加法器与减法器的复合器:接下来,我将对于这种加法器与减法器的复合器做详细介绍。
对于这种复合器,通过两个片子来实现。
而详细的电路如图所示:通过select作为选择端口,控制select的电平即可对加减复合器的加减功能进行选择,本电路中当当select接高电平是,选择的是加法器,当select接低电平时选择的是减法器,通过改变select的电平,可以轻松实现加法器和减法器的转换。
在用select选择了加法或是减法功能后,在输入端A3A2A1A0与B3B2B1B0分别为两个运算数的二进制代码,以高低电平来代表1或0,实现了目标数的输入。
8421资料

译码器Ⅱ
•右图分别是T4138型3-8线 译码器的逻辑电路图。图 中,A2、A1、A0为输入 端;Y0’、Y1’、Y2’、 Y3’、Y4’、Y5’、Y6’和 Y7’为输出端;S1、S2’、 S3’为使能端,它的作用 是禁止或选通译码器。该 译码器真值表如下表。由 真值表可知,当S1=1, S2’+S3’=0时,无论A2、 A1,和A0取何值,输出 Y0’、…、Y7’中有且仅 有一个为0(低电平有效), 其余都是l。
二进制并行加法器Ⅰ
•串行进位二进制并行加法器是由全 加器级联而成的。其特点是:被加 数和加数的各位能同时并行到达各 位的输入端,而各位全加器的进位 输入则是按照由低位向高位逐级串 行传递的,各进位形成一个进位链。 由于每一位相加的和都与本位进位 输入有关,所以,最高位必须等到 各低位全部相加完成并送来进位信 号之后才能产生运算结果。显然, 这种加法器运算速度较慢,而且位 数越多,速度就越低。
0 0 0 0 0 0 0 0 d 1
译码器Ⅳ
•二-十进制译码器的功能是将4位BCD码的10组代码翻译成10个 十进制数字符号对应的输出信号。下图所示为MSI二-十进制 译码器T331的逻辑电路图。 T331是一个将8421码转换成十进 制数字的译码器,其输入A3~A0为8421码,输出Y0’~Y9’分 别代表十进制数字0-9。该译码器的真值表如下表所示。 •从真值表可知,该译 码器的输出为低电平有 效。其次,对于8421码 中不允许出现的6个非 法码(1010-1111),译码 器输出端Y0~Y9均无 低电平信号产生,即译 码器对这6个非法码拒 绝翻译。这种译码器的 优点是当输入端出现非 法码时,电路不会产生 错误译码。
二进制并行加法器Ⅶ
• 其中,片Ⅰ用来对两个1位十进制数的余3码进行相加,片Ⅱ 用来对相加结果进行修正。修正控制函数为片Ⅰ的进位输出 FC4,当FC4=0时,将片Ⅰ的和输出送至片Ⅱ,并将其加上 二进制数1101(即采用补码实现运算结果减二进制数0011); 当FC4=1时,将片Ⅰ的和输出送至片Ⅱ,并将其加上二进制 数0011,片Ⅱ的和输出即为两余3码相加的和数。 • 例7.4 用4位二进制并行加法器实现4位二进制数乘法器的 逻辑功能。 • 解 设两个无符号4位二进制数X和Y,X=x3x2x1x0, Y=y3y2yly0,则X和Y的乘积Z为一个8位二进制数,可令 Z=Z7Z6Z5Z4Z3Z2ZlZ0。两数相乘求积的过程如下:因为两 个1位二进制数相乘的法则和逻辑“与”运算法则相同,所 以“积”项xiyi(i,j=0,1,2,3)可用两输入与门实现。而 对部分积求和则可用并行加法器实现。由此可知,实现4位 二进制数乘法运算的逻辑电路可由16个两输入与门和3个4位 二进制并行加法器构成。逻辑电路图如下图。
四位乘法器

实验:四位乘法器
一、实验目的及要求
通过本次实验进一步掌握 Modelsim SE 6.5c的仿真调试方法及过程思想,并且进一步学习理解加法器建模的原理及方法,通过仿真达到学习知识的目的。
通过反复阅读有关资料,并能够熟练掌握四位乘法器的程序代码设计及其仿真结果分析。
二、实验程序及仿真结果
描述模块:
module fadd (sum,inta,intb);
input [3:0] inta;
input [3:0] intb;
output[7:0] sum;
assign #5 sum=inta*intb;
endmodule
测试模块:
module T1;
reg[3:0] inta,intb;
//reg cin;
wire[7:0]sum;
fadd a(sum,inta,intb);
//always @(posedge clk)
initial
begin
inta=1;
intb=2;
#10 inta=4;
#10 intb=7;
#10 inta=3;
#10 intb=4;
end
endmodule
三、实验小结
通过这次四位乘法器的实验仿真,让我进一步熟练掌握了Modelsim SE 6.5c仿真环境及其使用方法,总结出在做实验时一定要先将思路理清楚,并画出图形来帮助理解。
最终将实验所得结果同理论分析相比较对知识的掌握力。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
四位二进制乘法器电路的设计
一、前言
在数字电路设计中,四位二进制乘法器是一个常见的电路设计,它可
以将两个四位的二进制数相乘,并输出八位的结果。
本文将详细介绍
四位二进制乘法器电路的设计原理和实现方法。
二、四位二进制乘法器电路的原理
1. 乘法运算原理
在十进制数中,两个数相乘的运算过程是将其中一个数每一位与另一
个数相乘,并将每次得到的结果相加。
例如,计算12×13时,先用
12分别与3和1相乘,得到36和12,然后将这两个结果相加即可得到156。
在二进制数中也是同样的道理。
例如,计算1010(10)×1101(13)时,先用1010分别与1、0、1、1相乘,得到1010、0000、1010、1010四个结果;然后将这四个结果左移0、4、8、12位(即对应不
同位置上的十进制值),再相加即可得到11100110(230)。
2. 四位二进制乘法器电路原理
根据以上运算原理,在数字电路中可以设计出四位二进制乘法器电路。
该电路由以下几部分组成:
① 两个四位二进制数输入端:分别为被乘数和乘数,每个输入端有四
个二进制位。
② 乘法器:该电路的核心部分,用于实现两个四位二进制数的相乘。
具体实现方式为将被乘数的每一位与乘数相乘,并将结果存储在一个
8×4的矩阵中。
其中,矩阵的第i行第j列表示被乘数第i位和乘数第
j位相乘的结果(i和j均从0开始计数)。
例如,当被乘数为1010、乘数为1101时,该矩阵如下所示:
1 0 1 0
---------
1 | 1 0 1 0
1 | 0 0 0
0 | 1 0
1 | 1
其中,第一列表示被乘数的最低位与乘数相乘的结果,第二列表示被
乘数次低位与乘数相乘的结果,以此类推。
③ 加法器:用于将矩阵中每一行的结果相加,并输出一个八位二进制结果。
具体实现方式为将矩阵中同一行的四个二进制数字依次左移不同位置后相加,并将得到的八位结果输出。
例如,在上述示例中,对于第一行来说,需要将1010左移0、4、8、12位,分别得到10100000、00000000、00000000和00000000,然后将这四个数相加,得到10100110(166),即为最终结果。
三、四位二进制乘法器电路的实现
1. 乘法器的实现
在数字电路中,乘法器可以使用门电路(如与门、或门等)或触发器等基本元件组合实现。
以下是一种常见的基于与门和触发器的乘法器电路实现方式:
① 将被乘数输入端和乘数输入端分别接入两个4×1的选择器中,并将选择器的控制端接入时钟信号。
② 将两个选择器输出端分别接入一个4×4的与门矩阵中。
其中,矩阵第i行第j列表示被乘数第i位和乘数第j位相乘,并输出结果到一个D触发器中(i和j均从0开始计数)。
③ 将四个D触发器输出端分别接入一个8×1的选择器中,并将选择
器的控制端接入时钟信号。
④ 将选择器输出端连接至八位加法器中,以完成最终结果计算。
2. 加法器的实现
在数字电路中,加法器可以使用半加器、全加器等基本元件组合实现。
以下是一种常见的基于全加器的八位加法器电路实现方式:
① 将两个四位二进制数分别输入至两个四位二进制加法器中,得到一
个四位二进制结果和一个进位信号。
② 将前一个四位二进制结果和后一个四位二进制数的最低位相加,并
将得到的结果与前一步计算的进位信号相加,得到最终的八位二进制
结果和一个进位信号。
③ 将后一个四位二进制数的次低位与第一步计算出的结果相加,并将
得到的结果与第二步计算出的进位信号相加,得到最终八位二进制结
果和一个新的进位信号。
④ 重复以上操作,直至将后一个四位二进制数中每一项都与前一步计
算出来的结果相加。
最终得到八个完整的八位二进制数字,并输出到
外部电路中。
四、总结
本文详细介绍了四位二进制乘法器电路的设计原理和实现方法。
乘法器部分使用了基于与门和触发器组合实现方式,而加法器部分则使用了基于全加器组合实现方式。
这种设计方法不仅可以用于数字电路教学或科研等领域,还可以应用于各种数字系统中。