1 / 27

一、复杂可编程逻辑器件 CPLD

一、复杂可编程逻辑器件 CPLD. Complex Programmable Logic Device. 1. PLD 器件简介. 由大量(高至几百万个)独立的与门阵列、或门阵列、触发器和可配置的连线构成的单片通用 CMOS 大规模集成电路。. 使用方法:. 根据所要求的特定功能,通过编程选择内部器件并连线. 特定功能的专用芯片. FPGA ( 现场可编程门阵列):. 有大量触发器,更易设计时序电路。编程数据只需通过简单设备即可下载到芯片中,实现现场编程功能。. PLD 分类.

leal
Télécharger la présentation

一、复杂可编程逻辑器件 CPLD

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 一、复杂可编程逻辑器件CPLD Complex Programmable Logic Device

  2. 1. PLD器件简介 由大量(高至几百万个)独立的与门阵列、或门阵列、触发器和可配置的连线构成的单片通用CMOS大规模集成电路。 使用方法: 根据所要求的特定功能,通过编程选择内部器件并连线 特定功能的专用芯片

  3. FPGA(现场可编程门阵列): 有大量触发器,更易设计时序电路。编程数据只需通过简单设备即可下载到芯片中,实现现场编程功能。 PLD 分类 CPLD(复杂可编程逻辑器件): 大量门电路,更易设计组合电路。 编程数据通过计算机下载到芯片中。 在系统编程芯片,可在电路板上直 接对芯片编程。

  4. PLD优点 • 高集成度、高可靠性:可将整个系统集成于同一芯片中,实现所谓片上系统。 • 通用芯片有固定逻辑功能,其构成的电路技术很难保护。专用芯片是电路设计者自己制造出来的,而且很容易设置保密位,从而形成电路设计者自己的知识产权。

  5. EPM 7 128 S LC 84-6 全局时钟到输出端的时延为6ns 7000系列产品 塑封包装 84个外端子 有128个逻辑宏单元 在线可编程器件 2.EPM7128SLC84器件介绍 EPM7128S器件系列是美国ALTERA公司生产的在系统可编程CPLD器件。在实验中使用该器件是很方便的。其优点是可以反复编程,能多达百余次,而且不必拆下芯片就可以直接在电路板上编程。 每个宏单元包含: 一个可编程的“与”阵列和固定的“或”阵列以及一个触发器

  6. INPUT/OE2/GCLK2 INPUT/GCLK1 INPUT/GCLRn INPUT/OE1 GND VCCINT GND VCCIO 11 10 9 8 7 6 5 4 3 84 83 82 81 80 79 78 77 76 75 2 1 74 73 72 71 70 69 68 67 66 65 64 63 62 61 60 59 58 57 56 55 54 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 VCCIO GND I/O.TDI I/O.TD0 ALTERA MAX EPM7128SLC84 GND VCCIO I/O.TMS I/O.TK VCCIO GND GND 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 VCCIO GND VCCINT VCCIO GND • 16个电源和地脚: (同名端内部均连通) 6个VCCI0:I/O输出电路电源, 接5V或3.3V 2个VCCINT:内部电路和输入 缓冲器电源, 接5V 8个接地端 下载板中正电源统一都为+5V,由实验箱提供,并与实验箱共地。

  7. 4个专用输入端 INPUT/OE2/GCLK2 INPUT/GCLK1 INPUT/GCLRn INPUT/OE1 GND VCCINT GND VCCIO 11 10 9 8 7 6 5 4 3 84 83 82 81 80 79 78 77 76 75 2 1 74 73 72 71 70 69 68 67 66 65 64 63 62 61 60 59 58 57 56 55 54 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 VCCIO GND I/O.TDI I/O.TD0 ALTERA MAX EPM7128SLC84 GND VCCIO I/O.TMS I/O.TK VCCIO GND GND 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 VCCIO GND VCCINT VCCIO GND 对于时序电路: 1脚: 全局清零端 2、83脚: 2个全局时钟输入端 获得最高的工作速度 专用输入脚,不用时不允许悬空,防止CMOS器件输入击穿损坏。

  8. 4个在系统编程专用输入、输出端口 INPUT/OE2/GCLK2 INPUT/GCLK1 INPUT/GCLRn INPUT/OE1 GND VCCINT GND VCCIO 11 10 9 8 7 6 5 4 3 84 83 82 81 80 79 78 77 76 75 2 1 74 73 72 71 70 69 68 67 66 65 64 63 62 61 60 59 58 57 56 55 54 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 VCCIO GND I/O.TDI I/O.TD0 • 60个供用户的普通I/O引脚 ALTERA MAX EPM7128SLC84 GND VCCIO I/O.TMS I/O.TK VCCIO GND GND 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 VCCIO GND VCCINT VCCIO GND CPU编程数据通过此端口下载到CPLD中的 被编程置为输入的引脚,不用时不允许悬空,防止CMOS器件输入击穿损坏。 被编程置为输出的引脚不能接VCC或地。

  9. 3.CPLD下载板介绍 数字电路实验箱 +5V 地 共16个管脚已被定义占用 并行 输出口 LED灯 数据开关 输出 使能 单脉冲 复位 位 驱 动 信 号 CS1~ CS4 位驱动电路 GLCK GCLR GOE 共阳型 入 /出 端 口 入 /出 端 口 下 载 接 口 段驱动信号a~h 4 5 6 8 9 10 11 81 1 84 76 77 79 80 2 50M连续脉冲 CPLD芯片 83 入/出端口

  10. 二、CPLD应用开发软件

  11. 1. MAX+plusⅡ软件简介 • MAX+plusⅡ软件包是Altera公司研制的一种CPLD软件开发系统,它为CPLD器件提供了计算机软件开发平台。 • 使用MAX+plusⅡ软件进行电路设计,包括下述5步:

  12. 新建项目 图形或编程输入方法 设计输入 器件的选择 修改设计 EPM7128SLC84 项目编译与仿真 器件管脚分配与编译 器件编程下载 电路设计流程图

  13. 2. 数字电路描述语言VHDL简介 • VHDL是一种用普通文本形式设计数字系统的硬件描述语言(VHSIC Hardware Description Language),通过描述数字系统的结构、行为、功能和接口来设计电路。相比传统设计方法,具有设计简单、阅读方便的特点。。

  14. 输入端口描述 输出端口描述 库支持: 定义程序中所涉及的数据类型、元件和子程序等。 外部可视部分 设计 实体 内部不可视部分 逻辑关系描述 用结构体 (ARCHITECTURE) 描述 用实体(ENTITY)描述 VHDL 程序

  15. 输入端口描述 逻辑关系描述 输出端口描述 结构体 (ARCHITECTURE) 描述 实体(ENTITY)描述 VHDL 程序 库支持: 定义程序中所涉及的数据类型、元件和子程序等。 • 实体中定义了一个设计模块的外部输入和输出端口,即模块的外部特征,描述了一个模块与其他模块之间的连接关系,可以看作是输入输出信号和芯片管脚信息。 • 结构体主要用来说明模块内部的具体结构,即对模块内部的逻辑功能进行描述,是程序设计的核心部分。

  16. 输入端口描述 逻辑关系描述 输出端口描述 结构体 (ARCHITECTURE) 描述 实体(ENTITY)描述 VHDL 程序 库支持: 定义程序中所涉及的数据类型、元件和子程序等。 • 结构体主要用来说明模块内部的具体结构,即对模块内部的逻辑功能进行描述,是程序设计的核心部分。 VHDL语言对硬件系统的描述,有三种描述方式:行为描述、数据流描述、结构化描述。

  17. 在位型数据基础上,还有高阻、不定、不可能等7 种取值 几个基本概念 1. 常用数据类型 • 位逻辑型(BIT): 单线状态,取值逻辑'0′和'1′ • 位矢量型(BIT_VECTOR): 总线状态,如总线宽度为8位,取值 "10110101" • 标准逻辑位型(STD_LOGIC) • 标准逻辑位矢量型(STD_LOGIC_VECTOR)

  18. 变量说明语句: 变量属于局部量,只能在进程和子程序中定义和使用,主要用来暂存数据。 如: VARIABLE a,b:STD_LOGIC;- -定义a,b为标准逻辑位变量 • 信号说明语句: 信号有IN、OUT、INOUT、BUFFER4种流动方向。分外部端口和内部信号,其作用是在设计的单元电路之间实现互连 如:SIGNAL b:BIT; - -定义b为位逻辑型信号 2. 常用数据对象:变量、 信号

  19. 信号赋值语句具有全局特征,不但可以使数据在设计实体内传递,还可以通过信号的赋值操作与其他实体进行数据交流。信号赋值语句具有全局特征,不但可以使数据在设计实体内传递,还可以通过信号的赋值操作与其他实体进行数据交流。 • 信号赋值语句的格式为: • 目的信号量 <= 信号表达式; 如:y<=a AND b; 3.变量与信号的赋值语句 • 变量的说明和赋值限定在顺序区域内,它只能在进程中使用,具有局部性。 变量赋值语句的格式为: • 目的变量:= 表达式; • 如给变量a赋值: • PROCESS - -进程 • VARIABLE a:BIT; - -在进程中定义位逻辑型变量a • BEGIN • a:= ′0′ ; - -给变量a赋逻辑0值 • END PROCESS;

  20. 4. 端口描述 ENTITY bmq 8_3IS PORT( I: IN STD_LOGIC_VECTOR(7 DOWNTO 0); Y3,Y2,Y1:OUT STD_LOGIC); ENDbmq8_3; 8线一3线普通编码器 bmq 8_3 • I被定义为具有8位位宽的标准逻辑位矢量型输入信号,最左边是I(7),最右边是I(0)。如通过赋值语句 • I<= "00000010" ,使I7I6~I1I0=00000010。 • Y2,Y1,Y0被定义为标准逻辑位型 输出信号。如通过赋值语句 • Y2<='0′、Y1<='0′、Y0<='1′,使Y2Y1Y0=001。

  21. 5.常用逻辑运算符: AND(与)、OR(或)、NAND(与非)、 NOR(或非)、NOT(非)、XOR(异或) 6.常用关系运算符: = (相等) < (小于) > (大于)

  22. 例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; - - 实体结束  • - 结构体部分:描述电路的内部功能,以ARCHITECTUR作开头。 • 结构描述以BEGIN开始,END结束。 • ARCHITECTURE arc OF not IS - - 结构体名为arc,任意取 • BEGIN • y<= NOT a ; - - a取反后传给y • END arc; - - 结构体结束 

  23. 设计步骤 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 IS BEGIN y<= NOT a ; END arc; not (1) 新建项目; • 项目取名规则: • 由字母、数字和下划线组成; • 第一个字符必须是字母; • 最后一个字符不能是下划线; • 下划线不能连用; • 不能与关键词相同: not 行为描述:基于表达式 所有语句以分号结束,程序中不区分字母的大小写。 (2) 选择并进入文本编辑窗口; (3) 输入VHDL源程序; (4) 文件存盘; *项目名、实体、文件名名必须相同 文件扩展名必须是vhd。 (5) 选择器件后编译 (6) 仿真 (7) 编程下载 (8) CPLD逻辑功能验证 not.vhd

  24. 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 - -打开IEEE库,并调用库中STD_ LOGIC_1164程序包 - -定义and2 实体的入/出端口,其信号类型是标准逻辑位型 - -进程语句,用a、b信号触发进程执行 - -定义comb为标准逻辑位矢量变量,位宽2位 - -a、b合并为comb变量 - -根据comb取值,选择Y值 数据流描述:基于真值表

  25. 时序电路设计 • 时钟信号 在时序电路中,都以时钟信号为驱动信号,只有在时钟信号边 • 沿到来时,电路状态才改变。因此,通常用时钟信号触发时序电路 • 的进程。 PROCESS(cp)- -进程在时钟信号变化时启动 BEGINIF(cp′EVENT ANDcp= ′1 ′)THEN - -如果cp上升沿到, 则执行THEN与END IF之间的其他 时序语句,否则状态保持不变 其他时序语句END IF; END PROCESS

  26. (2) 异步复位 异步复位是指一旦复位信号有效,时序电路即被复位。其描述方式有以下要点: · 作为进程的敏感信号,除时钟信号外,还应加上复位信号; · 利用IF语句描述复位条件; · 利用ELSIF语句来描述时钟信号的边沿条件。 PROCESS(cp,reset) - -进程在时钟信号或复位信号变化时启动 BEGIN IF(reset = ′0′ ) THEN q< = ′0′ ; - -如果复位信号有效,则输出置0 ELSIF(cp′ EVENT AND cp= ′1′ ) THEN - -如果复位信号无 效,且cp上升沿到来, 其他时序语句 则执行其他时序语句 END IF; END PROCESS;

  27. 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 IS SIGNAL 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; ENDIF; END IF; q<= q_temp; END PROCESS; END tcfq _arc ; 例3用VHDL实现 T触发器 Q S R CP T 0 1 保持 翻转 0 1 0 0 1 0 0 0 × × ↑ ↑ × × 0 1

More Related