第6章 VHDL设计应用实例
8位加法器的设计
8位乘法器的设计
序列检测器的设计
正负脉宽数控调制信号发生器的设计
数字频率计的设计
秒表的设计
MCS–51单片机与FPGA/CPLD总线接口逻辑设计
交通灯信号控制器的设计
语音信箱控制系统的设计
PID控制器的设计
空调系统有限状态自动机的设计
闹钟系统的设计
8位加法器的设计
加法器是数字系统中的基本逻辑器件,减法器和硬件乘法器都可由加法器来构成。多位加法器的构成有两种方式:并行进位和串行进位方式。并行进位加法器设有进位产生逻辑,运算速度较快;串行进位方式是将全加器级联构成多位加法器。并行进位加法器通常比串行级联加法器占用更多的资源。随着位数的增加,相同位数的并行加法器与串行加法器的资源占用差距也越来越大。因此,在工程中使用加法器时,要在速度和容量之间寻找平衡点。
实践证明,4位二进制并行加法器和串行级联加法器占用几乎相同的资源。这样,多位加法器由4位二进制并行加法器级联构成是较好的折中选择。本设计中的8位二进制并行加法器即是由两个4位二进制并行加法器级联而成的,。
8位加法器电路原理图
1)
LIBRARY IEEE;
USE ;
USE ;
ENTITY ADDER4B IS --4位二进制并行加法器
PORT(CIN:IN STD_LOGIC; --低位进位
A: IN STD_LOGIC_VECTOR(3 DOWNTO 0); --4位加数
B: IN STD_LOGIC_VECTOR(3 DOWNTO 0); --4位被加数
S: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); --4位和
CONT: OUT STD_LOGIC); --进位输出
END ADDER4B;
ARCHITECTURE ART OF ADDER4B IS
SIGNAL SINT:STD_LOGIC_VECTOR(4 DOWNTO 0);
SIGNAL AA,BB: STD_LOGIC_VECTOR(4 DOWNTO 0);
BEGIN
AA<='0'& A; --将4位加数矢量扩为5位,为进位提供空间
BB<='0'& B; --将4位被加数矢量扩为5位,为进位提供空间
SINT<=AA+BB+CIN ;
S<=SINT(3 DOWNTO 0);
CONT<=SINT(4);
END ART;
2)
LIBRARY IEEE;
USE ;
USE :
ENTITY ADDER8B IS
--由4位二进制并行加法器级联而成的8位二进制加法器
PORT(CIN:IN STD_LOGIC;
A:IN STD_LOGIC_VECTOR(7 DOWNTO 0);
B:IN STD_LOGIC_VECTOR(7 DOWNTO 0);
S:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);
COUT:OUT STD_LOGIC);
END ADDER8B;
ARCHICTURE ART OF ADDER8B IS
ADDER4B
--对要调用的元件ADDER4B的界面端口进行定义
PORT(CIN:IN STD_LOGIC;
A:IN STD_LOGIC_VECTOR(3 DOWNTO 0);
B:IN STD_LOGIC_VECTOR(3 DOWNTO 0);
S:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);
CONT:OUT STD_LOGIC);
PONENT ;
SIGNAL CARRY_OUT:STD_LOGIC; --4位加法器的进位标志
BEGIN
U1:ADDER4B --例化(安装)一个4位二进制加法器U1
PORT MAP(CIN=>CIN,A=>A(3 DOWNTO 0),B=>B(3 DOWNTO0),
S=>S(3 DOWNTO 0),COUT=>CARRY_OUT);
U2:ADDER4B --例化(安装)一个4位二进制加法器U2
PORT MAP(CIN=>CARRY_OUT,A=>A(7 DOWNTO 4),B=>B(7 DOWNTO 4),
S=>
第6章VHDL设计应用实例 来自淘豆网www.taodocs.com转载请标明出处.