2、是很耗费资源的,因此在实际的设计和相关系统的开发中需要注意资源的利用率和进位速度等两方面的问题。多位加法器的构成有两种方式:并行进位和串行进位方式。【实验步骤】1.用VHDL语言或图形输入法设计一个八位全加器;2.对最后的顶层文件进行编译、仿真;【实验结果】1.程序如下LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY ADDER8 IS PORT(CIN:IN STD_LOGIC; A,B:I
3、N STD_LOGIC_VECTOR(7 DOWNTO 0); S:OUT STD_LOGIC_VECTOR(7 DOWNTO 0); COUT:OUT STD_LOGIC); END ADDER8; ARCHITECTURE behav OF ADDER8 IS SIGNAL SINT,AA,BB:STD_LOGIC_VECTOR(8 DOWNTO 0); BEGIN AA<='0'&A;BB<='0'&B;SINT<=AA+BB+CIN; S<=SINT(7 DOWNTO 0); COUT<=SINT(
4、8); END behav; 1.仿真波形【实验小结】通过本次实验,学习了8位硬件加法器的设计,进一步了解使用VHDL表达和设计电路的方法,学会了QuartusII的基本使用。实验二动态数码管显示【实验目的】学习硬件扫描显示电路的设计。【实验内容】本实验的内容是建立数码管动态扫描显示,具体内容如下:1.在试验箱上完成LED数码管的动态显示。2.放慢扫描速度演示动态显示的原理过程。【实验原理】为了减少8位显示信号的接口连接线,实验箱中的数码显示采用扫描显示工作模式。即8位数码管的七段译码输入(a,b,c,d,
5、e,f,g)是并联在一起的,而每一个数码管是通过一个位选择sel[2..0]来选定的。sel与数码管之间是一3-8译码的关系,即sel为“000”时,选中第一个数码管,sel为“111”时,选中第八个数码【实验步骤】1.设计程序2.仿真3.实现功能【实验结果】1.程序如下library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity scan_led is port(clk:in std_logic; sg
6、:out std_logic_vector(6 downto 0); bt:out std_logic_vector(7 downto 0)); end; architecture one of scan_led is signal cnt8:std_logic_vector(2 downto 0); signal a: integer range 0 to 15; begin p1:process(cnt8) begin case cnt8 is when"000"=>bt<="000
8、=15; when others=>null; end case; end process p1; p2:process(clk) begin if clk'event and clk='1' then cnt8<= cnt8+1; end if; end process p2; p3:process(a) begin case a is when 0=>sg<="0111111"; wh