ZHCU712B april   2020  – july 2023

 

  1.   1
  2.   CLB 工具
  3.   商标
  4. 1引言
    1. 1.1 CLB 工具概述
    2. 1.2 CLB 配置过程概述
  5. 2开始使用
    1. 2.1 CLB 相关配套资料
      1. 2.1.1 基础资料
      2. 2.1.2 入门资源
      3. 2.1.3 专家资料
    2. 2.2 引言
    3. 2.3 安装
      1. 2.3.1 用于编译 SystemC 的安装
      2. 2.3.2 安装仿真查看器
  6. 3使用 CLB 工具
    1. 3.1 导入空 CLB 工程
    2. 3.2 更新变量路径
    3. 3.3 配置 CLB 逻辑块
    4. 3.4 创建 CLB 方框图
    5. 3.5 使用仿真器
      1. 3.5.1 “Statics”面板
      2. 3.5.2 创建输入激励
      3. 3.5.3 运行仿真
      4. 3.5.4 布线信号说明
  7. 4示例
    1. 4.1 基础示例
      1. 4.1.1  空 CLB 工程
      2. 4.1.2  示例 3 – PWM 生成
      3. 4.1.3  示例 7 – 状态机
      4. 4.1.4  示例 13 – 推挽接口
      5. 4.1.5  示例 14 – 多逻辑块
      6. 4.1.6  示例 15 – 逻辑块间延迟
      7. 4.1.7  示例 16 - 胶合逻辑
      8. 4.1.8  示例 18 - AOC
      9. 4.1.9  示例 19 - AOC 释放控制
      10. 4.1.10 示例 20 - CLB XBAR
    2. 4.2 入门示例
      1. 4.2.1  示例 1 – 组合逻辑
      2. 4.2.2  示例 2 – GPIO 输入滤波器
      3. 4.2.3  示例 4 – PWM 保护
      4. 4.2.4  示例 5 – 事件窗口
      5. 4.2.5  示例 6 – 信号生成和检查
      6. 4.2.6  示例 8 – 外部与门
      7. 4.2.7  示例 9 – 计时器
      8. 4.2.8  示例 10 – 具有两种状态的计时器
      9. 4.2.9  示例 11 – 中断标签
      10. 4.2.10 示例 12 – 输出相交
      11. 4.2.11 示例 17 - 单次 PWM 生成
      12. 4.2.12 示例 21 - 时钟预分频器和 NMI
      13. 4.2.13 示例 22 - 串行器
      14. 4.2.14 示例 23 - LFSR
      15. 4.2.15 示例 24 - 锁定输出屏蔽
      16. 4.2.16 示例 25 - 输入流水线模式
      17. 4.2.17 示例 26 - 计时流水线模式
    3. 4.3 专家示例
      1. 4.3.1 示例 27 - SPI 数据导出
      2. 4.3.2 示例 28 - SPI 数据导出 DMA
      3. 4.3.3 示例 29 - 时间戳
      4. 4.3.4 示例 30 - 循环冗余校验
      5. 4.3.5 CLB TDM 串行端口
      6. 4.3.6 CLB LED 驱动器
      7. 4.3.7 FPGA/CPLD 到 C2000 示例
  8. 5在现有 DriverLib 工程中启用 CLB 工具
  9. 6常见问题解答 (FAQ)
  10. 7修订历史记录

布线信号说明

本节简要说明了在“CLB.vcd”文件中创建的不同跟踪信号。请注意,某些信号或组不可用,具体取决于为其创建仿真的器件上可用的 CLB 类型。

注: 以下规则用于缩写和缩短跟踪信号列表:
  1. “TILE#”是 Tile Design 实例的名称
  2. “N”代表 0 到 7,用于所指示信号的多个实例
  3. “X”表示 0 到 2,用于所指示信号的多个实例
  4. “Y”表示 0 到 3,用于所指示信号的多个实例
表 3-3 SystemC 顶层跟踪信号
跟踪信号名称 说明
sc_top_clock CLB 的时钟信号
sc_top_reset CLB 的复位信号
sc_top_enable CLB 使能信号;用于启用 CLB 子模块
表 3-4 异步输出调节块跟踪信号(CLB 类型 2)
跟踪信号名称 说明
TILE#_AOC_N_clb_output AOC 子模块的输出
TILE#_AOC_N_mux_ctrl [15:0] AOC 多路复用器控制值;值与 CLB_OUTPUT_COND_CTRL_N 寄存器的格式相同
TILE#_AOC_N_release_signal 释放信号;根据在 TILE#_AOC_N_mux_ctrl 中选择的释放选项确定何时设置、清除或延迟 CLB 输出(默认释放信号不会改变 CLB 输出)
TILE#_AOC_N_gate_signal 栅极信号;该信号通过 AND、OR 或 XOR 运算与 CLB 输出进行逻辑组合,具体取决于在 TILE#_AOC_N_mux_ctrl 中选择的选项(默认栅极信号不会改变输出)
TILE#_AOC_N_mux_input_clb_tile_output CLB 输出信号对应于该信号的同一 AOC 编号;例如,CLB 输出 0 是 AOC 0 的输入选项
TILE#_AOC_N_mux_input_boundary_input CLB 边界输入信号对应于该信号的同一 AOC 编号;例如,CLB 边界输入 0 是 AOC 0 的输入选项
表 3-5 边界跟踪信号
跟踪信号名称 说明
TILE#_BOUNDARY_CLB_outputN CLB 边界输出信号;该信号从 CLB 外设路由到器件的其余部分;如果器件具有此类 CLB,则该信号已通过 AOC 子模块(有关更多详细信息,请参阅器件技术参考手册中的“CLB 逻辑块”部分)
TILE#_BOUNDARY_muxed_and_filtered_inputN 在通过任何同步、启用输入流水线滤波器或边缘滤波器后,CLB 模块的输入
TILE#_BOUNDARY_inputN_ctrl [31:0] 用于启用同步、输入流水线滤波器或边缘滤波器的控制值
TILE#_BOUNDARY_original_inputN 在进行同步、流水线或边沿滤波等任何修改之前的 CLB 模块输入
TILE#_BOUNDARY_clock CLB 的时钟信号
表 3-6 计数器块跟踪信号
跟踪信号名称 说明
TILE#_COUNTER_X_reconfig_pipeline_en 可重新配置的流水线的使能信号,用于对 HLC 和计数器子模块的操作进行流水线处理(这与流水线输入滤波器启用不同)
TILE#_COUNTER_X_counter_equals_match2 当计数器值等于匹配基准 2 值时,此信号为高电平;如果在串行器模式下启用匹配基准 2 抽头输出、则当所选的计数器位位置为高电平时,此信号为高电平
TILE#_COUNTER_X_counter_equals_match1 当计数器值等于匹配基准 1 值时,此信号为高电平;如果在串行器模式下启用匹配基准 1 抽头输出,则当所选的计数器位位置为高电平时,此信号为高电平
TILE#_COUNTER_X_counter_equals_zero 当计数器值等于零时,此信号为高电平
TILE#_COUNTER_X_match2_val [31:0] 匹配基准 2 的值;可通过 HLC 进行修改
TILE#_COUNTER_X_match1_val [31:0] 匹配参考 1 的值;可通过 HLC 进行修改
TILE#_COUNTER_X_counter_output [31:0] 计数器本身的值
TILE#_COUNTER_X_hlc_match2_load_en 加载使能信号,用于确定何时从 HLC 子模块加载匹配基准 2 值;这与 TILE#_HLC_hlc_counterX_match2_load_en 信号匹配
TILE#_COUNTER_X_hlc_match1_load_en 加载使能信号,用于确定何时从 HLC 子模块加载匹配基准 1 值;这与 TILE#_HLC_hlc_counterX_match1_load_en 信号匹配
TILE#_COUNTER_X_hlc_counter_load_en 加载使能信号,用于确定何时使用来自 HLC 子模块的值加载计数器;这与 TILE#_HLC_hlc_counterX_load_en 信号匹配
TILE#_COUNTER_X_hlc_counter_load_val [31:0] 从 HLC 子模块加载的计数器值;此值加载到匹配基准 1、匹配基准 2 或计数器值,具体取决于是否设置了适当的 HLC 加载使能(即取决于 HLC 正在执行的指令)。这与 TILE#_HLC_counter_hlc_load_value 信号匹配
TILE#_COUNTER_X_match2_tap [4:0] 指定计数器的哪个位要针对匹配基准 2 进行抽取
TILE#_COUNTER_X_match2_tap_en 使能信号,它允许计数器抽取由 TILE#_COUNTER_X_match2_tap 指定的位;TILE#_COUNTER_X_counter_equals_match2 在设置适当的抽取位时为高电平,这会有效地将位位置从计数器抽取到匹配基准 2 输出
TILE#_COUNTER_X_match1_tap [4:0] 指定要为匹配基准 1 抽取计数器的哪个位
TILE#_COUNTER_X_match1_tap_en 使能信号,它允许计数器抽取由 TILE#_COUNTER_X_match1_tap 指定的位;在设置了适当的抽取位时,TILE#_COUNTER_X_counter_equals_match1 为高电平,这会有效地将位位置从计数器抽取到匹配基准 2 输出
TILE#_COUNTER_X_lfsr_en 线性反馈移位寄存器的使能信号;这将允许计数器子模块计算串行位流上的 CRC
TILE#_COUNTER_X_global_serializer_en 串行器的使能信号;启用时,计数器加载下一个 LFSR 串行值或相应的串行值(有关更多详细信息,请参阅器件技术参考手册)
TILE#_COUNTER_X_mode1 控制计数器的方向;设置为 1 时递增计数,设置为 0 时递减计数
TILE#_COUNTER_X_mode0 控制是否停止计数器;设置为 1 时启用计数
TILE#_COUNTER_X_global_reset CLB 的复位信号
TILE#_COUNTER_X_add_or_shift_dir 如果计数器事件已启用且未针对加载事件进行配置,则当事件增加计数器值或将计数器值左移动时,该信号为高电平,否则设置为 0
TILE#_COUNTER_X_add_or_shift_on_event_en 如果计数器配置为在事件发生时增加或移位,则此信号设置为高电平,否则设置为 0
TILE#_COUNTER_X_add_or_shift_mode 如果计数器增加或减少,则此信号设置为高电平,否则设置为 0
TILE#_COUNTER_X_global_en CLB 使能信号
TILE#_COUNTER_X_event_load_val [31:0] 当事件发生且事件操作配置为“load”时,会将此值加载到计数器
TILE#_COUNTER_X_event 当一个事件已经发生或正在发生时,此信号为高电平
TILE#_COUNTER_X_counter_reset 计数器子模块的复位信号
TILE#_COUNTER_X_clock CLB 的时钟信号
表 3-7 有限状态机阻止跟踪信号
跟踪信号名称 说明
TILE#_FSM_X_fsm_lut_output FSM 查找表输出方程的输出
TILE#_FSM_X_fsm_s1_output FSM 状态 1 方程的输出
TILE#_FSM_X_fsm_s0_output FSM 状态 0 方程的输出
TILE#_FSM_X_LUT_output_equation [15:0] 表示 FSM 查找表输出方程的值
TILE#_FSM_X_state1_equation_output [15:0] 表示 FSM 状态 1 方程的值
TILE#_FSM_X_state0_equation_output [15:0] 表示 FSM 状态 0 方程的值
TILE#_FSM_X_extra_external_input_select1 选择外部输入 3 (e3) 的值来自何处;何时使用高电平 e3,何时使用低电平状态 1 (s1)
TILE#_FSM_X_extra_external_input_select0 选择外部输入 2 (e2) 的值的来源;何时使用高电平 e2,何时使用低电平状态 0 (s0)
TILE#_FSM_X_extra_external_input1 FSM 子模块的额外外部输入 1 (xe1);选择作为 xe1 的信号来自 CLB 内部并且只能用于查找表输出方程中
TILE#_FSM_X_extra_external_input0 FSM 子模块的额外外部输入 0 (xe0);选择作为 xe0 的信号来自 CLB 内部并且只能用于查找表输出方程中
TILE#_FSM_X_external_input1 FSM 子模块的外部输入 1 (e1);选择作为 e1 的信号来自 CLB 内部并且可用于状态 0、状态 1 和查找表输出方程中
TILE#_FSM_X_external_input0 FSM 子模块的外部输入 0 (e0);选择作为 e0 的信号来自 CLB 内部并且可用于状态 0、状态 1 和查找表输出方程中
TILE#_FSM_X_global_reset CLB 的复位信号
TILE#_FSM_X_global_en CLB 使能信号
TILE#_FSM_X_clock CLB 的时钟信号
表 3-8 高级控制器块跟踪信号
跟踪信号名称 说明
TILE#_HLC_spi_export_receive_buffer [15:0] 表示存储在 SPI RX 缓冲区中的数据;这有助于使用 HLC 子模块通过 SPI 缓冲区验证数据导出
TILE#_HLC_fifo_overflow_signal 当为高电平时,此信号指示发生了 FIFO 上溢(在 FIFO 满时推)
TILE#_HLC_fifo_underflow_signal 当为高电平时,此信号指示发生了 FIFO 下溢(在 FIFO 为空时拉)
TILE#_HLC_fifo_write_pointer [1:0] 推 FIFO 写指针的当前值(零索引)
TILE#_HLC_fifo_read_pointer [1:0] 拉 FIFO 读取指针的当前值(零索引)
TILE#_HLC_push_fifo(Y) [31:0] 代表推 FIFO 中的当前值
TILE#_HLC_pull_fifo(Y) [31:0] 代表拉 FIFO 中的当前值
TILE#_HLC_program_current_instruction [11:0] 显示 HLC 正在执行当前指令的操作码的信号
TILE#_HLC_register(Y) [31:0] 表示 HLC 寄存器 R0 至 R3 的当前值
TILE#_HLC_program_interrupt_number [31:0] 指示 HLC 触发了哪个中断的信号;默认值为 0xFFFF,否则该值代表来自中断操作码最后 6 位的中断值
TILE#_HLC_program_interrupt_flag 当 HLC 执行的当前指令是中断时,此信号为高电平
TILE#_HLC_hlc_counterX_match2_load_en 使能信号;当 HLC 使用 MOV_T2 指令加载相应的计数器匹配基准 2 值时,此信号会变为高电平;这与相应的 TILE#_COUNTER_X_hlc_match2_load_en 信号匹配
TILE#_HLC_hlc_counterX_match1_load_en 使能信号;当 HLC 使用 MOV_T1 指令加载相应的计数器匹配基准 1 值时,此信号会变为高电平;这与相应的 TILE#_COUNTER_X_hlc_match1_load_en 信号匹配
TILE#_HLC_hlc_counterX_load_en 使能信号;当 HLC 使用 MOV 指令加载相应的计数器值时,此信号会变为高电平;这与相应的 TILE#_COUNTER_X_hlc_counter_load_en 信号匹配
TILE#_HLC_counter_hlc_load_value [31:0] 加载到匹配基准 1、匹配基准 2 的计数器值或取决于 HLC 正在执行的指令的计数器值;这与相应的 TILE#_COUNTER_X_hlc_counter_load_val 信号匹配
TILE#_HLC_spi_export_enable 此信号指示已启用通过 SPI RX 缓冲区导出数据
TILE#_HLC_reconfig_pipeline_enable 此信号指示启用了可重新配置的流水线模式(这会影响计数器和 HLC 子模块)
TILE#_HLC_alternate_event_clb_async_output(N) 此组信号表示来自 AOC 子模块的 CLB 的异步输出;这是用于 HLC 的替代事件之一
TILE#_HLC_alternate_event_clb_output(N) 此组信号表示来自 OUTLUT 子模块的 CLB 的输出;这是用于 HLC 的备用事件之一
TILE#_HLC_hlc_event_trigger(31..0) 表示 HLC 事件触发信号的一组信号;要查找哪个事件触发信号与哪个 HLC 事件触发信号值相对应,请查看器件技术参考手册(请注意,备用事件不是此组信号的一部分)
TILE#_HLC_alternate_event_input_selectY 此选择指示备用事件组是否用于相应的 HLC 事件
TILE#_HLC_spi_shift_value [4:0] 用于确定 32 位 R0 寄存器中哪 16 位导出到 SPI RX 缓冲区的值(例如,值 1 选择 R0 寄存器的位 16:1)
TILE#_HLC_spi_event_trigger [4:0] 此信号确定哪个 HLC 事件导致将数据导出到 SPI RX 缓冲区(请注意,事件选项来自静态开关模块,如器件技术参考手册中所述)
TILE#_HLC_programY_event_source [31:0] 该值指示哪个事件触发信号用于相应的 HLC 事件;例如,TILE#_HLC_program0_event_source 的值为 1(备用事件输入选择设置为 0)会使用计数器 0 匹配参考 2 作为事件 0 的源,该事件会触发 HLC 程序 0
TILE#_HLC_counterX_value [31:0] 相应计数器的当前值;这指示执行 HLC 指令时正在使用的值,其中 C0、C1 或 C2 作为操作数
TILE#_HLC_program_global_load_en CLB 使能信号
TILE#_HLC_program_reset CLB 的复位信号
TILE#_HLC_program_clock CLB 的时钟信号
表 3-9 查找表块跟踪信号
跟踪信号名称 说明
TILE#_LUT_X_output 查找表子模块的输出
TILE#_LUT_X_output_equation [15:0] 代表查找表逻辑方程的值
TILE#_LUT_X_inputY 查找表子模块的输入
表 3-10 输出查找表块跟踪信号
跟踪信号名称 说明
TILE#_OUTLUT_N_output 输出查找表子模块的输出
TILE#_OUTLUT_N_output_equation [7:0] 表示输出查找表逻辑方程的值
TILE#_OUTLUT_N_inputX 查找表子模块的输入