一位全减器

合集下载

EDA技术与Verilog_HDL(潘松)第四章课后习题答案

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块中的所有赋值语句都 可以并行运行。

EDA技术与Verilog_HDL(潘松)第四章课后习题答案

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

VerilogHDL复习题与答案

VerilogHDL复习题与答案

VerilogHDL硬件描述语言复习一、1. Verilog HDL 是在哪一年首次被I E E E标准化的答:Verilog HDL是在1995年首次被IEEE标准化的..2. Verilog HDL支持哪三种基本描述方式答:Verilog HDL可采用三种不同方式或混合方式对设计建模..这些方式包括:行为描述方式—使用过程化结构建模;数据流方式—使用连续赋值语句方式建模;结构化方式—使用门和模块实例语句描述建模3. Verilog HDL 是由哪个公司最先开发的答:Verilog HDL是由Gateway Design Automation公司最先开发的4. Verilog HDL中的两类主要数据类型什么答:线网数据类型和寄存器数据类型..线网类型表示构件间的物理连线; 而寄存器类型表示抽象的数据存储元件..5. U D P代表什么答:UDP代表用户定义原语6. 写出两个开关级基本门的名称..答:pmos nmos7.写出两个基本逻辑门的名称..答:and or8.在数据流描述方式中使用什么语句描述一个设计答:设计的数据流行为使用连续赋值语句进行描述9. 采用结构描述方式描述1位全加器..答:module full_adda;b;cin;s;co;input a;b;cin;output s;co;wire S1;T1;T2;T3;xorX1S1;a;b;X2s;S1;cin;andA1T3;a;b;A2T2;b;cin;A3T1;a;cin;orO1co;T1;T2;T3;endmodule10. i n i t i a l语句与always 语句的关键区别是什么答: 1 initial语句:此语句只执行一次..2 always语句:此语句总是循环执行; 或者说此语句重复执行..11.采用数据流方式描述2 - 4译码器..答:'timescale 1ns/nsmodule Decoder2×4A;B;EN;Z;input A;B;EN;output 0:3Z;wire abar;Bbar;assign #1 Abar=~A;assign #1 Bbar=~B;assign #2 Z0=~Abar&Bbar&EN;assign #2 Z1=~Abar&B&EN;assign #2 Z2=~A&Bbar&EN;assign #2 Z3=~A&B&EN;endmodule1 2. 找出下面连续赋值语句的错误..assign Reset=#2 Sel^WriteBus;答:不符合连续赋值语句的语法;应该为:assign #2 Reset = ^ WriteBus;二、1. 下列标识符哪些合法;哪些非法C O u n T; 1_2 M a n y; \**1; R e a l ; \wait; Initial答:COunT合法;1_2 Many非法;\**1;Real 非法;\wait合法;Initial合法2. 在Verilog HDL中是否有布尔类型答:没有3. 如果线网类型变量说明后未赋值;其缺省值为多少答:z4. Verilog HDL 允许没有显式说明的线网类型..如果是这样;怎样决定线网类型答:在Verilog HDL 中;有可能不必声明某种线网类型..在这样的情况下;缺省线网类型为1位线网..5.下面的说明错在哪里i n t e g e r 0:3 R i p p l e;答:应该是integer Ripple 0:36. Verilog HDL有哪几大类数据类型答:verilog hdl 有两大类数据类型:线网类型和寄存器类型..7.Verilog HDL有哪几种寄存器类型答:有五种不同的寄存器类型:reg、integer、time、real、realtime..三、1. 假定长度为6 4个字的存储器; 每个字8位;编写Verilog 代码;按逆序交换存储器的内容..即将第0个字与第6 3个字交换;第1个字与第6 2个字交换;依此类推..答:reg 7:0 mem 63:0;integer i = 0;reg 7:0 temp;whilei < 32begintemp = memi;memi = mem63 - i;mem63 - i = temp;i = i + 1;end2. 假定3 2位总线A d d re s s _ B u s; 编写一个表达式;计算从第11位到第2 0位的归约与非.. 答:~& addressBus20:113. 假定一条总线C o n t ro l _ B u s 1 5 : 0 ;编写赋值语句将总线分为两条总线:A b u s 0 : 9 和B b u s 6 : 1 ..答:Abus = ControlBus9:0;Bbus = ControlBus15:10;4. 编写一个表达式;执行算术移位;将Qparity 中包含的8位有符号数算术移位..答:{Qparity7-i:0; Qparity7:8-i}//左移;i表示移的位数{Qparityi-1:0; Qparity7: i}//右移;i表示移的位数5.使用条件操作符; 编写赋值语句选择N e x t S t a t e的值..如果C u rre n t S t a t e的值为R E S E T; 那么N e x t S t a t e的值为G O;如果C u rre n t S t a t e的值为G O;则N e x t S t a t e 的值为B U S Y;如果C u rre n t S t a t e的值为B U S Y;则N e x t S t a t e的值为R E S E T..答:NextState = CurrentState == RESET Go : CurrentState == Go BUSY : RESET6. 如何从标量变量A;B;C和D中产生总线B u s Q0:3 如何从两条总线B u s A 0 : 3 和B u s Y 2 0 : 1 5 形成新的总线B u s R 1 0 : 1答:BusQ3:0 = {D; C; B; A}BusR10:1 = {BusY20:15; BusA3:0}四、1、Verilig HDL提供的内置基本门分为哪几类1 多输入门、2 多输出门、3 三态门2、多输入门与多输出门的区别在哪里答:多输入门:and nand nor or xor xnor 这些逻辑门只有单个输出; 1个或多个输入第一个端口是输出;其它端口是输入..多输出门有:buf; not 这些门都只有单个输入;一个或多个输出最后的端口是输入端口;其余的所有端口为输出端口..3、Verilog HDL内置的mos开关门有哪些答:cmos; nmos; pmos; rcmos; rnmos; rpmos4、门时延值的组成有哪几个值答:1 上升时延2 下降时延3 关断时延5. Verilig HDL提供的内置基本门分为哪几类答:1 多输入门2 多输出门 3 三态门4 上拉、下拉电阻5 MOS开关6 双向开关6.假定一条总线Control_Bus7:0;编写赋值语句将总线分为两条总线:Abus 0:2和Bbus 4 : 1 ..答:Abus=ControlBus2:0;Bbus=ControlBus15:12;7. 编写一个表达式;执行算术移位;将Qparity 中包含的8位有符号数算术左移3位..答:{Qparity4:0; Qparity7:5}8.要求采用数据流方式设计一个半加器;写出完整的Verilig HDL设计模块..答:module half_addSum; Cout;A; B;input A; B;output Sum; Cout;assign Sum=A^B;assign Cout=A&B;endmodule五、1、操作符有按操作数个数分为3 种类型;其中三目操作符有 2 个操作符和 3 个操作数..2、关键字全是小写;标识符的首字符必须是字母或下划线..3、数字A=5’b011 的表示z ..设B=5’b101x1;C=5’b01x11;则操作运算F=B+C的结果F= 5'bxxxxx ..4、VerilogHDL中保存字符串“Hello”需要 5 位..5、声明reg 7:0data4:0表示5 个8 位的存储单元..6、module testq;clk;crt;output q;reg q;Input clk;crt;always @posedge clkbeginifcrt==1q=~q;endendmodule7、数据流建模的主要语法结构是assign LHS_target = RHS_expression; 语句;采用assign 关键字开始..8、线网赋值延迟可以通过普通赋值延迟; 隐式连续赋值延迟和线网声明延迟三种方法来实现..9、模型引用时;要指定实例名;但硬件和用户定义原语例外..10、语句assign #2:3:4;5:6:7portout;clk;in中的典型关断延迟是 4 ;最大关断延时是7 ..11、VerilogHDL语言可以从四个不同的抽象层次描述电路;这四层是开关级、门级、寄存器传送级、算法级12、结构化建模的主要语句是内置门原语和用户定义原语..六、1.门级建模的类型有:Aor和AND BOR和andCand和or DA、B、C都正确 C2.VerilogHDL使用的是逻辑是:A二值逻辑B四值逻辑C三值逻辑D八种强度 B3.不属于寄存器类型的是:Ainteger BregCwand Dtime C4.VerilogHDL语言中;标识符的作用范围是:A本模块B外部模块C所有模块D全局模块 A5.具有多个输出端口的门是:Aand BorCnor Dnot D七、1、语句内部时延与语句前时延效果是否一样答:不一样2、当时延表达式为负数时;时延值是如何处理得到答:取绝对值3、VeriligHDL有几种循环语句分别采用关键字是什么答:总共有四种循环语句;分别采用forever、repeat、while、for..八、1.VerilogHDL语言和C语言的结构化语句有何不同答:1.Verilog HDL是在C语言的基础上发展起来的;保留了C语言的结构特点..2.C语言由函数组成;Verilog由模块module组成3.C语言通过函数名及其端口变量实现调用;Verilog也通过模块名和端口变量实现调用4.C语言有主函数main;Verilog的个module均等价;但必有一个顶层模块;包含芯片系统与外界的所有I/O信号5.C语言是顺序执行;而Verilog的所有module均并发执行6.C 语言与Verilog语法相似..2、VerilogHDL语言的操作符类型有哪些其数据流建模采用什么来描述设计吗答:算术、逻辑、关系、等价、按位、缩减、移位、拼接、条件数据流建模采用算术与逻辑来描述设计3、VerilogHDL语言的优点是什么答:Verilog HDL语言的优势:由于它在其门级描述的底层;也就是晶体管开关的描述方面比VHDL等各种其它的HDL语言有更强的功能..所以在复杂数字逻辑电路和系统的设计仿真时更有优势;描述的设计思想、电路结构和逻辑关系清晰明了;并且设计语言简练、易学易用;其模块化分层结构在大规模设计时更能体现出优势..因此可以看出;Verilog HDL语言在EDA设计中相对与其他的各种硬件描述语言更有优势..4、下列例子中;b;c;d的最终值分别是什么initialbeginb=1’b1;c=1’b0;#10 b=1’b0;endinitialbegind=#25{b|c};end答:b=1'b0、c=1'b0、d=1'b05.一位全减器模块wsub具有三个一位输入:x;y和z前面的借位;两个一位的输出D差和B借位..计算D和B的逻辑等式如下所示:..D..yx=++..+..xyzzzxyyzx..+=B.+yzyzxx写出VerilogHDL数据流描述的该全减器wsub..答: module wsubD;B;x;y;xinput x;y;z;output D;B;assign D=~x*~y*~z+~x*y*~z+x*~y*~Z+x*y*z;assign B=~x*y+~x*z+y*z;endmodule。

一位全减器课程设计

一位全减器课程设计

一位全减器课程设计一、课程目标知识目标:1. 学生能理解全减器的基本原理,掌握全减器的电路组成和功能。

2. 学生能运用所学知识,分析全减器的逻辑功能,解释全减器在实际电路中的应用。

3. 学生了解全减器与其他逻辑门的关系,能正确区分全减器与半减器的区别。

技能目标:1. 学生能运用所学知识,设计简单的全减器电路,并进行模拟验证。

2. 学生能通过实际操作,分析全减器电路的故障现象,并提出解决方案。

3. 学生具备一定的电路图识别能力,能读懂并绘制全减器电路图。

情感态度价值观目标:1. 培养学生对电子电路的兴趣,激发他们探索电子世界的热情。

2. 培养学生的团队协作精神,使他们学会在小组合作中共同解决问题。

3. 培养学生具备良好的学习习惯,树立严谨的科学态度,提高他们的自主学习能力。

课程性质:本课程为电子技术基础课程,以理论教学与实践操作相结合的方式进行。

学生特点:学生具备一定的电子技术基础知识,对全减器有一定了解,但对实际应用和电路设计尚不熟练。

教学要求:结合学生特点,注重理论与实践相结合,注重培养学生的动手操作能力和创新能力。

在教学过程中,关注学生的个体差异,因材施教,使学生在掌握全减器知识的基础上,提高综合运用能力。

通过具体的学习成果,对学生的学习效果进行评估,确保课程目标的达成。

二、教学内容1. 全减器的基本原理:包括全减器的定义、作用及其在数字电路中的应用。

- 教材章节:第三章第三节《全减器与加法器》- 内容:全减器的工作原理、逻辑表达式、真值表。

2. 全减器的电路组成:分析全减器电路的各个部分,探讨其功能及相互关系。

- 教材章节:第三章第四节《全减器电路的设计》- 内容:全减器电路的组成部分,如输入端、输出端、借位端等。

3. 全减器与其他逻辑门的关系:介绍全减器与半减器、与非门等逻辑门的联系与区别。

- 教材章节:第三章第五节《各类逻辑门的特性与应用》- 内容:全减器与其他逻辑门的功能对比,应用场景。

一位二进制全减器设计

一位二进制全减器设计

实验报告一位二进制全减器设计一、实验目的(1)掌握QuartusII的VHDL原理图设计和文本设计全过程;(2)熟悉简单组合电路的设计,掌握系统仿真,学会分析硬件测试结果。

二、实验内容与要求(1)设计一个二进制全减器,用分层设计方法,顶层为全减器,底层为半减器和逻辑门组成;(2)进行波形仿真,并分析仿真波形图;(3)下载测试全减法器是否正确。

三、设计思路/原理图一位全减器可以由两个半减器和一个或门连接而成,根据半减器真值表对半减器进行描述,再对或门的VHDL描述,而后根据原理图对全减器的VHDL描述。

图1 全减器f_suber电路图四、实验程序(程序来源:_________________________)library ieee; --半减器描述use ieee.std_logic_1164.all;entity h_suber is --定义半减器h_suber实体port(a,b:in std_logic;do,vo:out std_logic);end entity h_suber;architecture fs1 of h_suber issignal abc:std_logic_vector (1 downto 0);beginabc <= a&b ;process (abc)begincase abc iswhen "00" => do<='0';vo<='0';when "01" => do<='1';vo<='1';when "10" => do<='1';vo<='0';when "11" => do<='0';vo<='0';when others => null;end case;end process;end architecture fs1;library ieee; --一位二进制全减器顶层设计描述use ieee.std_logic_1164.all;entity f_suber is --定义全减器f_suber实体port (ain,bin,cin:in std_logic;v,sub:out std_logic);end entity f_suber;architecture fs of f_suber iscomponent h_suber ---调用半减器声明语句port (a,b:in std_logic;do,vo:out std_logic);end component;component or2a --调用或逻辑门声明语句port (m,n:in std_logic;h:out std_logic);end component;signal e,f,g:std_logic; ---定义3个信号作为内部的连接线beginu1:h_suber port map(a=>ain,b=>bin,do=>e,vo=>f); ---例化语句u2:h_suber port map(a=>e,b=>cin,do=>sub,vo=>g);u3:or2a port map(m=>g,n=>f,h=>v);end architecture fs;五、实验步骤1.利用quartusII建立工程在file中打开【】→【】→在【】中选择存放的目录→【】f_suber要与顶层文件中entity f_suber相同→点击next→点击next→选择芯片→next完成;再在file下面点【】→【】→点击ok→编写程序→编译并保存在f_suber文件中(改动程序后,再保存,再编译)→管脚【】→【】→而后对芯片设置,即打开device→点【】→点【】与【】→选如【】与【】→选芯片→确定ok ;重新编译→点下载,后选【】硬件有“JTAG【】”和“ASP 【】手动添加以扩展名为.pof的文件【】”两个接口其一(要看硬件接口),选中【】”→添加【】中的驱动程序→【】→点【】开始下载。

全减器原理

全减器原理

全减器原理全减器是数字电路中常见的逻辑门电路,它用于实现两个二进制数的减法运算。

在数字电路中,全减器通常由几个半加器和一个附加的输入引脚组成,用来处理借位。

在本文中,我们将详细介绍全减器的原理和工作方式。

首先,我们来看一下全减器的基本结构。

全减器通常由三个输入引脚和两个输出引脚组成,分别是被减数A、减数B、借位输入Borrow In、差值输出Difference和借位输出Borrow Out。

全减器的原理是通过对被减数和减数进行异或运算来得到差值,同时通过对被减数、减数和借位输入进行与非运算来得到借位输出。

这样,我们就可以实现两个二进制数的减法运算。

接下来,我们来详细介绍全减器的工作原理。

首先,被减数A和减数B的每一位都分别与对应的减数B和借位输入进行异或运算,得到差值和借位输出。

然后,将这些差值和借位输出通过半加器进行处理,得到最终的差值和借位输出。

通过这样的过程,我们就可以实现两个二进制数的减法运算。

在实际应用中,全减器常常被用于数字电路中,例如在计算机的算术逻辑单元(ALU)中。

在ALU中,全减器用来处理减法运算,从而实现计算机的加减法功能。

此外,全减器还可以被用于其他数字系统中,例如在数字信号处理器(DSP)和通信系统中。

总的来说,全减器是数字电路中非常重要的逻辑门电路,它可以实现两个二进制数的减法运算。

通过对被减数和减数进行异或和与非运算,全减器可以得到差值和借位输出,从而实现减法运算。

在实际应用中,全减器被广泛应用于数字电路和计算机系统中,发挥着重要的作用。

以上就是关于全减器原理的详细介绍,希望能够对大家有所帮助。

如果对全减器原理还有疑问或者需要进一步了解,欢迎继续阅读相关资料或者咨询专业人士。

一位全减器

一位全减器

实验一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_LOGlC_1164. ALL;ENTlTY or2a ISPORT (a, b :IN STD_LOGIC;C : OUT STD_LOGIC );END ENinY or2a;ARCHITECTURE One OF or2a ISBEGlNc <= 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;ARCHlTECTURE fhl OF h.suber isBEGINSO <= a XOr b ;CO <= (not a )AND b ;END ARCHliECTURE fhl;LIBR,⅛RY IEEE; —1位二进制全减器顶层设计描述USE IEEE・STD_LOGIC_1164・ALL;ENTITY f.suber ISPORT (ain,bin,cin : IN STD.LOGIC; COUt t SUm : OUT STD-LOGlC ); END ENTITY f.suber;ARCHITECTURE fdl OF f.suber ISCON(PONENT h.suber ——调用半减器声明语句PORi ( a,b : IN STD.LOGIC;co, So : OUT STD.LOGIC);END COMPONENT ;COMPoNENT or2a ——调用或门声明语句PORT Qb : IN STD.LOGIC;C : OUT STD—LOGIC);END COMPONENT;SlGNAL d,e,f : STD.LOGIC;——泄义3个信号作为内部的连接线BEGlN UI : h-suber PORT NfAP(a=>ain, b=>bin, co=>d, so=>e); 例化语句u2 : h-suber PORT N(AP(a=>e, b=>cin, co=>f, so=>sum);u3 : or2a PORi MAP(a=>d, b=>f, c=>cout);END ARCHITECTURE fdl ;五、实验步骤:1•打开QUatteS II软件•建立工程文件,注意工程名要与实体名一致:T«t.41 n<r ∣Φrγ titsTyPe KeεsaσeInfo: Lonacot ∏>d froa source PLn ,,om r, to dcatmatiDn Pin Info: OIlartU 5 II Clocyic TIDIna AnOlTZCtr σas 5uccc3s541 ・ 0Info: OUatrtU 5 II FuLI ConPiLfttIon v05 □ucce35fu 1・ O CrrOt :3,∖ SyClem (2∣ APmCUJSring (39) /CIiliZ^ ∖√a1πr>3X⅜,∣ *∣[L θs⅛m3 Lmg I For Kttlp, press FLIlrW PrCJjrci ViXar <1: Di rrct <>ry # HABrTop LrVr 1 Ent 1 ∙ γ IpMg. . . ×2、打开QUartUSII,选择菜单File->New->VHDL. F 订e,建立VhdI 文件,将以上程序输入并进行编译:©0H 卧H≡3幣肆癒鄴SS^^SB*仔5[Co...二叵区≡SJ ∏CD (⅛& 电73C S ► ¾Φ∣> ∣⅜∣^》OYiAqo* ⅛⅛∙ 5Clιr -nts 讥 V l ^ I ∣]0∣> 巧 W 0 応Ta⅛sFLo* ICO(IPiI a aH g √* S ► Co(IPlI « Ue≡ιcn V ⅜*∙ ► λiι*lyςiς <<ripιlαtt4n Λ4pψrt ⅛ LCg«1 HOti c<号 Γl⅛⅜∙ Sxnn^ry申Flo” S⅛ttiΛg≡rlewSmnrT √* E- ► X:tter √* ⅛- ► ClaSSIC ' S-∙ A IDA Natl: ®PrQcrS IleVi∏w Status QuarLus II V^SJOn JJ⅛vi Ki an W∙Λ*Dp-l<v<l ≡κtd ty Hsu anily e*i ceiniπg NodcISCt tinig reau2rer ∣<nt≡ OtaI IOCJC el*nenls aIftl PinK"sub" 1 errors r __ C ∣ σarr v EllOl XSLPl⅛÷D I —Ide3、建立波形文件,并进行系统仿真,注意设置仿真结束时间以及添加结点;⅛*8r =:3g7q5rn亠・ PoirrecS-n φ=∖≡Γ∙7∙35 盘Staitp t∙u e 久7∙LOEC15Qm7 ∙45 P U4"B >e ct 篙潼 TOOlS I 〉OPtiOnS I 〉WaVefOrln EdiCo r ∙ j (⅛f f⅛n k ^w TOOIS I 〉SimUlatOrTOOls∙* SinlUlatOrMOde ⅛¾5FUnCtiOnai ・SF ⅛t ^H÷¾ΠΓl ^⅛S tart⅛^e M ∙s⅛^ΠΓl !DT E ⅛∙R e p o5、引脚锁定,及设置流程对各管脚进行分配,将Ain 分配给53, bin 分配给54, Cin 分配给55。

1位的BCD减法器课件

1位的BCD减法器课件

设计一个1位的BCD数减法器具体要求:1)参考有关资料,找出要使用的芯片;2)写出设计过程,并画出原理图;3)使用Verilog HDL进行仿真。

一,设计过程方案一:思路示意图:输入减法器逻辑门电路输出电路设计:1,一位的BCD减法器可以使用74×283加法器来实现。

X-Y=X+Y/+1 = X3X2X1X0 + Y3/Y2/Y1/Y0/ + 1,2,对于其输出结果,大数减小数,其进位为1,小数减大数其进位为0,故符号位需对c-out取反。

3,其具体真值表如下图所示:C0 Y3 Y2 Y1 Y0 FU F3 F2 F1 F0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 1 0 0 1 0 0 0 0 1 0 1 0 0 1 1 0 0 0 1 1 1 0 1 0 0 0 0 1 0 0 1 0 1 0 1 0 0 1 0 1 1 0 1 1 0 0 0 1 1 0 1 0 1 1 1 0 0 1 1 1 1 1 0 0 0 0 1 0 0 0 1 1 0 0 1 0 1 0 0 1 0 1 1 1 1 1 0 0 0 1 0 1 1 1 0 1 0 0 1 0 0 1 1 0 1 1 0 0 1 1 0 1 1 0 0 1 0 1 0 0 0 1 0 1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 1 0 0 1 0 0 1 1 O 1 1 1 0 1 0 0 0 1 1 0 0 0 0 0 1 1 1 1 1 0 0 14,对如上的真值表利用卡诺图等方法进行化解,具体结果如下0'=C Fu0123001233Y Y Y Y C Y Y Y Y F ''+'''=01230123002302302'''+''+''+'=Y Y Y Y C Y Y Y C Y Y Y C Y Y C F0123001230012300123012312301Y Y Y Y C Y Y Y Y C Y Y Y Y C Y Y Y Y C Y Y COY Y Y Y C F '''+'''+''+''+'+''= 00Y F =由此关系,利用74×283与门电路搭建电路图,如图所示; 由于此图规模太大,整体示意图如图下:具体仿真如图所示:第一个为8-6的仿真下面为1-9的仿真图;方案二:思路示意图:电路设计:1,一位的BCD 减法器可以使用74×283加法器来实现。

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

实验一 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 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;
LIBRARY IEEE; ——半减器描述
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY h_suber IS
PORT (a, b : IN STD_LOGIC;
co, so : OUT STD_LOGIC);
END ENTITY h_suber;
ARCHITECTURE fh1 OF h_suber is
BEGIN
so <= a xor b ;
co <= (not a )AND b ;
END ARCHITECTURE fh1;
LIBRARY IEEE; ——1位二进制全减器顶层设计描述
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY f_suber IS
PORT (ain,bin,cin : IN STD_LOGIC;
cout,sum : OUT STD_LOGIC );
END ENTITY f_suber;
ARCHITECTURE fd1 OF f_suber IS
COMPONENT 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个信号作为内部的连接线
BEGIN
u1 : 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。

sum分配给208,Cout分配给206。

选择菜单Assignment->Assignment Editor->Pin 窗口,选择菜单View->Show All Knowm Pin Names 进行引脚设置:
7、用下载线将计算机并口和实验箱上的JTAG口连接起来,接通电源;选择tool->programmer菜单,打开programmer窗口,在Mode中选择JTAG,选择好硬件设置,然后进行下载:
8、原理图输入法只需在第2步中建立Block Diagrame/Schematic File,然后输入上述原理图,选择菜单File->create symbol file for current file项,将其变成元件符号存盘,在做全减器原理图时进行调用:
半减器原理图:
全减器原理图:
六、硬件测试结果
在硬件试验箱上,按照真值表的值给出高、低电平,最后在LED8、LED7观察其亮灭情况,符合高电平亮,低电平灭的规律,表明实验成功。

通过实验结果与真值表相符,实验成功。

七、实验心得
实验前,一定要做好实验预习,写好实验报告,事前写好设计项目的VHDL设计文件.
熟悉实验箱的用法,对实验设计过程的各个步骤要做到心中有数,遇到不理解的地方,一定要向同学或老师问清楚,明确各个具体的操作步骤和详细的过程.熟悉EDA设计的完整流程.仔细思考可能出现和已经出现的问题,独立解决.比如下载出现异常,如何处理.实验的时候出现这种情况,经过检查发现是接口有问题,更换后,能成功的下载和进行硬件测试,得到正确的结果.在此过程,做好引脚设置也是关键.。

相关文档
最新文档