Upload
leal
View
237
Download
0
Embed Size (px)
DESCRIPTION
一、复杂可编程逻辑器件 CPLD. Complex Programmable Logic Device. 1. PLD 器件简介. 由大量(高至几百万个)独立的与门阵列、或门阵列、触发器和可配置的连线构成的单片通用 CMOS 大规模集成电路。. 使用方法:. 根据所要求的特定功能,通过编程选择内部器件并连线. 特定功能的专用芯片. FPGA ( 现场可编程门阵列):. 有大量触发器,更易设计时序电路。编程数据只需通过简单设备即可下载到芯片中,实现现场编程功能。. PLD 分类. - PowerPoint PPT Presentation
Citation preview
一、复杂可编程逻辑器件一、复杂可编程逻辑器件CPLD CPLD
Complex Programmable Logic Device
1. PLD 器件简介
由大量(高至几百万个)独立的与门阵列、或门阵列、触发器和可配置的连线构成的单片通用 CMOS 大规模集成电路。
根据所要求的特定功能,通过编程选择内部器件并连线
特定功能的专用芯片
使用方法:
CPLD (复杂可编程逻辑器件):
FPGA (现场可编程门阵列):
PLD
分类
有大量触发器,更易设计时序电路。编程数据只需通过简单设备即可下载到芯片中,实现现场编程功能。
大量门电路,更易设计组合电路。
编程数据通过计算机下载到芯片中。
在系统编程芯片,可在电路板上直
接对芯片编程。
PLDPLD 优点优点
高集成度、高可靠性:可将整个系统集成于同一芯片中,实现所谓片上系统。 通用芯片有固定逻辑功能,其构成的电路技术很难保护。专用芯片是电路设计者自己制造出来的,而且很容易设置保密位,从而形成电路设计者自己的知识产权。
2.2.EPM7128SLC84EPM7128SLC84 器件介绍器件介绍
EPM7128S器件系列是美国 ALTERA公司生产的在系统可编程 CPLD器件。在实验中使用该器件是很方便的。其优点是可以反复编程,能多达百余次,而且不必拆下芯片就可以直接在电路板上编程。EPM 7 128 S LC 84EPM 7 128 S LC 84
-- 667000 系列产品
有 128 个逻辑宏单元 在线可编程器件
塑封包装84 个外端子
全局时钟到输出端的时延为 6ns
每个宏单元包含:
一个可编程的“与”阵列和固定的“或”阵列以及一个触发器
11 10
9 8 7 6 5 4 3 2 1 84 83 82 81 80 79 78 77 76 75
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
ALTERA
MAX
EPM7128SLC84
VCC
INT
GN
D
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
74
73
72
71
70
69
68
67
66
65
64
63
62
61
60
59
58
57
56
55
54
I/O.TDI
I/O.TMS
VCC
INT
GN
D
GN
D VCC
IO
VCCI
O
GND
VCCI
O
GND
VCC
IO VCC
IOGN
D
GND
VCCI
O
GNDI/O.TD0
I/O.TK
INP
UT
/GC
LR
nIN
PU
T/O
E2/G
CL
K2
INP
UT
/GC
LK
1IN
PU
T/
OE
1 16 个电源和地脚:
(同名端内部均连通)
6 个 VCCI0 : I/O输出电路电源,
接 5V 或 3.3V
2 个 VCCINT :内部电路和输入
缓冲器电源, 接 5V
8 个接地端 下载板中正电源统一都为+ 5V,由实验箱提供,并与实验箱共地。
11 10
9 8 7 6 5 4 3 2 1 84 83 82 81 80 79 78 77 76 75
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
ALTERA
MAX
EPM7128SLC84
VCC
INT
GN
D
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
74
73
72
71
70
69
68
67
66
65
64
63
62
61
60
59
58
57
56
55
54
I/O.TDI
I/O.TMS
VCC
INT
GN
D
GN
D VCC
IO
VCCI
O
GND
VCCI
O
GND
VCC
IO VCC
IOGN
D
GND
VCCI
O
GNDI/O.TD0
I/O.TK
INP
UT
/GC
LR
nIN
PU
T/O
E2/G
CL
K2
INP
UT
/GC
LK
1IN
PU
T/
OE
1
1 脚: 全局清零端
2 、 83 脚: 2 个全局时钟输入端
对于时序电路:
4 个专用输入端
获得最高的工作速度
专用输入脚,不用时不允许悬空,防止 CMOS器件输入击穿损坏。
11 10
9 8 7 6 5 4 3 2 1 84 83 82 81 80 79 78 77 76 75
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
ALTERA
MAX
EPM7128SLC84
VCC
INT
GN
D
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
74
73
72
71
70
69
68
67
66
65
64
63
62
61
60
59
58
57
56
55
54
I/O.TDI
I/O.TMS
VCC
INT
GN
D
GN
D VCC
IO
VCCI
O
GND
VCCI
O
GND
VCC
IO VCC
IOGN
D
GND
VCCI
O
GNDI/O.TD0
I/O.TK
INP
UT
/GC
LR
nIN
PU
T/O
E2/G
CL
K2
INP
UT
/GC
LK
1IN
PU
T/
OE
1
CPU编程数据通过此端口下载到 CPLD中的
被编程置为输入的引脚,不用时不允许悬空,防止CMOS器件输入击穿损坏。 被编程置为输出的引脚不能接 VCC 或地。
4 个在系统编程专用输入、输出端口
60 个供用户的普通 I/O引脚
3.3.CPLDCPLD 下载板下载板介介绍绍
数字电路实验箱并行输出口
+5V 地
下载接口
入
/出
端
口
50M连续脉冲
入
/出
端
口入 /出端口
位驱动电路
共阳型
段驱动信号 a~ h
位驱动信号CS1
~CS4
GLCK GOEGCLR
单脉冲 复位输出使能
数据开关
LED灯
2 1 84
83CPLD 芯片4 5 6 8 9 10 11 8176 77 79 80
共 16个管脚已被定义占用
二、二、 CPLDCPLD 应用开发软件应用开发软件
1. 1. MAXMAX ++ plusplusⅡⅡ软件简介软件简介
MAX+plusⅡ 软件包是 Altera公司研制的一种 CPLD软件开发系统,它为 CPLD器件提供了计算机软件开发平台。
使用 MAX + plusⅡ 软件进行电路设计,包括下述 5步:
图形或编程输入方法
EPM7128SLC84
电路设计流程图电路设计流程图
新建项目
设计输入
器件的选择
项目编译与仿真
器件编程下载
修改设计
器件管脚分配与编译
2. 2. 数字电路描述语言数字电路描述语言 VHDLVHDL 简简介介
VHDL是一种用普通文本形式设计数字系统的硬件描述语言( VHSIC Hardware Description Language ),通过描述数字系统的结构、行为、功能和接口来设计电路。相比传统设计方法,具有设计简单、阅读方便的特点。 。
外部可视部分
逻辑关系描述
内部不可视部分
VHDL程序
设计实体
用结构体 (ARCHITECTURE) 描述用实体 (ENTITY) 描述
输入端口描述 输出端口描述
库支持:定义程序中所涉及的数据类型、元件和子程序等。
实体中定义了一个设计模块的外部输入和输出端口,即模块的外部特征,描述了一个模块与其他模块之间的连接关系,可以看作是输入输出信号和芯片管脚信息。
结构体主要用来说明模块内部的具体结构,即对模块内部的逻辑功能进行描述,是程序设计的核心部分。
VHDL程序
结构体 (ARCHITECTURE) 描述实体 (ENTITY) 描述
库支持:定义程序中所涉及的数据类型、元件和子程序等。
逻辑关系描述 输出端口描述输入端口描述
结构体主要用来说明模块内部的具体结构,即对模块内部的逻辑功能进行描述,是程序设计的核心部分。
VHDL程序
结构体 (ARCHITECTURE) 描述实体 (ENTITY) 描述
库支持:定义程序中所涉及的数据类型、元件和子程序等。
逻辑关系描述 输出端口描述输入端口描述
VHDL 语言对硬件系统的描述,有三种描述方式:行为描述、数据流描述、结构化描述。
几个基本概念
位逻辑型( BIT):单线状态,取值逻辑 '0′ 和 '1′ 位矢量型( BIT_VECTOR):
总线状态,如总线宽度为 8位,取值 "10110101"
标准逻辑位型( STD_LOGIC )
标准逻辑位矢量型( STD_LOGIC_VECTOR )
在位型数据基础上,还有高阻、不定、不可能等 7 种取值
1. 常用数据类型
2. 常用数据对象:变量、 信号
信号说明语句: 信号有 IN、 OUT、 INOUT、 BUFFER4种流动方向。分外部端口和内部信号 ,其作用是在设计的单元电路之间实现互连
如: SIGNAL b: BIT ; - -定义 b 为位逻辑型信号
如:VARIABLE a , b : STD_LOGIC ; - -定义 a,b为标准逻辑
位变量
变量说明语句: 变量属于局部量,只能在进程和子程序中定义和使用,主要用来暂存数据。
3.变量与信号的赋值语句
变量的说明和赋值限定在顺序区域内,它只能在进程中使用,具有局部性。变量赋值语句的格式为: 目的变量: = 表达式;如给变量 a 赋值: PROCESS - - 进程 VARIABLE a : BIT ; - - 在进程中定义位逻辑型
变量 a BEGIN a : = ′0′ ; - - 给变量 a 赋逻辑 0 值 END PROCESS ;信号赋值语句具有全局特征,不但可以使数据在设计实体内传递,还可以通过信号的赋值操作与其他实体进行数据交流。信号赋值语句的格式为: 目的信号量 <= 信号表达式; 如: y<=a AND b ;
I 被定义为具有 8 位位宽的标准逻辑位矢量型输入信号,最左边是 I ( 7 ),最右边是 I ( 0 )。如通过赋值语句I< = "00000010" ,使 I7I6 ~ I1I0=00000010。 Y2 , Y1 , Y0被定义为标准逻辑位型 输出信号。如通过赋值语句Y2<= '0′、 Y1<= '0′、 Y0<='1′,使 Y2Y1Y0=001 。 8 线一 3 线普通编码器
bmq 8_3
4. 端口描述ENTITY bmq 8_3 IS
PORT( I : IN STD_LOGIC_VECTOR(7 DOWNTO 0) ;
Y3 , Y2 , Y1 : OUT STD_LOGIC) ;END bmq8_3 ;
5.常用逻辑运算符:
AND(与)、 OR(或)、 NAND(与非)、
NOR(或非)、 NOT(非)、 XOR(异或)
6.常用关系运算符:
= (相等)
< (小于)
> (大于)
-- 结构体部分:描述电路的内部功能,以 ARCHITECTUR 作开头。 结构描述以 BEGIN 开始, END 结束。ARCHITECTURE arc OF not IS - - 结构体名为 arc ,任意取BEGIN
y<= NOT a ; - - a 取反后传给 y END arc ; - - 结构体结束
ay 例 1 用 VHDL 设计一个非门
-- 库和程序包部分:定义结构体和实体中要用到的数据类型、元件、子程序等, 放在名为 IEEE 的库中。 LIBRARY IEEE ; - - 打开 IEEE 库 USE IEEE.STD_LOGIC_1164.ALL ; - - 调用库中 STD_ LOGIC_1164 程序包 -- 实体部分:描述电路单元对外的管脚信息。 以 ENTITY 开头, END 结束。 ENTITY not IS - - 实体名为 not ,必须与项目名相同 PORT( - - 端口说明 a : IN STD_LOGIC ; - - 定义 a 为输入端口,标准逻辑型数据 y : OUT STD_LOGIC) ; - - 定义 y 为输出端口,标准逻辑型数据END not ; - - 实体结束
LIBRARY IEEE ;USE IEEE.STD_LOGIC_1164.ALL ;
ENTITY not IS PORT( a : IN STD_LOGIC ; y : OUT STD_LOGIC) ;END not ;
ARCHITECTURE arc OF not ISBEGIN y<= NOT a ;END arc ;
所有语句以分号结束,程序所有语句以分号结束,程序中不区分字母的大小写。中不区分字母的大小写。
行为描述:基于表达式
项目取名规则:由字母、数字和下划线组成;第一个字符必须是字母;最后一个字符不能是下划线;下划线不能连用;不能与关键词相同:
设计步骤 (1) 新建项目;
( 2) 选择并进入文本编辑窗口; ( 3) 输入 VHDL 源程序;
( 4) 文件存盘; * 项目名、实体、文件名名必须相同 文件扩展名必须是 vhd 。
not
not . vhd
not
(5) 选择器件后编译(6) 仿真(7) 编程下载(8) CPLD 逻辑功能验证
LIBRARY IEEE ; USE IEEE.STD_LOGIC_1164.ALL ;
ENTITY and2 IS
PORT ( a : IN STD_LOGIC ; b : IN STD_LOGIC ; y : OUT STD_LOGIC) ; END and2 ;
ARCHITECTURE and_arc2 OF and2 IS BEGIN PROCESS (a , b) VARIABLE comb : STD_LOGIC_VECTOR(1 DOWNTO 0) ; BEGIN comb : = a & b ; CASE comb IS WHEN ″ 00 ″ =>y<= ′ 0 ′ ; WHEN ″ 01 ″=>y<= ′ 0 ′ ; WHEN ″ 10 ″=>y<= ′ 0 ′ ; WHEN ″ 11 ″=>y<= ′ 1 ′ ; WHEN others=>y<= ′ X ′ ; END CASE ; END PROCESS ; END and_arc2 ;
数据流描述:基于真值表
例 2 用 VHDL 实现 y = a b
- - 进程语句,用 a 、 b 信号触发进程执行
- - 定义 comb 为标准逻辑位矢量变量,位宽 2位
- - 打开 IEEE 库,并调用库中 STD_ LOGIC_1164程序包- - 定义 and2 实体的入 / 出端口,其信号类型是标准逻辑位型
- -a 、 b 合并为 comb 变量
- - 根据 comb 取值,选择 Y值
PROCESSPROCESS(cp)(cp) - -- - 进程在时钟信号变化进程在时钟信号变化时启动时启动
BEGINBEGIN
IFIF(cp′(cp′EVENT ANDEVENT AND cp= ′1 ′)cp= ′1 ′) THENTHEN - - -- 如果如果 cpcp 上升上升沿到,沿到,
则执行则执行 THENTHEN 与与 END IFEND IF 之间的其之间的其他他
时序语句,否则状态保持不变时序语句,否则状态保持不变
其他时序语句其他时序语句 END IFEND IF ;;
END PROCESSEND PROCESS
时序电路设计时序电路设计(1)(1)时钟信号时钟信号
在时序电路中,都以时钟信号为驱动信号,只有在时钟信号边 在时序电路中,都以时钟信号为驱动信号,只有在时钟信号边沿到来时,电路状态才改变。因此,通常用时钟信号触发时序电路沿到来时,电路状态才改变。因此,通常用时钟信号触发时序电路的进程。的进程。
PROCESS(cp , reset) - - 进程在时钟信号或复位信号变化时启动BEGIN IF(reset = ′0′ ) THEN q< = ′0′ ; - -如果复位信号有效,则输
出置 0 ELSIF(cp′ EVENT AND cp= ′1′ ) THEN - - 如果复位
信号无 效,且 cp上升沿到来,其他时序语句 则执行其他时序语句
END IF;END PROCESS;
(2) 异步复位异步复位是指一旦复位信号有效,时序电路即被复位。其描述方式有以下要点:· 作为进程的敏感信号,除时钟信号外,还应加上复位信号;· 利用 IF语句描述复位条件;· 利用 ELSIF语句来描述时钟信号的边沿条件。
LIBRARY IEEE ; USE IEEE.STD_LOGIC_1164.ALL ;ENTITY tcfq IS PORT(s , r ,cp , t : IN STD_LOGIC ; q : OUT
STD_LOGIC );END tcfq ;ARCHITECTURE tcfq _arc OF tcfq ISSIGNAL q_temp : STD_LOGIC ;BEGIN PROCESS(s , r , cp , T) BEGIN IF(s= ′0′ AND r= ′1′ ) THEN q_temp<= ′0′ ; ELSIF(s= ′1′ AND r= ′0′ )THEN q_temp<= ′1′ ; ELSIF(cp ′EVENT AND cp= ′1′ )THEN IF(T= ′1′ )THEN q _temp<=NOT q_temp ; ELSE q_temp<=q_temp ; END IF ; END IF ; q<= q_temp ; END PROCESS ;END tcfq _arc ;
例 3 用 VHDL 实现 T 触发器
S R CP T Q
0100
1000
××↑↑
××01
01保持翻转