Datapath chaining, shift operation, question about MSB configuration

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
RaAl_264636
Level 6
Level 6
50 sign-ins 25 sign-ins 10 solutions authored

Hello,

I've to chain two datapaths with parallel I/O, therefore I can't use the preconfigured DP16 and have to chain manually. There should be a right shift between the two DPs.

Do I have to enable/set MSB_EN flag and set MSB to 7? From the documentation it's not clear if MSB_EN enables the selection of a particular MSB or completely disables MSB - which wouldn't make sense IMHO. If it enables just MSB selection, then MSB_EN is redundant because all bits from 0 to 7 can be chosen. If it disables MSB at all then the SI/SO IOs wouldn't work anymore. Figure 21-16 of the PSoC 5LP reference manual doesn't help to understand it, because 'sil' input is mentioned there twice (input of the leftmost bit and at the left input routing switch) and the corresponding routing switch includes chained signal.

So, do I have to enable MSB and select bit 7 at all if I want to shift from bit 0 of DP_H into bit 7 of DP_L?

Regards

0 Likes
1 Solution
RodolfoGL
Employee
Employee
250 solutions authored 250 sign-ins 5 comments on KBA

You don't need to set MSB_EN. Simply use the .route_si() and and .so() signals to chain.

Have you set the PI SEL to ACC? Here is an example of the datapath configuration:Capture.PNG

View solution in original post

5 Replies
RodolfoGL
Employee
Employee
250 solutions authored 250 sign-ins 5 comments on KBA

You don't need to set MSB_EN. Simply use the .route_si() and and .so() signals to chain.

Have you set the PI SEL to ACC? Here is an example of the datapath configuration:Capture.PNG

RaAl_264636
Level 6
Level 6
50 sign-ins 25 sign-ins 10 solutions authored

Hello Rodolfo,

okay, so I'll use default setting for MSB_EN and MSB_SEL. Can you explain the effect of MSB_EN?

Regarding PI_SEL, I'll have to use dynamic input to the datapath (either PI or Ax), but that's not a problem. I already made some components with that approach.

Regards

0 Likes

Ralf,

Sadly, I could only find reference for MSB_EN in the PSoC5LP Architecture TRM.   It only refers to the use of MSB_EN if use in with the CRC function of the UDB blocks.

Len
"Engineering is an Art. The Art of Compromise."
0 Likes
Len_CONSULTRON
Level 9
Level 9
Beta tester 500 solutions authored 1000 replies posted

Ralf,

Rodolfo is correct about the chaining.

My understanding is that using cy_psoc3_dp16(), cy_psoc3_dp24() or cy_psoc3_dp32() automatically makes the chaining assignments between the UDB datapaths.   This includes the Carry Outs to Ins and Serial Outs to Ins and other cascading bits.  This happens internally in these configuration functions.

Since you want to use the PI and PO operations, you cannot use these functions.  You need to use cy_psoc3_dp() which only configures ONE UDB block and if you need to chain UDBs, you need to do this manually.

The Datapath editor is very useful but as we both noticed, it lacks a better documentation for each of the fields.  I've used the "DataPath Configure Tool Users Guide" as well as the "PSoC5LP Architecture TRM" to try to make sense of these bits/fields.

Update: 

I've looked at the AppNote AN82156 and it has better definition of the MSB_EN and MSB_SEL fields on page 95.

Len
"Engineering is an Art. The Art of Compromise."
0 Likes

Hello Len,

interestingly AN82156 shows the same picture as the reference manual, but here the arrow for the SIL output is removed. So, I assume(!) that MSB_EN routes the switch to the corresponding bit set by the MSB_SEL field. If MSB_EN is deactivated, MSB is fixed to bit 7. MSB_EN is redundand in my opinion. The same effect would be there if MSB_EN is removed and MSB_SEL defaults to bit 7. The need for having MSB_EN might be because of internal structure, don't know...

Regards

0 Likes