Project Not Compiling with Two SCB components

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

cross mob
lock attach
Attachments are accessible only for community members.
AnRa_1522781
Level 2
Level 2

Hi,

   

I am using PSoC4100M for a project. I have two SCB components. One configured as I2C master and the other as UART. The I2C and UART pins are routed to different ports. I2C on port 1 and UART on port4. 

   

When I compile the project I get CyDsFit Error which says 

   

"E2809: Unable to find a valid placement for pins and fixed-function blocks. See the Digital Placement's Detailed placement messages section in the report file for details"

   

and gives the following suggestion

   

The placer is not able to place all of the carry chains without backtracking. It fills one UDB bank to 15/16 and the other to 7/8 and cannot place the final 2-datapath chain. As a workaround, add a control file to the TopDesign component (in Workspace Explorer's Components tab) with the following lines: ATTRIBUTE placement_force OF \Timer_ADPActiveTime:TimerUDB:sT16:timerdp:u0\ : LABEL IS "U(2,0)"; ATTRIBUTE placement_force OF \Timer_OutputPeriod:TimerUDB:sT24:timerdp:u0\ : LABEL IS "U(3,1)"; ATTRIBUTE placement_force OF \Timer_OutputActiveTime:TimerUDB:sT24:timerdp:u0\ : LABEL IS "U(0,1)"; This will fill the datapaths in the second UDB bank and allow the placer to assign the remaining datapaths.

   

I added the above lines to the control file. But it still gives the same error. 

   

Please find attached the project bundle.

   

Best Regards,

   

-arp

0 Likes
6 Replies
Bob_Marlowe
Level 10
Level 10
First like given 50 questions asked 10 questions asked

Changing UART:

   

Set the name to "UART"

   

Set Byte Mode

   

 

   

Set all pins to <auto-assign during build>

   

Increase Rx and Tx buffer to 16 bytes

   

 

   

Bob

0 Likes
AnRa_1522781
Level 2
Level 2

Hi,

   

made the changes to the UART except the <auto-assign during build>. The pins are fixed for me. It gives me the same error. Does that mean that the pins are not routable to the pins I have assigned?

   

-arp

0 Likes
Bob_Marlowe
Level 10
Level 10
First like given 50 questions asked 10 questions asked

Does that mean that the pins are not routable to the pins I have assigned? That is correct. The pins for the SCB blocks are dedicated. You can see after a successful design build which pins you may use.

   

 

   

Bob

0 Likes
Anonymous
Not applicable

Hi Arptt and Bob.

   

I'm having the same problem. If I insert the second SCB block configured as UART (both of them are UART) it gives me the error message: E2809: Unable to find a valid placement for pins and fixed-function blocks. See the Digital Placement's Detailed placement messages section in the report file for details.

   

If I remove the block (which is currently not in use in the firmware), it compiles without any problem. Does you figured out how to solve it?

   

Nicolas

0 Likes
Bob_Marlowe
Level 10
Level 10
First like given 50 questions asked 10 questions asked

Can you please post your complete project, so that we all can have a look at all of your settings. To do so, use
Creator->File->Create Workspace Bundle (minimal)
and attach the resulting file.

   

 

   

Bob

0 Likes
Anonymous
Not applicable

Hi everyone. 

   

I know that this is a bit old already. But I figured out what was happening to my design when I included the second SCB block. The problem is that I was using the pins P0[4] and P0[5] for one SCB and the P3[0] and P3[1] for the second, the PSoC Creator allowed to set this configuration. But, in fact, these both pair of pins are related to the same SCB[1] block. The only pins that can be used as SCB[0] block are P4[0] and P4[1]. Thus, I was trying to force two different SCBs in the same hardware, that is why the error saying that one of them could not be placed correctly.

   

Hope you have already solved your problem arptt. If not I hope that this could help a little.

   

Nicolas