1、EDA 技术与应用实验报告实验名称: ALU 的设计一、 实验目的1、学习包集和元件例化语句的使用。2、学习 AUL 电路的设计。二、 实验内容1、用 VHDL 代码描述逻辑单元、算术单元、选择器单元,要求输入两组二进制数据,每组二进制数据的位数为 8 位。2、利用元件例化语句将设计的三个单元进行连接组合。3、建立一个包含所有原件的包集。4、仿真并利用实验箱验证所设计电路的正确性,将结果用数码管进行显示。三、 实验原理1、AUL 的原理图:2、 AUL 的功能表四、 实验代码library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_
2、unsigned.all;entity alu isport(a,b:in std_logic_vector(7 downto 0);sel:buffer std_logic_vector(3 downto 0);cin,clk:in std_logic;y:out std_logic_vector(7 downto 0);end alu;architecture dataflow of alu issignal arith,logic:std_logic_vector(7 downto 0);begin逻辑单元元算术单元多路复用器a(70)b(70)cinsel(30)y(70)sel(20
3、)variable s:std_logic_vector(3 downto 0);beginif(clkevent and clk=1)thenif s=“1111“thens:=“0000“;elses:=s+1;end if;end if;sel=s;end process;with sel (2 downto 0) selectarith= a when “000“,a+1 when “001“,a-1 when “010“,b when “011“,b+1 when “100“,b-1 when “101“,a+b when “110“,a+b+cin when others;with sel (2 downto 0) selectlogic= not a when “000“,not b when “001“,a and b when “010“,a or b when “011“,a nand b when “100“,a nor b when “101“,a xor b when “110“,not(a xor b) when others;with sel(3) selecty=arith when 0,logic when others;end dataflow;五、 电路仿真结果六、管脚配制