vhdl应用设计PPT课件
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
S=>S (7 DOWNTO 4);CONT=>CONT); END ART;
9
VHDL设计应用实例
3.硬件逻辑验证
选择实验电路结构图NO.1,由5.2的实验电路结构图NO.1和 图6.1确定引脚的锁定。如可取实验电路结构图的PIO3~PIO0接 A[3..0],PIO7~PIO4接A[7..4], PIO11~PIO8接B[3..0], PIO15~PIO12接B[7..4],PIO49接CIN。此加法器的被加数A和 加数B分别由键2与键1、键4与键3输入,加法器的最低位进位 CIN由键8输入,计算结果将分别通过PIO23~PIO20,PIO19~ PIO16输出并显示于数码管6(高4位)和数码管5(低4位),溢出进 位由PIO39输出,当有进位时,结果显示于发光管D8。
1
VHDL设计应用实例
1 8位加法器的设计
1.设计思路
加法器是数字系统中的基本逻辑器件,减法器和硬件乘法 器都可由加法器来构成。多位加法器的构成有两种方式:并行 进位和串行进位方式。并行进位加法器设有进位产生逻辑,运 算速度较快;串行进位方式是将全加器级联构成多位加法器。 并行进位加法器通常比串行级联加法器占用更多的资源。随着 位数的增加,相同位数的并行加法器与串行加法器的资源占用 差距也越来越大。因此,在工程中使用加法器时,要在速度和 容量之间寻找平衡点。
10
百度文库HDL设计应用实例
2 8位乘法器的设计
1.设计思路
纯组合逻辑构成的乘法器虽然工作速度比较快,但占用硬件 资源多,难以实现宽位乘法器,而基于PLD器件外接ROM九九表 的乘法器则无法构成单片系统,也不实用。这里介绍由8位加法 器构成的以时序逻辑方式设计的8位乘法器,此乘法器具有一定 的实用价值。其乘法原理是:乘法通过逐项位移相加原理来实现, 从被乘数的最低位开始,若为1,则乘数左移后与上一次和相加; 若为0,左移后以全零相加,直至被乘数的最高位。从图6.2的逻 辑图上可以清楚地看出此乘法器的工作原理。
4
VHDL设计应用实例
2.VHDL源程序
1) 4位二进制并行加法器的源程序ADDER4B.VHD
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY ADDER4B IS --4位二进制并行加法器
CONT: OUT STD_LOGIC);
--进位输出
5
VHDL设计应用实例
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;
6
VHDL设计应用实例
2) 8位二进制加法器的源程序ADDER8B.VHD LIBRARY IEEE; USE IEEE_STD.LOGIC_1164.ALL; USE IEEE_STD.LOGIC_UNSIGNED.ALL:
8
VHDL设计应用实例
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),
VHDL设计应用实例
VHDL设计应用实例
1 8位加法器的设计 2 8位乘法器的设计 3 序列检测器的设计 4 正负脉宽数控调制信号发生器的设计 5 数字频率计的设计 6 秒表的设计 7 MCS–51单片机与FPGA/CPLD总线接口逻辑设计 8 交通灯信号控制器的设计 9 语音信箱控制系统的设计 10 PID控制器的设计 11 空调系统有限状态自动机的设计 12 闹钟系统的设计
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;
2
VHDL设计应用实例 实践证明,4位二进制并行加法器和串行级联加法器占用 几乎相同的资源。这样,多位加法器由4位二进制并行加法器 级联构成是较好的折中选择。本设计中的8位二进制并行加法 器即是由两个4位二进制并行加法器级联而成的,其电路原理 图如图6.1所示。
3
VHDL设计应用实例
图6.1 8位加法器电路原理图
ARCHICTURE ART OF ADDER8B IS
7
VHDL设计应用实例
COMPONENET 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); END COMPONENT ; SIGNAL CARRY_OUT:STD_LOGIC; --4位加法器的进位标志 BEGIN U1:ADDER4B --例化(安装)一个4位二进制加法器U1
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位和
9
VHDL设计应用实例
3.硬件逻辑验证
选择实验电路结构图NO.1,由5.2的实验电路结构图NO.1和 图6.1确定引脚的锁定。如可取实验电路结构图的PIO3~PIO0接 A[3..0],PIO7~PIO4接A[7..4], PIO11~PIO8接B[3..0], PIO15~PIO12接B[7..4],PIO49接CIN。此加法器的被加数A和 加数B分别由键2与键1、键4与键3输入,加法器的最低位进位 CIN由键8输入,计算结果将分别通过PIO23~PIO20,PIO19~ PIO16输出并显示于数码管6(高4位)和数码管5(低4位),溢出进 位由PIO39输出,当有进位时,结果显示于发光管D8。
1
VHDL设计应用实例
1 8位加法器的设计
1.设计思路
加法器是数字系统中的基本逻辑器件,减法器和硬件乘法 器都可由加法器来构成。多位加法器的构成有两种方式:并行 进位和串行进位方式。并行进位加法器设有进位产生逻辑,运 算速度较快;串行进位方式是将全加器级联构成多位加法器。 并行进位加法器通常比串行级联加法器占用更多的资源。随着 位数的增加,相同位数的并行加法器与串行加法器的资源占用 差距也越来越大。因此,在工程中使用加法器时,要在速度和 容量之间寻找平衡点。
10
百度文库HDL设计应用实例
2 8位乘法器的设计
1.设计思路
纯组合逻辑构成的乘法器虽然工作速度比较快,但占用硬件 资源多,难以实现宽位乘法器,而基于PLD器件外接ROM九九表 的乘法器则无法构成单片系统,也不实用。这里介绍由8位加法 器构成的以时序逻辑方式设计的8位乘法器,此乘法器具有一定 的实用价值。其乘法原理是:乘法通过逐项位移相加原理来实现, 从被乘数的最低位开始,若为1,则乘数左移后与上一次和相加; 若为0,左移后以全零相加,直至被乘数的最高位。从图6.2的逻 辑图上可以清楚地看出此乘法器的工作原理。
4
VHDL设计应用实例
2.VHDL源程序
1) 4位二进制并行加法器的源程序ADDER4B.VHD
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY ADDER4B IS --4位二进制并行加法器
CONT: OUT STD_LOGIC);
--进位输出
5
VHDL设计应用实例
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;
6
VHDL设计应用实例
2) 8位二进制加法器的源程序ADDER8B.VHD LIBRARY IEEE; USE IEEE_STD.LOGIC_1164.ALL; USE IEEE_STD.LOGIC_UNSIGNED.ALL:
8
VHDL设计应用实例
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),
VHDL设计应用实例
VHDL设计应用实例
1 8位加法器的设计 2 8位乘法器的设计 3 序列检测器的设计 4 正负脉宽数控调制信号发生器的设计 5 数字频率计的设计 6 秒表的设计 7 MCS–51单片机与FPGA/CPLD总线接口逻辑设计 8 交通灯信号控制器的设计 9 语音信箱控制系统的设计 10 PID控制器的设计 11 空调系统有限状态自动机的设计 12 闹钟系统的设计
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;
2
VHDL设计应用实例 实践证明,4位二进制并行加法器和串行级联加法器占用 几乎相同的资源。这样,多位加法器由4位二进制并行加法器 级联构成是较好的折中选择。本设计中的8位二进制并行加法 器即是由两个4位二进制并行加法器级联而成的,其电路原理 图如图6.1所示。
3
VHDL设计应用实例
图6.1 8位加法器电路原理图
ARCHICTURE ART OF ADDER8B IS
7
VHDL设计应用实例
COMPONENET 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); END COMPONENT ; SIGNAL CARRY_OUT:STD_LOGIC; --4位加法器的进位标志 BEGIN U1:ADDER4B --例化(安装)一个4位二进制加法器U1
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位和