一位全减器
【设计】一位二进制全减器设计

【关键字】设计南昌大学实验报告学生姓名:学号:89 专业班级:电子081实验类型:□ 验证□ 综合设计□ 创新实验日期:实验成绩:实验一1位二进制全减器设计一、实验目的1)熟悉实验设备和软件,掌握Quartus II 的VHDL文本设计及原理图设计全过程;2)熟悉简单组合电路的设计,掌握系统仿真,学会分析硬件尝试结果;二、实验内容与要求1)完成一位二进制全减器的设计,用LED显示输出结果;2)用分层设计的方法设计,顶层为全减器(文本输入法),底层为半减器(原理图输入法)和逻辑门组成;3)自行完成设计与仿真、波形分析、下载与硬件尝试等全过程,验证设计是否正确;三、设计思路/原理图首先根据一位二进制半减器运行原理,列出半减器真值表(如图一所示),并由真值表设计出半减器原理图(如图二),根据全减器真值表(图三)可用两个半减器和一个或门组成一位二进制全减器。
a b so co0 0 0 00 1 1 11 0 1 01 1 0 0图一半减器真值表a b c cout sub0 0 0 0 00 0 1 1 10 1 0 1 10 1 1 1 01 0 0 0 11 0 1 0 01 1 0 0 01 1 1 1 1图三全减器真值表图四由半减器组成的全减器原理图四、实验程序(顶层程序参考EDA教材88页一位二进制全加器顶层文本设计)底层(原理图输入)半加器连接图:定义或门:顶层(文本输入)LIBRARY IEEE; --1位二进制全减器顶层描述USE IEEE.STD_LOGIC_1164.ALL;ENTITY f_m IS --定义f_m实体PORT (ain,bin,cin :IN STD_LOGIC;cout,sub:OUT STD_LOGIC);END ENTITY f_m;ARCHITECTURE one OF f_m IS --描述结构体COMPONENT h_m --定义h_m各引脚PORT ( a,b : IN STD_LOGIC ;co,so : OUT STD_LOGIC) ;END COMPONENT ;COMPONENT or2a --定义or2a各引脚PORT (a,b : IN STD_LOGIC;c : OUT STD_LOGIC) ;END COMPONENT ;SIGNAL d,e,f : STD_LOGIC ; --定义信号d,e,f的类型BEGIN --描述底层各元件的连接u1 : h_m PORT MAP (a=>ain, b=>bin, co=>d, so=>e) ;u2 : h_m PORT MAP (a=>e, b=>cin, co=>f, so=>sub);u3 : or2a PORT MAP (a=>d, b=>f, c=>cout);END ARCHITECTURE one ; --结束结构体描述五、实验步骤1.建立工作库文件夹和编辑设计文件1)在D盘新建立一个文件夹命名为f_m,选择ACEX1K芯片,保存下面的工程文件;2)打开quartus II,选择菜单File→New→Block diagram/schematic file,点击OK,输入半减器原理图,保存为h_m.bdf并选择菜单file→create/update→createVHDL component declaration files for current file2.选择菜单File→New→Block diagram/schematic file,点击OK,定义或门,保存为or2a.bdf并选择菜单file→create/update→create VHDL component declarati on filesfor current file3.选择菜单File→New→VHDL file,点击OK后在打开的界面下输入已设计的程序,保存为f_m.vhd;4.对f_m.vhd进行编译5.创建仿真文件f_m.vwf,将所有引脚拉入仿真文件,设定end time以及ain,bin,cin输入值,进行仿真6.选择assignments→pins 设置各引脚,并编译;7.下载程序,验证实验结果;六、仿真波形分析下图为实验所得的波形图:a b c d e f g h i区间ain bin cin cout sub LED6 LED5 a-b 0 0 0 0 0 灭灭b-c 0 0 1 1 1 亮亮c-d 0 1 0 1 1 亮亮d-e 0 1 1 1 0 亮灭e-f 1 0 0 0 1 灭亮f-g 1 0 1 0 0 灭灭g-h 1 1 0 0 0 灭灭h-i 1 1 1 1 1 亮亮借位情况,cout为本位输出,sub为向上借位的值,由上表可知,仿真结果与理论值(全减器真值表)一致,故仿真成功。
EDA技术与Verilog_HDL(潘松)第四章课后习题答案

图4-27
1位全减器
习
题
x为被减数, y为减数, sub_in为 低位的借 位, diff r为差,su b_out为向 高位的借 位。
x 0 0 0 y 0 0 1 sub_in diffr sub_out 0 1 0 0 1 1 0 1 1
//一个二进制半减器设计进行了阐述
module h_suber(x,y,diff,s_out); input x,y; output diff, s_out; assign diff=x^y; assign s_out=(~x)&y; endmodule
reg [2:0]A ;
wire[7:0]Y ; reg G1 ,G2 ,G3;
decoder3_8 DUT ( G1 ,Y ,G2 ,A ,G3 );
initialቤተ መጻሕፍቲ ባይዱbegin $monitor($time,"A=%d,G1=%b,G2=%b, G3=%b,Y= %d\n",A, G1, G2, G3, Y); end
习
题
4-3 阻塞赋值和非阻塞赋值有何区别? 答:Verilog中,用普通等号“=”作为阻塞式赋值语句的赋值符号,如y=b。 Verilog中,用普通等号“<=”作为非阻塞式赋值语句的赋值符号,如y<=b。 阻塞式赋值的特点是,一旦执行完当前的赋值语句,赋值目标变量y即刻 获得来自等号右侧表达式的计算值。如果在一个块语句中含有多条阻塞式赋值 语句,则当执行到其中某条赋值语句时,其他语句将禁止执行,即如同被阻塞 了一样。 非阻塞式赋值的特点是必须在块语句执行结束时才整体完成赋值操作。非 阻塞的含义可以理解为在执行当前语句时,对于块中的其他语句的执行情况一 律不加限制,不加阻塞。这也可以理解为,在begin_end块中的所有赋值语句都 可以并行运行。
一位全减器

实验一 1位二进制全减器设计一、实验目的1.熟悉Quartes II集成开发软件的使用;2.初步熟悉PH-1V型实验装置的使用;3 . 学习用原理图输入法和文本输入法进行简单的数字电路设计,掌握系统仿真,学会分析硬件测试结果。
二、实验内容与要求1.采用原理图输入法和文本输入法分别实现,分层设计,底层由半减器(也用原理图输入法)和逻辑门组成;2.建立波形文件,并进行系统仿真,用软件验证设计结果;3. 在仿真正确的情况下,对1位二进制半加/减器分别下载到实验箱中做硬件测试三、实验原理及设计思路根据一位二进制全减器的工作原理,可得其真值表为(如下:cin表示低位向本位借位。
cout 表示本位向高位借位)由EDA教程中全加器的顶层设计描述及半加器调用可类比到全减器的设计,可由先对半减器进行描述,然后进行两次调用。
半减器的工作时的逻辑表达式为:so=a XOR b ;co=(NOT a)AND b 四、实验程序(程序来源:EDA技术实验教程)LIBRARY IEEE ; ——或门逻辑描述USE IEEE.STD_LOGIC_1164.ALL;ENTITY or2a ISPORT (a, b :IN STD_LOGIC;c : OUT STD_LOGIC );END ENTITY or2a;ARCHITECTURE one OF or2a ISBEGINc <= a OR b ;END ARCHITECTURE one;LIBRARY IEEE; ——半减器描述USE IEEE.STD_LOGIC_1164.ALL;ENTITY h_suber ISPORT (a, b : IN STD_LOGIC;co, so : OUT STD_LOGIC);END ENTITY h_suber;ARCHITECTURE fh1 OF h_suber isBEGINso <= a xor b ;co <= (not a )AND b ;END ARCHITECTURE fh1;LIBRARY IEEE; ——1位二进制全减器顶层设计描述USE IEEE.STD_LOGIC_1164.ALL;ENTITY f_suber ISPORT (ain,bin,cin : IN STD_LOGIC;cout,sum : OUT STD_LOGIC );END ENTITY f_suber;ARCHITECTURE fd1 OF f_suber ISCOMPONENT h_suber ——调用半减器声明语句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个信号作为内部的连接线BEGINu1 : h_suber PORT MAP(a=>ain,b=>bin,co=>d,so=>e); ——例化语句u2 : h_suber PORT MAP(a=>e, b=>cin,co=>f,so=>sum);u3 : or2a PORT MAP(a=>d, b=>f,c=>cout);END ARCHITECTURE fd1 ;五、实验步骤:1.打开Quartes II软件,建立工程文件,注意工程名要与实体名一致:2、打开QuartusII,选择菜单File->New->VHDL.File,建立vhdl文件,将以上程序输入并进行编译;3、建立波形文件,并进行系统仿真,注意设置仿真结束时间以及添加结点;4、输入信号波形Tools->Options->Waveform Editor,进行功能仿真Tools->Simulator Tools,在Simulator Mode选择Functional,仿真表生成后点击Start开始仿真,完成后点击Report结果如下图所示;5、引脚锁定,及设置流程对各管脚进行分配,将ain分配给53,bin分配给54,cin分配给55。
EDA技术与Verilog_HDL(潘松)第四章课后习题答案

习
题
4-3 阻塞赋值和非阻塞赋值有何区别? 答:Verilog中,用普通等号“=”作为阻塞式赋值语句的赋值符号,如y=b。 Verilog中,用普通等号“<=”作为非阻塞式赋值语句的赋值符号,如y<=b。 阻塞式赋值的特点是,一旦执行完当前的赋值语句,赋值目标变量y即刻 获得来自等号右侧表达式的计算值。如果在一个块语句中含有多条阻塞式赋值 语句,则当执行到其中某条赋值语句时,其他语句将禁止执行,即如同被阻塞 了一样。 非阻塞式赋值的特点是必须在块语句执行结束时才整体完成赋值操作。非 阻塞的含义可以理解为在执行当前语句时,对于块中的其他语句的执行情况一 律不加限制,不加阻塞。这也可以理解为,在begin_end块中的所有赋值语句都 可以并行运行。
4-4 举例说明,为什么使用条件叙述不完整的条件句能导致产生时序模块的综合结果? 答:● 当CLK发生了电平变化,但是从1变到0。这时无论D是否变化,都将启动
过程去执行if语句;但此时CLK=0,无法执行if语句,从而无法执行赋值语句 Q<=D,于是Q只能保持原值不变(这就意味着需要在设计模块中引入存储元件)。 ● 当CLK没有发生任何变化,且CLK一直为0,而敏感信号D发生了变化。这 时也能启动过程,但由于CLK=0,无法执行if语句,从而也就无法执行赋值语句 Q<=D,导致Q只能保持原值(这也意味着需要在设计模块中引入存储元件)。 在以上两种情况中,由于if语句不满足条件,于是将跳过赋值表达式Q<=D, 不执行此赋值表达式而结束if语句和过程.对于这种语言现象,Velilog综合器解 释为,对于不满足条件,跳过赋值语句Q<=D不予执行,即意味着保持Q的原值 不变(保持前一次满足if条件时Q被更新的值)。对于数字电路来说,当输入改变后 试图保持一个值不变,就意味着使用具有存储功能的元件,就是必须引进时序元 件来保存Q中的原值,直到满足if语句的判断条件后才能更新Q中的值,于是便产 生了时序元件。 module LATCH1 (CLK, D, Q); output Q; input CLK, D; reg Q; always @(D or CLK) if(CLK)Q<=D; //当CLK=1时D被锁入Q endmodule
一位全减器课程设计

一位全减器课程设计一、课程目标知识目标:1. 学生能理解全减器的基本原理,掌握全减器的电路组成和功能。
2. 学生能运用所学知识,分析全减器的逻辑功能,解释全减器在实际电路中的应用。
3. 学生了解全减器与其他逻辑门的关系,能正确区分全减器与半减器的区别。
技能目标:1. 学生能运用所学知识,设计简单的全减器电路,并进行模拟验证。
2. 学生能通过实际操作,分析全减器电路的故障现象,并提出解决方案。
3. 学生具备一定的电路图识别能力,能读懂并绘制全减器电路图。
情感态度价值观目标:1. 培养学生对电子电路的兴趣,激发他们探索电子世界的热情。
2. 培养学生的团队协作精神,使他们学会在小组合作中共同解决问题。
3. 培养学生具备良好的学习习惯,树立严谨的科学态度,提高他们的自主学习能力。
课程性质:本课程为电子技术基础课程,以理论教学与实践操作相结合的方式进行。
学生特点:学生具备一定的电子技术基础知识,对全减器有一定了解,但对实际应用和电路设计尚不熟练。
教学要求:结合学生特点,注重理论与实践相结合,注重培养学生的动手操作能力和创新能力。
在教学过程中,关注学生的个体差异,因材施教,使学生在掌握全减器知识的基础上,提高综合运用能力。
通过具体的学习成果,对学生的学习效果进行评估,确保课程目标的达成。
二、教学内容1. 全减器的基本原理:包括全减器的定义、作用及其在数字电路中的应用。
- 教材章节:第三章第三节《全减器与加法器》- 内容:全减器的工作原理、逻辑表达式、真值表。
2. 全减器的电路组成:分析全减器电路的各个部分,探讨其功能及相互关系。
- 教材章节:第三章第四节《全减器电路的设计》- 内容:全减器电路的组成部分,如输入端、输出端、借位端等。
3. 全减器与其他逻辑门的关系:介绍全减器与半减器、与非门等逻辑门的联系与区别。
- 教材章节:第三章第五节《各类逻辑门的特性与应用》- 内容:全减器与其他逻辑门的功能对比,应用场景。
用3线8线译码器74LS138和门电路设计1位二进制全减器

1、用3线—8线译码器74LS138和门电路设计1位二进制全减器,输入为被减数、减数和来自低位的借位;输出为两数之差和向高位的借位信号(74LS138的逻辑框图如图1.1所示)。
CO---向高位的借位; Y---两位数之差;C I ---来自低位的借位;
故:
Y=m 1+m 2+m 4+m 7;CO=m 3+m 5+m 6+m 7; 其逻辑图如下:
Y
2、试用8选1数据选择器74LS152和必要的门电路设计一个路灯控制电路,要求在四个不同的地方都能独立地开灯和关灯,画出逻辑电路图(74LS152的逻辑框图如图2.1所示)。
i i i m D A A A D A A A D Y ∑
==++⋅⋅=7001270120 图2.1 74LS152的逻辑框图
D3
D2D1
D0
Y A0A1
A2
D7
D6D5D4
74L S 152
m m m
m
其中A3,A2,A1,A0分别代表四个不同的地方;Y代表灯;1代表亮,或是开关闭合;0代表灯灭;
Y=A3(m1+m2+m4+m0)
对照着所给的逻辑表达式可得:
D0=D1=D2=D4=A3
D3=D5=D6=D7=0; A2=A2;A1=A1;A0=A0;
故逻辑图如下所示:
A3
Y
1。
组合逻辑电路习题解答

自我检测题1.组合逻辑电路任何时刻的输出信号,与该时刻的输入信号 有关 ,与以前的输入信号 无关 。
2.在组合逻辑电路中,当输入信号改变状态时,输出端可能出现瞬间干扰窄脉冲的现象称为 竞争冒险 。
3.8线—3线优先编码器74LS148的优先编码顺序是7I 、6I 、5I 、…、0I ,输出为2Y 1Y 0Y 。
输入输出均为低电平有效。
当输入7I 6I 5I …0I 为时,输出2Y 1Y 0Y 为 010 。
4.3线—8线译码器74HC138处于译码状态时,当输入A 2A 1A 0=001时,输出07Y ~Y = 。
5.实现将公共数据上的数字信号按要求分配到不同电路中去的电路叫 数据分配器 。
6.根据需要选择一路信号送到公共数据线上的电路叫 数据选择器 。
7.一位数值比较器,输入信号为两个要比较的一位二进制数,用A 、B 表示,输出信号为比较结果:Y (A >B ) 、Y (A =B )和Y (A <B ),则Y (A >B )的逻辑表达式为B A 。
8.能完成两个一位二进制数相加,并考虑到低位进位的器件称为 全加器 。
9.多位加法器采用超前进位的目的是简化电路结构 × 。
(√,× ) 10.组合逻辑电路中的冒险是由于 引起的。
A .电路未达到最简 B .电路有多个输出 C .电路中的时延 D .逻辑门类型不同11.用取样法消除两级与非门电路中可能出现的冒险,以下说法哪一种是正确并优先考虑的A .在输出级加正取样脉冲B .在输入级加正取样脉冲C .在输出级加负取样脉冲D .在输入级加负取样脉冲 12.当二输入与非门输入为 变化时,输出可能有竞争冒险。
A .01→10B .00→10C .10→11D .11→01 13.译码器74HC138的使能端321E E E 取值为 时,处于允许译码状态。
A .011 B .100 C .101 D .010 14.数据分配器和 有着相同的基本电路结构形式。
全减器原理

全减器原理全减器是数字电路中常见的逻辑门电路,它用于实现两个二进制数的减法运算。
在数字电路中,全减器通常由几个半加器和一个附加的输入引脚组成,用来处理借位。
在本文中,我们将详细介绍全减器的原理和工作方式。
首先,我们来看一下全减器的基本结构。
全减器通常由三个输入引脚和两个输出引脚组成,分别是被减数A、减数B、借位输入Borrow In、差值输出Difference和借位输出Borrow Out。
全减器的原理是通过对被减数和减数进行异或运算来得到差值,同时通过对被减数、减数和借位输入进行与非运算来得到借位输出。
这样,我们就可以实现两个二进制数的减法运算。
接下来,我们来详细介绍全减器的工作原理。
首先,被减数A和减数B的每一位都分别与对应的减数B和借位输入进行异或运算,得到差值和借位输出。
然后,将这些差值和借位输出通过半加器进行处理,得到最终的差值和借位输出。
通过这样的过程,我们就可以实现两个二进制数的减法运算。
在实际应用中,全减器常常被用于数字电路中,例如在计算机的算术逻辑单元(ALU)中。
在ALU中,全减器用来处理减法运算,从而实现计算机的加减法功能。
此外,全减器还可以被用于其他数字系统中,例如在数字信号处理器(DSP)和通信系统中。
总的来说,全减器是数字电路中非常重要的逻辑门电路,它可以实现两个二进制数的减法运算。
通过对被减数和减数进行异或和与非运算,全减器可以得到差值和借位输出,从而实现减法运算。
在实际应用中,全减器被广泛应用于数字电路和计算机系统中,发挥着重要的作用。
以上就是关于全减器原理的详细介绍,希望能够对大家有所帮助。
如果对全减器原理还有疑问或者需要进一步了解,欢迎继续阅读相关资料或者咨询专业人士。