目录

  • 1 数字电路中的数和编码
    • 1.1 十进制数的二进制编码
      • 1.1.1 有权码和无权码
    • 1.2 格雷码
      • 1.2.1 8421BCD码的运算
    • 1.3 用补码表示负数
  • 2 数字逻辑基础
    • 2.1 逻辑变量和逻辑系统
      • 2.1.1 基本逻辑运算
      • 2.1.2 布尔代数公理及其他常用逻辑运算
      • 2.1.3 真值表
    • 2.2 逻辑代数的基本定律
      • 2.2.1 布尔代数的常用公式
      • 2.2.2 布尔代数的三个规则
    • 2.3 逻辑函数的标准表达式
      • 2.3.1 逻辑函数的最小项表达式
      • 2.3.2 逻辑函数的最大项表达式
      • 2.3.3 最小项表达式和最大项表达式的关系
      • 2.3.4 非标准表达式到标准表达式的转换
      • 2.3.5 任意项及其表示
    • 2.4 代数法化简逻辑函数
    • 2.5 卡诺图法化简逻辑函数
      • 2.5.1 逻辑函数的卡诺图表示
      • 2.5.2 卡诺图化简的步骤及举例
  • 3 组合逻辑电路
    • 3.1 组合逻辑电路的特点
    • 3.2 组合逻辑电路的分析
      • 3.2.1 组合逻辑电路的分析步骤
      • 3.2.2 组合逻辑电路分析举例
    • 3.3 组合逻辑电路的设计
      • 3.3.1 组合逻辑电路的设计步骤
      • 3.3.2 组合逻辑电路的实现方式
      • 3.3.3 组合逻辑电路设计举例
    • 3.4 中规模组合逻辑电路
      • 3.4.1 加法器和减法器
      • 3.4.2 编码器
      • 3.4.3 译码器
      • 3.4.4 数据选择器
      • 3.4.5 数值比较器
    • 3.5 中规模组合电路用于逻辑设计
      • 3.5.1 译码电路用作函数发生器
      • 3.5.2 用数据选择器作函数发生器
      • 3.5.3 用全加器作为数码转化器
    • 3.6 组合逻辑电路的竞争与冒险
      • 3.6.1 冒险的分类
      • 3.6.2 冒险的识别和消除
  • 4 集成触发器
    • 4.1 时序逻辑电路的特点
    • 4.2 触发器的基本特性
    • 4.3 触发器的记忆作用
    • 4.4 电位型触发器
      • 4.4.1 基本RS触发器
      • 4.4.2 可控RS触发器
      • 4.4.3 其他可控触发器
      • 4.4.4 可控电位型触发器的局限性
      • 4.4.5 电位型触发器的应用:锁存器
    • 4.5 钟控型触发器
      • 4.5.1 主从触发器
      • 4.5.2 边沿触发器
    • 4.6 触发器的逻辑符号
    • 4.7 CMOS触发器
      • 4.7.1 带使能端D触发器
      • 4.7.2 CMOS主从D触发器
      • 4.7.3 CMOS JK触发器
    • 4.8 触发器的转换
    • 4.9 集成触发器的时间参数
    • 4.10 钟控触发器构成的常用时序电路
      • 4.10.1 寄存器
      • 4.10.2 移位寄存器
      • 4.10.3 计数器
  • 5 时序逻辑电路
    • 5.1 时序电路的分类和描述
      • 5.1.1 时序电路的分类
      • 5.1.2 时序电路的描述
    • 5.2 同步时序电路的分析
      • 5.2.1 同步时序电路的一般框图
      • 5.2.2 序列信号发生器
    • 5.3 移位寄存器构成的时序电路
      • 5.3.1 环形计数器
      • 5.3.2 扭环形计数器
    • 5.4 常用时序电路的设计
      • 5.4.1 计数器的设计
      • 5.4.2 序列信号发生器的设计
      • 5.4.3 M序列发生器
    • 5.5 异步计数器
    • 5.6 中规模时序集成电路
      • 5.6.1 中规模同步计数器
      • 5.6.2 中规模计数器的应用
      • 5.6.3 中规模计数器的级联
      • 5.6.4 中规模移位寄存器
    • 5.7 计数器用于逻辑设计
    • 5.8 一般时序电路的分析
      • 5.8.1 一般时序电路的分析过程和特点举例
    • 5.9 一般时序电路的设计
      • 5.9.1 状态表的建立
      • 5.9.2 状态表的简化
      • 5.9.3 状态分配
  • 6 大规模数字集成电路
    • 6.1 大规模数字集成电路的概述
    • 6.2 存储器
      • 6.2.1 存储器的分类
      • 6.2.2 ROM作为逻辑器件
      • 6.2.3 存储器容量的扩展
    • 6.3 可编程逻辑阵列
    • 6.4 可编程阵列逻辑
    • 6.5 通用阵列逻辑
    • 6.6 复杂可编程逻辑器件
    • 6.7 现场可编程门阵列
    • 6.8 CPLD和FPGA的比较
复杂可编程逻辑器件

规模

CPLD中的逻辑块类似于一个小规模PLD,通常一个逻辑块包含4~20个宏单元,每个宏单元一般由乘积项阵列、乘积项分配和可编程寄存器构成。每个宏单元有多种配置方式,各宏单元也可级联使用, 因此可实现较复杂组合逻辑和时序逻辑功能。对集成度较高的CPLD,通常还提供了带片内RAM/ROM的嵌入阵列块。可编程互连通道主要提供逻辑块、宏单元、输入/输出引脚间的互连网络。输入/输出块(I/O块)提供内部逻辑到器件I/O引脚之间的接口。

逻辑规模较大的CPLD一般还内带JTAG边界扫描测试电路,可对已编程的高密度可编程逻辑器件做全面彻底的系统测试,此外也可通过JTAG接口进行在系统编程。

由于集成工艺、集成规模和制造厂家的不同,各种CPLD分区结构、逻辑单元等也有较大的差别。

可编程互连阵列结构

EPM7128S器件

(1)EPM7128S器件基本结构

EPM7128S器件主要由逻辑阵列块LAB、宏单元、I/O控制块和可编程互连阵列PIA构成。

在多阵列矩阵结构中,每个宏单元有一个可编程的与阵列和一个固定的或阵列, 以及一个具有独立可编程时钟、时钟使能、清除和置位功能的可配置触发器。每16个宏单元组成一组,构成一个灵活的逻辑阵列模块LAB。多个LAB通过可编程互连阵列PIA和全局总线相连。每个LAB还与相应的I/O控制模块相连,以提供直接的输入和输出通道。

(2)EPM7128S宏单元结构

EPM7128S的每个宏单元能够单独配置为组合逻辑或时序逻辑工作方式。宏单元主要由逻辑阵列、乘积项选择矩阵和可编程寄存器3部分组成。可编程寄存器根据逻辑需要,可以编程旁路,实现组合逻辑。如作为寄存器使用,则相应的可编程逻辑器件开发软件将根据设计逻辑需要,选择有效的寄存器工作方式,以使设计所用器件资源最少。

XCR3064XL器件

XCR3064XL器件结构。

XCR3064XL器件宏单元结构,由零功率互连阵列连接起来的功能块及I/O单元构成,每个逻辑块含16个宏单元。

全局互连结构CPLD

ispLSI1032器件结构

ispLSI1032器件主要由全局布线区GRP、通用逻辑块GLB、输入/输出单元IOC、输出布线区ORP和时钟分配网络CDN构成。

通用逻辑块GLB

通用逻辑块GLB主要用于实现逻辑功能,GLB主要由与阵列、乘积项共享阵列、4输出逻辑宏单元和控制逻辑电路组成。

应用

基于SRAM(静态随机存储器)的可重配置PLD(可编程逻辑器件)的出现,为系统设计者动态改变运行电路中PLD的逻辑功能创造了条件。PLD使用SRAM单元来保存配置数据。这些配置数据决定了PLD内部的互连关系和逻辑功能,改变这些数据,也就改变了器件的逻辑功能。由于SRAM的数据是易失的,因此这些数据必须保存在PLD器件以外的EPROM、EEPROM或FLASH ROM等非易失存储器内,以便使系统在适当的时候将其下载到PLD的SRAM单元中,从而实现在电路可重配置ICR(In-Circuit Reconfigurability)。