EDA实验报告实验二:ALU的设计.doc
文本预览下载声明
实验二:基本组合电路设计
ALU的设计 实验报告
预习内容
结合教材中的介绍熟悉Quartus Ⅱ软件的使用及设计流程;
ALU设计原理;
对应的VHDL 代码源程序。
二、实验目的
图形设计方法
二、实验目的
掌握文本输入设计方法;
熟悉QuartusⅡ软件的使用及设计流程;
掌握ALU原理,能进行ALU的设计。
三、实验器材
实验器材
PC机一台、EDA教学实验系统一台、下载电缆一根(已接好)、导线若干
四、实验要求
1、用文本输入法设计一个ALU;
2、用波形编辑工具生成一个ALU的测试向量(即测试数据);
3、完成ALU的时序仿真。
五、实验原理与内容
1、原理:
ALU是数字系统中的基本逻辑器件,其可以执行算术运算和逻辑运算操作的电路。该电路用信号sel的最高位来选择输出哪一种运算结果,sel最高位选择输出哪一种运算。
实验表明,ALU可用多种方式实现,因此本实验中的ALU可采用 WITH/SELECT语句方法生成。
2、实现框图:
用 WITH/SELECT语句方法实现的 ALU框图如图1-1所示:
图1-1
六、实验步骤
用文本输入法设计一个ALU
对最后的顶层文件进行编译、仿真和下载;
七、实验报告
1、写出实验源程序,并附上综合结果和仿真波形;
LIBRARY ieee;
USE ieee.std_logic_1164.all;
USE ieee.std_logic_unsigned.all;
ENTITY ALU IS
PORT (a,b: IN STD_LOGIC_VECTOR(7 DOWNTO 0);
sel: IN STD_LOGIC_VECTOR(3 DOWNTO 0);
cin: IN STD_LOGIC;
y: OUT STD_LOGIC_VECTOR(7 DOWNTO 0));
END ALU;
ARCHITECTURE dataflow OF ALU IS
SIGNAL arith, logic: STD_LOGIC_VECTOR(7 DOWNTO 0);
BEGIN
WITH sel (2 DOWNTO 0) SELECT
arith= a WHEN ?00本”,
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) SELECT
logic = 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) SELECT
y= arith WHEN ‘0’,
logic WHEN OTHERS;
END dataflow;
2、分析实验结果;
本次实验的结果符合本次试验的目的,符合ALU的各种执行结果。采用时序仿真时由于加入了延时文件和串扰等因素,但结果基本正确。
3、心得体会――
通过本次实验熟悉并掌握了quartusII的基本应用,比较熟练的掌握了其操作的各个步骤。也更好的理解了ALU的基本原理等知识。但不足的是本实验中出现了一些错误,在几番调试后终于得以解决,这要感谢同学的帮助。以后对本软件的使用要更加勤奋认真,对VHDL编程要多加练习,只有这样才能更好的学好这门课。
逻辑单元
算术单元
多路复用器
sel(3:0)
cin
b(7:0)
a(7:0)
y(7:0)
sel(3)
()
显示全部