ZHCA964A September   2019  – July 2020 TMS320F280021 , TMS320F280021-Q1 , TMS320F280023 , TMS320F280023-Q1 , TMS320F280023C , TMS320F280025 , TMS320F280025-Q1 , TMS320F280025C , TMS320F280025C-Q1 , TMS320F280040-Q1 , TMS320F280040C-Q1 , TMS320F280041 , TMS320F280041-Q1 , TMS320F280041C , TMS320F280041C-Q1 , TMS320F280045 , TMS320F280048-Q1 , TMS320F280048C-Q1 , TMS320F280049 , TMS320F280049-Q1 , TMS320F280049C , TMS320F280049C-Q1 , TMS320F28075 , TMS320F28075-Q1 , TMS320F28076 , TMS320F28374D , TMS320F28374S , TMS320F28375D , TMS320F28375S , TMS320F28375S-Q1 , TMS320F28376D , TMS320F28376S , TMS320F28377D , TMS320F28377D-EP , TMS320F28377D-Q1 , TMS320F28377S , TMS320F28377S-Q1 , TMS320F28378D , TMS320F28378S , TMS320F28379D , TMS320F28379D-Q1 , TMS320F28379S , TMS320F28384D , TMS320F28384S , TMS320F28386D , TMS320F28386S , TMS320F28388D , TMS320F28388S , TMS320F28P650DH , TMS320F28P650DK , TMS320F28P650SH , TMS320F28P650SK , TMS320F28P659DK-Q1

 

  1.   商标
  2. 1简介
  3. 2从硬件角度介绍 CLB
    1. 2.1 CLB 如何工作
    2. 2.2 CLB 的系统级视图
    3. 2.3 深入探讨 CLB 架构
      1. 2.3.1 输入多路复用器
      2. 2.3.2 (输出的)外设多路复用器
      3. 2.3.3 CLB 逻辑块
        1. 2.3.3.1 查找表 (LUT)
        2. 2.3.3.2 有限状态机 (FSM)
        3. 2.3.3.3 计数器
  4. 3CLB 用例概述
    1. 3.1 CLB 示例 16 – 将两个 EPWM 输出与来自 CPREG 寄存器的信号组合在一起
    2. 3.2 CLB 示例 17 – 使用 CPU 信号修改外设输入信号
    3. 3.3 CLB 示例 18 – 创建您自己的外设来替代 ECAP3
    4. 3.4 CLB 示例 19 – 仅使用外部信号来创建您自己的外设
  5. 4FPGA 至 CLB 逻辑转换示例 16
    1. 4.1 原始 FPGA 设计
      1. 4.1.1 FPGA 胶合逻辑的原理图
      2. 4.1.2 胶合逻辑的 VHDL 代码
      3. 4.1.3 测试输入的 VHDL 代码
      4. 4.1.4 FPGA 胶合逻辑仿真波形
    2. 4.2 FPGA 到 CLB 的转换过程
      1. 4.2.1 将 PWM 发生器映射到 EPWM 外设
      2. 4.2.2 将 VHDL 中的胶合逻辑映射到 CLB
        1. 4.2.2.1 输入
        2. 4.2.2.2 逻辑分配
        3. 4.2.2.3 输出
    3. 4.3 生成的 C2000 设计
      1. 4.3.1 信号连接
      2. 4.3.2 仿真波形
      3. 4.3.3 ControlCard、LaunchPad 波形
  6. 5参考文献
  7. 6修订历史记录

FPGA 胶合逻辑的原理图

胶合逻辑块有三个输入信号和一个输出。输入 1 是连续方波,输入 2 是逻辑 0 常数,输入 3 是另一个频率低于输入 1 的方波。OUT0 信号 反映了根据图 4-4 中所列胶合逻辑功能进行的三个输入逻辑组合。

首先,简单状态机的初始 SELECT2 输出为 0,因此输出 0 信号的值直接映射了输入 1 的值。这导致多路复用器电路选择 IN1 代替 IN2 来驱动内部信号 IN4。接下来,输入 4 与输入 3 进行逻辑或运算,结果通过带寄存器输出触发器传递至驱动输出 0。初始 IN3 为逻辑 0,因此 IN0 在延迟一个 CLB 时钟周期以后,开始输出 IN1 的值。

同时,下降沿检测电路会为输入 1 的每次从低到高转换创建一个单时钟脉冲 ENABLE。对于每个 ENABLE 脉冲,计数器将计数值递增 1。随着计数器的递增,它会根据两个匹配值(MATCH1 和 MATCH2)来检查当前计数值。达到任一匹配值后,组合逻辑就会立即向计数器和简单状态机发出单个 RESET 脉冲。这在计数值变为 7 时首次发生。产生的 RESET 脉冲将计数器重置回 0,并将简单状态机的状态(SELECT2 信号)从 0 翻转为 1。

该新状态导致多路复用器选择输入 2 而不是输入 1,因此在一个时钟周期延迟后输出变为 0。在该新状态下,达到 MATCH2 后,计数器将仅在输入 1 的三个脉冲之后发出另一个 RESET 脉冲,此后重复该模式,计数器再次开始计数到 7。这一直持续到 IN3 变为逻辑 1 为止,此时无论 IN1 或 IN2 的逻辑电平如何,OUT0 都被强制变为逻辑 1。

图 4-4 CLB 示例 16 – FPGA 内部的胶合逻辑实现