C2000 DSP中CLB应用简单说明
CLB LUT使用示例
参考clb_1.svg

使用in0 和 in1 输入,利用4输入的LUT0,进行逻辑运算,通过OUTLUT0 -> CLBOUT12 -> outputxbar -> gpio
CLB FSM使用示例
参考clb_2.svg

使用in0 和 in1 输入,利用4输入的FSM0,进行逻辑运算 和 状态跳转,
FSMOUT -> OUTLUT0 -> CLBOUT12 -> outputxbar -> gpio
FSM0_S0 -> OUTLUT1 -> clbout13 -> outputxbar -> gpio
FSM0_S1 -> OUTLUT2 -> clbout14 -> clboutputxbar -> gpio
CLB COUNTER使用示例
参考clb_3.svg

使用in0 和 in1 输入,利用4输入的COUNTER0,实现计数器功能,reset 来自cnt=match2, event事件来自in0,事件为add,当事件触发时,进行cnt+event_load_val的动作;
cnt=zero -> outlut0 -> clbout0;
cnt=match1->outlut1->clbout1;
cnt=match2->outlut2->clbout2;
CLB给epwm输出制造死区
参考clb_4.svg
旨在确保有源高互补对 PWM 配置在任何情况下都始终以最小死区时间运行,不受生成 PWM 的模块如何配置的影响。该示例演示了如何配置 4 个独立的 PWM 模块,为 4 路 PWM 通道实现保护功能。其中,PWM 模块 1~4 的输出分别由 CLB 模块 1~4 进行控制。
Epwmxa->in0(检测下降沿)
Epwmxa->in1
Epwmxb->in2(检测下降沿)
Epwmxb->in3
原始输出:

经过CLB输出:

CLB1-4之间串联起来
参考clb_5.svg
数据流向为
Clb1in0->clb1outlut0->clb1out16->
Clb1in1->clb1outlut1->clb1out17->
Clb1in2->clb1outlut2->clb1out18->
Clb1in3->clb1outlut3->clb1out19->
Clb1in4->clb1outlut4->clb1out20->
Clb1in5->clb1outlut5->clb1out21->
Clb1in6->clb1outlut6->clb1out22->
Clb1in7->clb1outlut7->clb1out23->

Clb2in0->clb2outlut0->clb2out16->
Clb2in1->clb2outlut1->clb2out17->
Clb2in2->clb2outlut2->clb2out18->
Clb2in3->clb2outlut3->clb2out19->
Clb2in4->clb2outlut4->clb2out20->
Clb2in5->clb2outlut5->clb2out21->
Clb2in6->clb2outlut6->clb2out22->
Clb2in7->clb2outlut7->clb2out23->
Clb3in0->clb3outlut0->clb3out16->
Clb3in1->clb3outlut1->clb3out17->
Clb3in2->clb3outlut2->clb3out18->
Clb3in3->clb3outlut3->clb3out19->
Clb3in4->clb3outlut4->clb3out20->
Clb3in5->clb3outlut5->clb3out21->
Clb3in6->clb3outlut6->clb3out22->
Clb3in7->clb3outlut7->clb3out23->
Clb4in0->clb4outlut0->clb4out16->
Clb4in1->clb4outlut1->clb4out17->
Clb4in2->clb4outlut2->clb4out18->
Clb4in3->clb4outlut3->clb4out19->
Clb4in4->clb4outlut4->clb4out20->
Clb4in5->clb4outlut5->clb4out21->
Clb4in6->clb4outlut6->clb4out22->
Clb4in7->clb4outlut7->clb4out23->clboutputxbar->gpio
夜雨聆风