实验一 4位全加器的设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一4位全加器的设计
一、实验目的:
1 熟悉QuartusⅡ与ModelSim的使用;
2 学会使用文本输入方式和原理图输入方式进行工程设计;
3 分别使用数据流、行为和结构化描述方法进行四位全加器的设计;
4 理解RTL视图和Technology Map视图的区别;
5 掌握简单的testbench文件的编写。
二、实验原理:
一个4位全加器可以由4个一位全加器构成,加法器间的进位可以串行方式实现,即将低位加法器的进位输出cout与相邻的高位加法器的进位输入信号cin相接。
三、实验内容:
1.QuartusII软件的熟悉
熟悉QuartusⅡ环境下原理图的设计方法和流程,可参考课本第4章的内容,重点掌握层次化的设计方法。
2.设计1位全加器原理图
设计的原理图如下所示:
VHDL源程序如下(行为描述):-- Quartus II VHDL Template
-- Unsigned Adder
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity f_add is
port
(
a : in std_logic;
b : in std_logic;
ci : in std_logic;
y : out std_logic;
co : out std_logic
);
end entity;
architecture rtl of f_add is
begin
(co,y)<=('0',a)+('0',b)+('0',ci);
end rtl;
VHDL源程序如下(行为描述)的RTL与technology map视
图
VHDL源程序如下(数据流描述):
-- Quartus II VHDL Template
-- Unsigned Adder
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all; entity f_add_df is
port
(
a : in std_logic;
b : in std_logic;
ci : in std_logic;
y : out std_logic;
co : out std_logic
);
end entity;
architecture rtl of f_add_df is begin
y<=a xor b xor ci;
co<=((a xor b) and ci) or (a and b); end rtl;
VHDL源程序如下(数据流描述)的RTL与technology map
视图:
VHDL源程序如下(结构化描述):
-- Quartus II VHDL Template
-- Unsigned Adder
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all; entity f_add_st is
port
(
af : in std_logic;
bf : in std_logic;
cif : in std_logic;
yf : out std_logic;
cof : out std_logic
);
end entity;
architecture rtl of f_add_st is COMPONENT h_add
PORT
(
a : IN STD_LOGIC;
b : IN STD_LOGIC;
y : OUT STD_LOGIC;
co : OUT STD_LOGIC
);
END COMPONENT;
signal s1:std_LOGIC;
signal co1:std_LOGIC;
signal co2:std_LOGIC;
begin
U1: h_add port map(a=> af,b=> bf,y=>s1,co=> co1 ); U2: h_add port map (a=> s1,b=> cif,y=> yf,co=> co2 ); cof <= co1 or co2;
end rtl;
VHDL源程序如下(结构化描述)的RTL与technology map
视图:
Testbench文件源程序如下:LIBRARY cycloneiii ;
LIBRARY ieee ;
USE cycloneiii.cycloneiii_components.all ; USE ieee.std_logic_1164.all ;
ENTITY f_add_st_tb IS
END ;
ARCHITECTURE f_add_st_tb_arch OF f_add_st_tb IS SIGNAL bf : STD_LOGIC :='0' ;
SIGNAL cof : STD_LOGIC ;
SIGNAL cif : STD_LOGIC :='0' ;
SIGNAL af : STD_LOGIC :='0' ;
SIGNAL yf : STD_LOGIC ;