预习报告部分
- 实验目的:进一步练习VHDL语言设计工程的建立与仿真的步骤和方法、熟悉VHDL语言基本设计实体的编写方法。
- 实验原理:全加器设计原理:除本位两个数相加之外,还要加上从低位来的进位数,称为全加器。其中:a为被加数,b为加数,ci为低位向本位的进位,c0为本位向高位的进位,s为本位和。用A、B表示A、B两个数的第i位,Ci-1表示低位(第i –1位)来的进位,则根据全加运算的规则可以列出真值表如表
Ai Bi Ci-1 | Si | Ci |
0 0 0 | 0 | 0 |
0 0 1 | 1 | 0 |
0 1 0 | 1 | 0 |
0 1 1 | 0 | 1 |
1 0 0 | 1 | 0 |
1 0 1 | 0 | 1 |
1 1 0 | 0 | 1 |
1 1 1 | 1 | 1 |
得出:
s = a xor b xor ci
co = (a and b) or (a and ci) or (b and ci)
- 实验内容:
设计一个一位全加器,实体名称为“full_adder”,其引脚与功能如下表。
端口模式 | 端口名 | 数据类型 | 功能逻辑表达式 | 说明 |
in(输入) | a | std_logic |
| 加数 |
b |
| 加数 | ||
ci |
| 自低位进位 | ||
out(输出) | s | s <= a xor b xor ci | 和 | |
co | co <= (a and b) or (a and ci) or (b and ci) | 向高位进位 |
- 实验所用设备:PC个人计算机、Windows XP操作系统、Quartus II集成开发环境软件。
- 实验步骤:①建立工程、②编辑代码、③编译及修改错误、④建立仿真波形并仿真、⑤根据仿真结果分析设计是否正确。
实验报告部分
一、实验步骤:
二、 实验数据及结果分析:
160~320ns之间有输入1+0,低位进位为0,得输出本位和为1,高位进位为0,二进制数为01,1+0=1。320.0ns时输入均为1,低位进位为0,输出本位和0,高位进位为1,二进制码为10,转化为十进制为2,得1+1=2.
- 附录
(实体名称由full adder改为了my1)
library ieee;
use ieee.std_logic_1164.all;
entity my1 is
port(a,b,ci :in std_logic;
s,co :out std_logic);
end entity;
architecture rtl of my1 is
begin
s<=a xor b xor ci;
co<=(a and b)or(a and ci)or(b and ci);
end rtl;