一. 实验说明
使用软件:Quartus II 5.0
实验要求说明:设计一个一位全加器(full adder)
1.引脚功能表
逻辑说明:XOR
为异或 ,AND
为 与, OR
为或。输入包括两个加数与一个进位信号;输出包括一个本位和与进位信号
2. VHDL 实现
use ieee.std_logic_1164.all;
entity full_adder1 is
port (a,b,ci:in std_logic;
s,co:out std_logic);
end entity;
architecture behave of full_adder1 is
begin
s<=a xor b xor ci;
co<=((a xor b)and ci)or (a and b);
end behave;
3. 实验原理
一位全加器的真值表
说明: Ai A i 为被加数, Bi B i 为加数,相邻低位来的进位数为 Ci−1 C i − 1 ,输出本位和为 Si S i ,向相邻高位进位数为 Ci C i
一位全加器的表达式如下:
Si=Ai⊕Bi⊕Ci−1
S
i
=
A
i
⊕
B
i
⊕
C
i
−
1
Ci=AiBi+Ci−1(Ai+Bi)
C
i
=
A
i
B
i
+
C
i
−
1
(
A
i
+
B
i
)
第二个表达式也可用一个异或门来代替或门对其中两个输入信号进行求和:
Ci=AiBi+Ci−1(Ai⊕Bi) C i = A i B i + C i − 1 ( A i ⊕ B i )
二. Quartus II 使用
熟练掌握软件基本的操作,利用 Quartus II 设计简单的一位全加器,并进行仿真实验
1. 点击右向三角进行源码编译
2. 显示编译成功后,选择菜单栏 Tools
–> RTL Viewer
显示逻辑电路图
不同版本的菜单栏子选项可能位置不同,但基本操作一致
显示的逻辑电路图
3. 逻辑电路图显示成功后,进行仿真,确认功能的正确性
选择 File
–> New
, 弹窗中选择 VectorWaveForm File
,点击 OK
新窗口左侧空白处双击,弹窗中选择 Node Finder
按钮 –> 弹窗中选择 List
按钮
弹窗左侧分栏出现实体 name
–> 点击两个分栏中间的 >>
按钮,左侧实体全部添加到右侧
左侧实体全部添加到右侧
连续两次点击 OK
推出当前弹窗 –> 工作区出现波形
用鼠标左键选择想要赋值区域,选中后给出相应0、1信号
选择保存后(默认位置与默认文件名即可),选择菜单栏功能仿真按钮
稍等片刻,弹出仿真结果