实验目的1、学习和掌握半加器全加器的工作原理和设计方法2、熟悉EDA工具Quartus II的使用,能够熟练运用 Vrilog HDL 语言在Quartus II下进展工程开发、调试和仿真3、掌握组合逻辑电路在 Quartus n中的图形输入方法及文本输入方法,掌握层次化设计方法4、掌握半加器、全加器采用不同的描述方法二、实验容1、完成半加器全加器的设计,包括原理图输入,编译、综合、适配、仿真等并将半加器电路设置成一个硬件符号入库2、建立更高层次的原理图设计,利用 1位半加器构成1位全加器,并完成编译、综合、适配、 仿真并硬件测试3、采用图形输入法设计 1位加法器分别采用图形输入和文本输入方法,设计全加器4、实验报告:详细表达 1位全加法器的设计流程,给出各层次的原理图及其对应的仿真波形图, 给出加法器的上时序分析情况,最后给出硬件测试流程和结果三、实验步骤1、建立一个 Project 2、编辑一个VHDL程序,要求用 VHDL构造描述的方法设计一个半加器3、对该VHDL程序进展编译,修改错误4、建立一个波形文件〔根据真值表〕5、对该VHDL程序进展功能仿真和时序仿真四、实验现象任务1 :半加器真值表描述方法代码如下:半加器是只考虑两个加数本身,而不考虑来自低位进位的逻辑电路S= A B+A B CO=AB逻辑图代码如下:LIBRARY IEEE; --行为描述半加器USE IEEE.STD_LOGIC_1164.ALL;ENTITY h_adder ISPORT(a,b:IN STD_LOGIC;so,co:OUT STD_LOGIC);END h_adder;Architecture FH1 OF h_adder ISSignal abc:STD_LOGIC_vector(1 downto 0);Beginabc<=a&b; --并Process(abc) --进程begincase abc isWHEN "00"=>SO<='0';CO<='0';WHEN "01"=>SO<='1';CO<='0';WHEN "10"=>SO<='1';CO<='0';WHEN "11"=>SO<='0';CO<='1';WHEN OTHERS =>NULL;END CASE;END PROCESS;END ARCHITECTURE FH1;结果如下:任务2 :二进制加法运算规那么描述代码如下:LIBRARY IEEE;--行为描述(抽象描述构造体的功能)USE IEEE.STD_LOGIC_1164.ALL;ENTITY h_adder2 is--半力口器PORT(A,B:IN STD_LOGIC;S,C0:OUT STD_LOGIC);END h_adde⑵ARCHITECTURE be_half_adder OF h_adder2 ISBEGINPROCESS(A,B)BEGINIF(A='0' AND B='0') THEN S<='0';C0<='0';ELSIF(A='0' AND B='1') THENS<='1';C0<='0';ELSIF(A='1' AND B='0') THEN S<='1';C0<='0';ELSES<='0';C0<='1';END IF;END PROCESS;END be_half_adder;结果如下:任务3:按逻辑表达式设计代码如下:LIBRARY IEEE;--行为描述半加器〔按逻辑表达式〕USE IEEE.STD_LOGIC_1164.ALL;ENTITY h_adder3 ISPORT(a,b:IN STD_LOGIC;so,co:OUT STD_LOGIC);END h_adder3;Architecture FH1 OF h_adder3 ISBeginso<=aXOR b ;co<=aANDb;END ARCHITECTURE FH1;结果如下:任务4:用根本单元电路与或非描述半加器代码如下:library IEEE;use IEEE.STD_LOGIC_1164.all;entity h_adder4 isport(a:in STD_LOGIC;b:in STD_LOGIC;sum:out STD_LOGIC;co:out STD_LOGIC );end h_adder4;architecture ch4 of h_adder4 issignal c,d:std_logic;beginc<=a or b;d<=a nand b;co<=not d;sum<=c and d;end architecture ch4;结果如下:M Time Bar20 5 例 Pointer 1 0 ns Inh任务5 :构造描述代码如下:--h_adder5LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY h_adder5 ISPORT(A,B:IN STD_LOGIC;co,s: OUT STD_LOGIC);END ENTITY h_adder5;ARCHITECTURE mix OF h_adder5 ISPONENT xor21 ISPORT(i0,i1:IN STD_LOGIC;q:OUT STD_LOGIC);END PONENT;BEGINco<=A AND B;--例化u1: xor21 PORT MAP(i0=>A,i1=>B,q=>s);END ARCHITECTURE mix;--xor21--half_adder半加器,构造描述LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY xor21 ISPORT(i0,i1:IN STD_LOGIC;q: OUT STD_LOGIC);END ENTITY xor21;ARCHITECTURE behav OF xor21 ISBEGINq<=i0 XOR i1;END ARCHITECTURE behav;结果如下:五、实验体会通过这次实验,复习了 VHDL语言的应用,通过五种不同的方式,进展半加器的设计,加深了对半加器的理解,及对五种方法的运用,真值表描述方法、二进制加法运算规那么描述、按逻辑表达式设计、用根本单元电路与或非描述半加器、构造描述。
尤其在构造描述,元件例化局部,有了更好的理解和掌握。