SPRUJ53B April 2024 – September 2024 TMS320F28P550SJ , TMS320F28P559SJ-Q1
Each CLB module has eight inputs that are applied to the reconfigurable logic cell. Each of these inputs can be selectively driven by a predefined set of signals. A two-level mux structure allows each input of each CLB instance to select a signal.
A set of signals is common to all the CLB instances. These are referred to as global inputs in Figure 30-6. A separate set of signals is unique to each instance of the CLB. These are referred to as local inputs in Figure 30-6.
Registers CLB_LCL_MUX_SEL_1 and CLB_LCL_MUX_SEL_2 control the local mux selection for each of the eight inputs. The mux control registers CLB_GLBL_MUX_SEL_1 and CLB_GLBL_MUX_SEL_2 control the global mux selection for each of the eight inputs.
The local mux select value of 0 causes the selected global mux input signal to be connected to the corresponding CLB Input. For example, setting CLB_LCL_MUX_SEL_IN_0 = 0 and CLB_GLBL_MUX_SEL_IN_0 = 8 causes the global mux input number 8 to be connected to CLB Input 0. The input filter feature can be used to enable edge detection on the CLB inputs. The input filter feature can also synchronize the input with the CLB clock.
The global mux settings are shown in Table 30-2. The local input mux settings are shown in Table 30-3.
Figure 30-7 shows an example of how to use synchronization for an asynchronous signal, in this case the ePWM signal. Figure 30-8 shows an instance of using input pipelining for a synchronous signal, which here is the ePWM TBCLK signal. Note that these two input configurations are not used simultaneously, and each have a cycle delay that adds to the input path.
If a signal in the following table indicates that synchronization is not required, as the signal is already synchronous, then pipelining is required and must be enabled using the PIPE bit in the CLB_INPUT_FILTER register. This pipelining adds a 1 CLB clock cycle delay to the input. This is not to be mistaken with the PIPELINE_EN bit in the CLB_LOAD_EN register, which controls pipelining of the CLB operations in the HLC and counter blocks. Having synchronization and pipelining both enabled or both disabled is not recommended. Enabling both synchronization and pipelining introduces a delay of more than 2-3 CLB clock cycles on the signal path. Disabling both allows the completely asynchronous signal to be routed as an input.
CLB_GLBL_MUX_SEL | Signal Name | Synchronization Requirement |
---|---|---|
0 | EPWM1A | Enable |
1 | EPWM1A_OE | Enable |
2 | EPWM1B | Enable |
3 | EPWM1B_OE | Enable |
4 | EPWM1_CTR_ZERO | Disable |
5 | EPWM1_CTR_PRD | Disable |
6 | EPWM1_CTR_DIR | Disable |
7 | EPWM1_TBCLK | Disable |
8 | EPWM1_CTR_CMPA | Disable |
9 | EPWM1_CTR_CMPB | Disable |
10 | EPWM1_CTR_CMPC | Disable |
11 | EPWM1_CTR_CMPD | Disable |
12 | EPWM1A_AQ | Disable |
13 | EPWM1B_AQ | Disable |
14 | EPWM1A_DB | Disable |
15 | EPWM1B_DB | Disable |
16 | EPWM2A | Enable |
17 | EPWM2A_OE | Enable |
18 | EPWM2B | Enable |
19 | EPWM2B_OE | Enable |
20 | EPWM2_CTR_ZERO | Disable |
21 | EPWM2_CTR_PRD | Disable |
22 | EPWM2_CTR_DIR | Disable |
23 | EPWM2_TBCLK | Disable |
24 | EPWM2_CTR_CMPA | Disable |
25 | EPWM2_CTR_CMPB | Disable |
26 | EPWM2_CTR_CMPC | Disable |
27 | EPWM2_CTR_CMPD | Disable |
28 | EPWM2A_AQ | Disable |
29 | EPWM2B_AQ | Disable |
30 | EPWM2A_DB | Disable |
31 | EPWM2B_DB | Disable |
32 | EPWM3A | Enable |
33 | EPWM3A_OE | Enable |
34 | EPWM3B | Enable |
35 | EPWM3B_OE | Enable |
36 | EPWM3_CTR_ZERO | Disable |
37 | EPWM3_CTR_PRD | Disable |
38 | EPWM3_CTR_DIR | Disable |
39 | EPWM3_TBCLK | Disable |
40 | EPWM3_CTR_CMPA | Disable |
41 | EPWM3_CTR_CMPB | Disable |
42 | EPWM3_CTR_CMPC | Disable |
43 | EPWM3_CTR_CMPD | Disable |
44 | EPWM3A_AQ | Disable |
45 | EPWM3B_AQ | Disable |
46 | EPWM3A_DB | Disable |
47 | EPWM3B_DB | Disable |
48 | EPWM4A | Enable |
49 | EPWM4A_OE | Enable |
50 | EPWM4B | Enable |
51 | EPWM4B_OE | Enable |
52 | EPWM4_CTR_ZERO | Disable |
53 | EPWM4_CTR_PRD | Disable |
54 | EPWM4_CTR_DIR | Disable |
55 | EPWM4_TBCLK | Disable |
56 | EPWM4_CTR_CMPA | Disable |
57 | EPWM4_CTR_CMPB | Disable |
58 | EPWM4_CTR_CMPC | Disable |
59 | EPWM4_CTR_CMPD | Disable |
60 | EPWM4A_AQ | Disable |
61 | EPWM4B_AQ | Disable |
62 | EPWM4A_DB | Disable |
63 | EPWM4B_DB | Disable |
64 | CLBXBAR1 | Enable |
65 | CLBXBAR2 | Enable |
66 | CLBXBAR3 | Enable |
67 | CLBXBAR4 | Enable |
68 | CLBXBAR5 | Enable |
69 | CLBXBAR6 | Enable |
70 | CLBXBAR7 | Enable |
71 | CLBXBAR8 | Enable |
72 | CLB1_OUT16 | Disable |
73 | CLB1_OUT17 | Disable |
74 | CLB1_OUT18 | Disable |
75 | CLB1_OUT19 | Disable |
76 | CLB1_OUT20 | Disable |
77 | CLB1_OUT21 | Disable |
78 | CLB1_OUT22 | Disable |
79 | CLB1_OUT23 | Disable |
80 | CLB2_OUT16 | Disable |
81 | CLB2_OUT17 | Disable |
82 | CLB2_OUT18 | Disable |
83 | CLB2_OUT19 | Disable |
84 | CLB2_OUT20 | Disable |
85 | CLB2_OUT21 | Disable |
86 | CLB2_OUT22 | Disable |
87 | CLB2_OUT23 | Disable |
88 | EPWM3_DCAEVT1 | Enable |
89 | EPWM3_DCAEVT2 | Enable |
90 | EPWM3_DCBEVT1 | Enable |
91 | EPWM3_DCBEVT2 | Enable |
92 | EPWM3_DCAH | Enable |
93 | EPWM3_DCAL | Enable |
94 | EPWM3_DCBH | Enable |
95 | EPWM3_DCBL | Enable |
96 | EPWM9A | Enable |
97 | EPWM9A_OE | Enable |
98 | EPWM9B | Enable |
99 | EPWM9B_OE | Enable |
100 | EPWM10A | Enable |
101 | EPWM10A_OE | Enable |
102 | EPWM10B | Enable |
103 | EPWM10B_OE | Enable |
104 | ERAD_EVT0 | Enable |
105 | ERAD_EVT1 | Enable |
106 | ERAD_EVT2 | Enable |
107 | ERAD_EVT3 | Enable |
108 | ERAD_EVT4 | Enable |
109 | ERAD_EVT5 | Enable |
110 | ERAD_EVT6 | Enable |
111 | ERAD_EVT7 | Enable |
112 | FSIRXA_DATA_PKT_RCVD | Enable |
113 | FSIRXA_ERROR_PKT_RCVD | Enable |
114 | FSIRXA_PING_PKT_RCVD | Enable |
115 | FSIRXA_FRAME_DONE | Enable |
116 | FSIRXA_PING_TAG_MATCH | Enable |
117 | FSIRXA_DATA_TAG_MATCH | Enable |
118 | FSIRXA_ERROR_TAG_MATCH | Enable |
119 | FSIRXA_TRIG2 | Enable |
120 | SPIA_CLK_OUT | Enable |
121 | SPIA_POCI_IN | Enable |
122 | SPIA_PTE_OUT | Enable |
123 | SPIB_CLK_OUT | Enable |
124 | SPIB_POCI_IN | Enable |
125 | SPIB_PTE_OUT | Enable |
126-126 | Reserved | |
127 | FSIRXA_TRIG3 | Enable |
EPWMxA_OE and EPWMxB_OE refer to trip outputs from the respective EPWM module.
EPWMxA_AQ and EPWMxB_AQ refer to the output of the AQ submodule in the respective EPWM module.
EPWMxA_DB and EPWMBx_DB refer to the output of the DB submodule in the respective EPWM module.
If a signal in the following table indicates that synchronization is not required, as the signal is already synchronous, then pipelining is required and must be enabled using the PIPE bit in the CLB_INPUT_FILTER register. This pipelining adds a 1 CLB clock cycle delay to the input. This is not to be mistaken with the PIPELINE_EN bit in the CLB_LOAD_EN register, which controls pipelining of the CLB operations in the HLC and counter blocks. Having synchronization and pipelining both enabled or both disabled is not recommended. Enabling both synchronization and pipelining introduces a delay of more than 2-3 CLB clock cycles on the signal path. Disabling both allows the completely asynchronous signal to be routed as an input.
CLB_LCL_MUX_SEL | CLB1 | CLB2 | Synchronization Requirement |
---|---|---|---|
0 | CLB1_GLB_MUX_OUT | CLB2_GLB_MUX_OUT | Enable |
1 | EPWM1_DCAEVT1 | EPWM2_DCAEVT1 | Enable |
2 | EPWM1_DCAEVT2 | EPWM2_DCAEVT2 | Enable |
3 | EPWM1_DCBEVT1 | EPWM2_DCBEVT1 | Enable |
4 | EPWM1_DCBEVT2 | EPWM2_DCBEVT2 | Enable |
5 | EPWM1_DCAH | EPWM2_DCAH | Enable |
6 | EPWM1_DCAL | EPWM2_DCAL | Enable |
7 | EPWM1_DCBH | EPWM2_DCBH | Enable |
8 | EPWM1_DCBL | EPWM2_DCBL | Enable |
9 | EPWM1_OST | EPWM2_OST | Enable |
10 | EPWM1_CBC | EPWM2_CBC | Enable |
11 | ECAP1IN0 | ECAP2IN0 | Enable |
12 | ECAP1_OUT | ECAP2_OUT | Disable |
13 | ECAP1_OUT_EN | ECAP2_OUT_EN | Disable |
14 | ECAP1_CEVT1 | ECAP2_CEVT1 | Disable |
15 | ECAP1_CEVT2 | ECAP2_CEVT2 | Disable |
16 | ECAP1_CEVT3 | ECAP2_CEVT3 | Disable |
17 | ECAP1_CEVT4 | ECAP2_CEVT4 | Disable |
18 | EQEP1A | EQEP2A | Enable |
19 | EQEP1B | EQEP2B | Enable |
20 | EQEP1I | EQEP2I | Enable |
21 | EQEP1S | EQEP2S | Enable |
22 | CPU1_TBCLKSYNC | CPU1_TBCLKSYNC | Enable |
23 | SCIC_TX | Enable | |
24 | CPU1_HALT | CPU1_HALT | Enable |
25 | SPIA_PICO_OUT | SPIB_PICO_OUT | Enable |
26 | SPIA_CLK_IN | SPIB_CLK_IN | Enable |
27 | SPIA_PICO_IN | SPIB_PICO_IN | Enable |
28 | SPIA_PTE_IN | SPIB_PTE_IN | Enable |
29 | SCIA_TX | SCIB_TX | Enable |
30 | SPIA_POCI_OUT | SPIB_POCI_OUT | Enable |
31 | CLB1_PSCLK | CLB2_PSCLK | Enable |
32 | EPWM5A | EPWM5A | Enable |
33 | EPWM5A_OE | EPWM5A_OE | Enable |
34 | EPWM5B | EPWM5B | Enable |
35 | EPWM5B_OE | EPWM5B_OE | Enable |
36 | EPWM6A | EPWM6A | Enable |
37 | EPWM6A_OE | EPWM6A_OE | Enable |
38 | EPWM6B | EPWM6B | Enable |
39 | EPWM6B_OE | EPWM6B_OE | Enable |
40 | EPWM7A | EPWM7A | Enable |
41 | EPWM7A_OE | EPWM7A_OE | Enable |
42 | EPWM7B | EPWM7B | Enable |
43 | EPWM7B_OE | EPWM7B_OE | Enable |
44 | EPWM8A | EPWM8A | Enable |
45 | EPWM8A_OE | EPWM8A_OE | Enable |
46 | EPWM8B | EPWM8B | Enable |
47 | EPWM8B_OE | EPWM8B_OE | Enable |
48 | CLBINPUTXBAR1 | CLBINPUTXBAR1 | Enable |
49 | CLBINPUTXBAR2 | CLBINPUTXBAR2 | Enable |
50 | CLBINPUTXBAR3 | CLBINPUTXBAR3 | Enable |
51 | CLBINPUTXBAR4 | CLBINPUTXBAR4 | Enable |
52 | CLBINPUTXBAR5 | CLBINPUTXBAR5 | Enable |
53 | CLBINPUTXBAR6 | CLBINPUTXBAR6 | Enable |
54 | CLBINPUTXBAR7 | CLBINPUTXBAR7 | Enable |
55 | CLBINPUTXBAR8 | CLBINPUTXBAR8 | Enable |
56 | CLBINPUTXBAR9 | CLBINPUTXBAR9 | Enable |
57 | CLBINPUTXBAR10 | CLBINPUTXBAR10 | Enable |
58 | CLBINPUTXBAR11 | CLBINPUTXBAR11 | Enable |
59 | CLBINPUTXBAR12 | CLBINPUTXBAR12 | Enable |
60 | CLBINPUTXBAR13 | CLBINPUTXBAR13 | Enable |
61 | CLBINPUTXBAR14 | CLBINPUTXBAR14 | Enable |
62 | CLBINPUTXBAR15 | CLBINPUTXBAR15 | Enable |
63 | CLBINPUTXBAR16 | CLBINPUTXBAR16 | Enable |
The GPREG is accessible by the CPU and the bits of this register can be used as BOUNDARY INPUTs for the CLB Tiles. For example, CLB1s GPREG[0] can be used as BOUNDARY IN0 (Cell Input 0) for the corresponding CLB Tile.
To connect multiple tiles to each other, you can use the CLBx OUT4/5 and connect to CLBy BOUNDARY INz through the CLB X-BAR and the Global Signals Mux.
Another option is to connect the CLBx OUT0-7 to a GPIO and then use the INPUT X-BAR to bring the signal back in to the device and connect to the CLBy BOUNDARY INz through the CLB X-BAR and the Global Signals Mux.
To use GPIOs as inputs to the CLB, you must utilize the Input X-BAR and the CLB X-BAR. Figure 30-5 shows how GPIOs can be used as inputs to the CLB tiles.