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 , TMS320F28P659DH-Q1 , TMS320F28P659DK-Q1 , TMS320F28P659SH-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修订历史记录

CLB 的系统级视图

图 2-4 显示了 C2000 外设、XBar 和 GPIO 多路复用器。可以将该图与图 2-5 进行对比,后者显示了相同的外设,外加 CLB。通过比较这两个图,您可以确切地看到 CLB 触及了 C2000 的哪些部分。在其基本级别的形式中,CLB 由 CLB1、CLB2、CLB3 和 CLB4 块构成。每个 CLB 块都具有与相应控制外设的专用连接。例如,CLB1 连接到 EPWM1、QEP1 和 ECAP1。同样地,CLB2 连接到 EPWM2、QEP2 和 ECAP2 等等。此外,所有 CLB 模块都连接到称为全局信号的一组共享输入信号,这些信号来源于全部四个 EPWM 模块和 CLB XBar。每个 CLB 块还能够驱动 CLB INTR 信号来中断 CPU 或 CLA。最后,四个 CLB 块中的每个块都挂在 CPU 和 CLA 总线上,从而使 CPU 和 CLA 能够访问 CLB 配置和数据寄存器。

图 2-4 显示了不带 CLB 的 C2000 外设

查看图 2-5,可以发现专用的 CLB 信号包含本地输入(黑色),CLB 输出(绿色)和外设信号多路复用器控制信号(橙色)。例如,CLB1 的本地输入包含来自 EPWM1、QEP1 和 ECAP1 的信号混合以及两个 CPU 信号 – CPU TBCLKSYNC 和 CPU HALT。CLB1 使用全局信号和本地 1 信号来生成 CLB1 输出信号。根据相应(橙色)外设信号多路复用器的设置状态,CLB1 输出信号可以注入 EPWM1、QEP1 或 ECAP1 控制外设中,或者被这些外设忽略。换句话说,(绿色)CLB 输出信号是替换信号,将替代控制外设中的原始信号注入,而(橙色)外设信号多路复用器选择使用相应的 CLB 输出信号替换控制外设的哪些内部信号(或不替换)。最后,一些(绿色)CLB 输出信号也被路由到 CLB/OUTPUT XBar,在此处它们可以通过 GPIO 多路复用器发送到选定的器件引脚,或者输入全局输入信号以成为四个 CLB 模块中任何一个的输入。

CLB2、CLB3 和 CLB4 的工作方式相同,只是 CLB3 和 CLB4 所使用的本地信号较少(缺少 QEP3 和 QEP4 外设,并且未连接到 CPU TBCLKSYNC 和 CPU HALT)。

在内部,四个 CLB 块均由三个相同的构建块组成,这些构建块是 CLB 输入选择器、CLB 逻辑块和外设信号多路复用器。CLB 输入选择器从全局和本地总线中选择八个信号。每个 CLB 逻辑块将逻辑方程应用于八个输入,以按通过配置寄存器预先配置逻辑块的方式来驱动多达八个输出信号。最后,来自 CLB 逻辑块的 8 个输出被馈送到外设信号多路复用器中,在该多路复用器中可以选择这些输出以替换(或不替换)相应控制外设内 14 个可能内部信号中的 8 个。总的来说,CLB 的三个构建块的操作由相应的 CLB 配置寄存器进行控制。CLB 输入选择器和 CLB 外设信号多路复用器的配置寄存器加载通过功能调用完成,而 CLB 逻辑块的配置寄存器通过基于 GUI 的 SysConfig 工具生成的代码进行加载。以下各节更详细地说明各个 CLB 构建块如何协同工作以修改控制外设,实现新外设,或使用选定的 GPIO 来生成胶合逻辑。

图 2-5 显示了带 CLB 的 C2000 外设