IFC GPCM normal mode gap between successive transactions

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

IFC GPCM normal mode gap between successive transactions

Jump to solution
1,369 Views
BillKnight
Contributor I

Hi

We have T1024 processor communicating with an FPGA using the IFC in GPCM (normal) mode.  Each individual transaction works as expected, but when we attempt to perform transactions back-to-back, we see the Chip Select signal go inactive between each transaction for 4 external IFC clocks for a write or 10 external IFC clocks for a read - and such long gaps significantly reduce the data transfer rate that we can achieve across that interface.

We are using a clock divide value of 3 (IFC_CCR[CLKDIV]="0010"), a port size of 16-bits (IFC_CSPRn[PS]="10"), and are using timed transactions rather than acknowledgement mode (IFC_CSORn[RGETA]=IFC_CSORn[WGETA]='0' with IFCTA_B tied inactive).

To perform back-to-back transactions we use DMA, but we see exactly the same issue if we simply perform a 32-byte read or write (with burst mode disabled) - the hardware converting this into two 16-bit operations for us, but with the same gap in-between.

We also get the same gaps between transactions if we use burst mode (although there are no gaps within each individual burst transaction of course!)

FWIW we did not see the same issue with the "enhanced local bus controller" in GPCM mode on a P1025 processor (which has less configurable timing than the IFC in the T1024).

My question is: is there any way we reduce the inactive time on the Chip Select outputs between transactions (ideally to just a single IFC output clock)?

I guess it might help if anyone could explain why we get these gaps between transactions - or at least if anyone else can confirm if they see the same behaviour or not?

Any help/insight would be greatly appreciated!

Thanks, Bill.

Labels (1)
0 Kudos
Reply
1 Solution
1,264 Views
yipingwang
NXP TechSupport
NXP TechSupport

In the case of a read transaction,yes, the minimum CS (chip select) inactive time after a read transaction is fixed at 20 IP clocks when TRHZ = 000. For further optimization , we recommend utilizing the IFCTA_B signal.
For write transactions in burst mode, is the Chip Select (CS) signal is being deasserted during the burst? Also ask the customer to share the waveforms and dump of the registers that are being programmed during the write operation.

View solution in original post

0 Kudos
Reply
4 Replies
1,312 Views
BillKnight
Contributor I

Thank you for your reply yipingwang, even if all you really said was "read the manual"!

Incidentally, we don't have a problem with IFCTA_B in GPCM mode - we have used the IFC both configured in acknowledgement mode and configured in abort mode (although in abort mode we never trigger an abort so we tie IFCTA_B inactive), and both work as expected.

We understand the fields such as TRAD and TACO, and these affect the transaction as expected - but they only affect the timing within a transaction rather than between transactions.

But prompted by your response, we looked in the reference manual again for any registers that might affect the gap between transactions - and we did indeed find two, both related to "bus turn-around" and therefore only affecting the gap after a read.

These are: IFC_CSORn [TRHZ] and IFC_GCR [TBCTL_TRN_TIME], and some experimentation has indeed shown that these do make a difference to the CS inactive time between consecutive read transactions.

We did not look at these settings closely before as the description of their effect (described in section 23.4.5 "Data buffer control (BCTL)") seems to assume that the BCTL signal is enabled and describe it in relation to Flash modes, whereas we disable the BCTL signal by setting IFC_CSORn [BCTLD] to '1' and we are of course using GPCM mode not a Flash mode.

But we are disappointed that the reference manual indicates that the minimum delay configurable by IFC_CSORn [THRZ] is "20 IP Clocks" (for the TRHZ field set to "000"). As we use a divide ratio of 3, that is 6.66 IFC output clocks, which does indeed match the increase in CS inactive time between consecutive reads compared to between consecutive writes. We tried TRHZ field values of "001" and "010" for 40 & 60 IP Clocks respectively, and the gap between consecutive read transactions did indeed increase by about 7 & 14 IFC output clocks respectively, so we do know that this field is having an effect.

IFC_GCR [TBCTL_TRN_TIME] also affected the gap between consecutive read transactions, but this is not a problem for us as we can set it to zero anyway.

I am prepared to believe that the gap between write transactions is probably fixed and we have no control over it from any registers (but please let me know if I am wrong here).

So, my question becomes simply:

Is the CS inactive time after a read transaction really a minimum of 20 IFC IP Clocks as selected by an IFC_CSORn [TRHZ] field value of "000", or is there any way we can select a shorter time?

I look forward to a reply, although I rather expect that the answer is "no, you are stuck with a minimum of 20 IFC IP clocks", and we will just have to put up with a greatly reduced throughput when reading over this interface.  We can mitigate this a little using burst mode, but we regard this as a significant degradation in performance over the interface on the older P-series processors.

Thank you for the support in any case!

Cheers, Bill.

0 Kudos
Reply
1,265 Views
yipingwang
NXP TechSupport
NXP TechSupport

In the case of a read transaction,yes, the minimum CS (chip select) inactive time after a read transaction is fixed at 20 IP clocks when TRHZ = 000. For further optimization , we recommend utilizing the IFCTA_B signal.
For write transactions in burst mode, is the Chip Select (CS) signal is being deasserted during the burst? Also ask the customer to share the waveforms and dump of the registers that are being programmed during the write operation.

0 Kudos
Reply
1,013 Views
BillKnight
Contributor I

Thank you for confirming the minimum CS inactive time after a read transaction.

We use burst mode to improve performance, which has worked out OK.  Fixed timing is convenient for us, so we have not had to use IFCTA_B.

0 Kudos
Reply
1,324 Views
yipingwang
NXP TechSupport
NXP TechSupport

Firstly, customer is required to enable IFCTA_B in GPCM mode.
To reduce the inactive time on the Chip Select outputs between the transactions,kindly ask the customer to tune the timing parameters by tuning the timing registers of the GPCM and FPGA.For example, they can try and set ,TRAD and TACO fields of the IFC_FTIM1_CSn_GPCM register .Similarly, other timing registers can be tuned to optimize performance.

Also ask the customer to refer to the section 23.7.1.1,"Normal GPCM program operation".For example in the Figure 23-49,"Normal GPCM program operation - acknowledgment mode" illustrates a multiple data transaction scenario where the Chip Select remains active. While using this mode please ensure that all relevant registers are configured accordingly to achieve the desired performance.

0 Kudos
Reply
%3CLINGO-SUB%20id%3D%22lingo-sub-2121511%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3EIFC%20GPCM%20normal%20mode%20gap%20between%20successive%20transactions%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2121511%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHi%3C%2FP%3E%3CP%3EWe%20have%20T1024%20processor%20communicating%20with%20an%20FPGA%20using%20the%20IFC%20in%20GPCM%20(normal)%20mode.%26nbsp%3B%20Each%20individual%20transaction%20works%20as%20expected%2C%20but%20when%20we%20attempt%20to%20perform%20transactions%20back-to-back%2C%26nbsp%3Bwe%20see%20the%20Chip%20Select%20signal%20go%20inactive%20between%20each%20transaction%20for%204%20external%20IFC%20clocks%20for%20a%20write%20or%2010%20external%20IFC%20clocks%20for%20a%20read%20-%20and%20such%20long%20gaps%20significantly%20reduce%20the%20data%20transfer%20rate%20that%20we%20can%20achieve%20across%20that%20interface.%3C%2FP%3E%3CP%3EWe%20are%20using%20a%20clock%20divide%20value%20of%203%20(IFC_CCR%5BCLKDIV%5D%3D%220010%22)%2C%20a%20port%20size%20of%2016-bits%20(IFC_CSPRn%5BPS%5D%3D%2210%22)%2C%20and%20are%20using%20timed%20transactions%20rather%20than%20acknowledgement%20mode%20(IFC_CSORn%5BRGETA%5D%3DIFC_CSORn%5BWGETA%5D%3D'0'%20with%20IFCTA_B%20tied%20inactive).%3C%2FP%3E%3CP%3ETo%20perform%20back-to-back%20transactions%20we%20use%20DMA%2C%20but%20we%20see%20exactly%20the%20same%20issue%20if%20we%20simply%20perform%20a%2032-byte%20read%20or%20write%20(with%20burst%20mode%20disabled)%20-%20the%20hardware%20converting%20this%20into%20two%2016-bit%20operations%20for%20us%2C%20but%20with%20the%20same%20gap%20in-between.%3C%2FP%3E%3CP%3EWe%20also%20get%20the%20same%20gaps%20between%20transactions%20if%20we%20use%20burst%20mode%20(although%20there%20are%20no%20gaps%20within%20each%20individual%20burst%20transaction%20of%20course!)%3C%2FP%3E%3CP%3EFWIW%20we%20did%20not%20see%20the%20same%20issue%20with%20the%20%22enhanced%20local%20bus%20controller%22%20in%20GPCM%20mode%20on%20a%20P1025%20processor%20(which%20has%20less%20configurable%20timing%20than%20the%20IFC%20in%20the%20T1024).%3C%2FP%3E%3CP%3EMy%20question%20is%3A%20is%20there%20any%20way%20we%20reduce%20the%20inactive%20time%20on%20the%20Chip%20Select%20outputs%20between%20transactions%20(ideally%20to%20just%20a%20single%20IFC%20output%20clock)%3F%3C%2FP%3E%3CP%3EI%20guess%20it%20might%20help%20if%20anyone%20could%20explain%20why%20we%20get%20these%20gaps%20between%20transactions%20-%20or%20at%20least%20if%20anyone%20else%20can%20confirm%20if%20they%20see%20the%20same%20behaviour%20or%20not%3F%3C%2FP%3E%3CP%3EAny%20help%2Finsight%20would%20be%20greatly%20appreciated!%3C%2FP%3E%3CP%3EThanks%2C%20Bill.%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-LABS%20id%3D%22lingo-labs-2121511%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CLINGO-LABEL%3EQorIQ%20T1%20Devices%3C%2FLINGO-LABEL%3E%3C%2FLINGO-LABS%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2160672%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20IFC%20GPCM%20normal%20mode%20gap%20between%20successive%20transactions%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2160672%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EThank%20you%20for%20confirming%20the%20minimum%20CS%20inactive%20time%20after%20a%20read%20transaction.%3C%2FP%3E%3CP%3EWe%20use%20burst%20mode%20to%20improve%20performance%2C%20which%20has%20worked%20out%20OK.%26nbsp%3B%20Fixed%20timing%20is%20convenient%20for%20us%2C%20so%20we%20have%20not%20had%20to%20use%20IFCTA_B.%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2133117%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20IFC%20GPCM%20normal%20mode%20gap%20between%20successive%20transactions%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2133117%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%3CSPAN%3EIn%20the%20case%20of%20a%20read%20transaction%2Cyes%2C%20the%20minimum%20CS%20(chip%20select)%20inactive%20time%20after%20a%20read%20transaction%20is%20fixed%20at%2020%20IP%20clocks%20when%20TRHZ%20%3D%20000.%20For%20further%20optimization%20%2C%20we%20recommend%20utilizing%20the%20IFCTA_B%20signal.%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3EFor%20write%20transactions%20in%20burst%20mode%2C%20is%20the%20Chip%20Select%20(CS)%20signal%20is%20being%20deasserted%20during%20the%20burst%3F%20Also%20ask%20the%20customer%20to%20share%20the%20waveforms%20and%20dump%20of%20the%20registers%20that%20are%20being%20programmed%20during%20the%20write%20operation.%3C%2FSPAN%3E%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2128168%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20IFC%20GPCM%20normal%20mode%20gap%20between%20successive%20transactions%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2128168%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EThank%20you%20for%20your%20reply%20yipingwang%2C%20even%20if%20all%20you%20really%20said%20was%20%22read%20the%20manual%22!%3C%2FP%3E%3CP%3EIncidentally%2C%20we%20don't%20have%20a%20problem%20with%20IFCTA_B%20in%20GPCM%20mode%20-%20we%20have%20used%20the%20IFC%20both%20configured%20in%20acknowledgement%20mode%20and%20configured%20in%20abort%20mode%20(although%20in%20abort%20mode%20we%20never%20trigger%20an%20abort%20so%20we%20tie%20IFCTA_B%20inactive)%2C%20and%20both%20work%20as%20expected.%3C%2FP%3E%3CP%3EWe%20understand%20the%20fields%20such%20as%20TRAD%20and%20TACO%2C%20and%20these%20affect%20the%20transaction%20as%20expected%20-%20but%20they%20only%20affect%20the%20timing%20%3CEM%3Ewithin%3C%2FEM%3E%20a%20transaction%20rather%20than%20%3CEM%3Ebetween%3C%2FEM%3E%20transactions.%3C%2FP%3E%3CP%3EBut%20prompted%20by%20your%20response%2C%20we%20looked%20in%20the%20reference%20manual%20again%20for%20any%20registers%20that%20might%20affect%20the%20gap%20between%20transactions%20-%20and%20we%20did%20indeed%20find%20two%2C%20both%20related%20to%20%22bus%20turn-around%22%20and%20therefore%20only%20affecting%20the%20gap%20after%20a%20read.%3C%2FP%3E%3CP%3EThese%20are%3A%26nbsp%3BIFC_CSORn%20%5BTRHZ%5D%20and%20IFC_GCR%20%5BTBCTL_TRN_TIME%5D%2C%20and%20some%20experimentation%20has%20indeed%20shown%20that%20these%20do%20make%20a%20difference%20to%20the%20CS%20inactive%20time%20between%20consecutive%20read%20transactions.%3C%2FP%3E%3CP%3EWe%20did%20not%20look%20at%20these%20settings%20closely%20before%20as%20the%20description%20of%20their%20effect%20(described%20in%20section%2023.4.5%20%22Data%20buffer%20control%20(BCTL)%22)%20seems%20to%20assume%20that%20the%20BCTL%20signal%20is%20enabled%20and%20describe%20it%20in%20relation%20to%20Flash%20modes%2C%20whereas%20we%20disable%20the%20BCTL%20signal%20by%20setting%20IFC_CSORn%20%5BBCTLD%5D%20to%20'1'%20and%20we%20are%20of%20course%20using%20GPCM%20mode%20not%20a%20Flash%20mode.%3C%2FP%3E%3CP%3EBut%20we%20are%20disappointed%20that%20the%20reference%20manual%20indicates%20that%20the%20minimum%20delay%20configurable%20by%20IFC_CSORn%20%5BTHRZ%5D%20is%20%2220%20IP%20Clocks%22%20(for%20the%20TRHZ%20field%20set%20to%20%22000%22).%20As%20we%20use%20a%20divide%20ratio%20of%203%2C%20that%20is%206.66%20IFC%20output%20clocks%2C%20which%20does%20indeed%20match%20the%20increase%20in%20CS%20inactive%20time%20between%20consecutive%20reads%20compared%20to%20between%20consecutive%20writes.%20We%20tried%20TRHZ%20field%20values%20of%20%22001%22%20and%20%22010%22%20for%2040%20%26amp%3B%2060%20IP%20Clocks%20respectively%2C%20and%20the%20gap%20between%20consecutive%20read%20transactions%20did%20indeed%20increase%20by%20about%207%20%26amp%3B%2014%20IFC%20output%20clocks%20respectively%2C%20so%20we%20do%20know%20that%20this%20field%20is%20having%20an%20effect.%3C%2FP%3E%3CP%3EIFC_GCR%20%5BTBCTL_TRN_TIME%5D%20also%20affected%20the%20gap%20between%20consecutive%20read%20transactions%2C%20but%20this%20is%20not%20a%20problem%20for%20us%20as%20we%20can%20set%20it%20to%20zero%20anyway.%3C%2FP%3E%3CP%3EI%20am%20prepared%20to%20believe%20that%20the%20gap%20between%20write%20transactions%20is%20probably%20fixed%20and%20we%20have%20no%20control%20over%20it%20from%20any%20registers%20(but%20please%20let%20me%20know%20if%20I%20am%20wrong%20here).%3C%2FP%3E%3CP%3E%3CSTRONG%3ESo%2C%20my%20question%20becomes%20simply%3A%3C%2FSTRONG%3E%3C%2FP%3E%3CP%3E%3CSTRONG%3EIs%20the%20CS%20inactive%20time%20after%20a%20read%20transaction%20%3CEM%3Ereally%3C%2FEM%3E%26nbsp%3Ba%20minimum%20of%2020%20IFC%20IP%20Clocks%20as%20selected%20by%20an%20IFC_CSORn%20%5BTRHZ%5D%20field%20value%20of%20%22000%22%2C%20or%20is%20there%20any%20way%20we%20can%20select%20a%20shorter%20time%3F%3C%2FSTRONG%3E%3C%2FP%3E%3CP%3EI%20look%20forward%20to%20a%20reply%2C%20although%20I%20rather%20expect%20that%20the%20answer%20is%20%22no%2C%20you%20are%20stuck%20with%20a%20minimum%20of%2020%20IFC%20IP%20clocks%22%2C%20and%20we%20will%20just%20have%20to%20put%20up%20with%20a%20greatly%20reduced%20throughput%20when%20reading%20over%20this%20interface.%26nbsp%3B%20We%20can%20mitigate%20this%20a%20little%20using%20burst%20mode%2C%20but%20we%20regard%20this%20as%20a%20significant%20degradation%20in%20performance%20over%20the%20interface%20on%20the%20older%20P-series%20processors.%3C%2FP%3E%3CP%3EThank%20you%20for%20the%20support%20in%20any%20case!%3C%2FP%3E%3CP%3ECheers%2C%20Bill.%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2126288%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20IFC%20GPCM%20normal%20mode%20gap%20between%20successive%20transactions%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2126288%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%3CSPAN%3EFirstly%2C%20customer%20is%20required%20to%20enable%20IFCTA_B%20in%20GPCM%20mode.%20%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3ETo%20reduce%20the%20inactive%20time%20on%20the%20Chip%20Select%20outputs%20between%20the%20transactions%2Ckindly%20ask%20the%20customer%20to%20tune%20the%20timing%20parameters%20by%20tuning%20the%20timing%20registers%20of%20the%20GPCM%20and%20FPGA.For%20example%2C%20they%20can%20try%20and%20set%20%2CTRAD%20and%20TACO%20fields%20of%20the%20IFC_FTIM1_CSn_GPCM%20register%20.Similarly%2C%20other%20timing%20registers%20can%20be%20tuned%20to%20optimize%20performance.%3C%2FSPAN%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3CSPAN%3EAlso%20ask%20the%20customer%20to%20refer%20to%20the%20section%2023.7.1.1%2C%22Normal%20GPCM%20program%20operation%22.For%20example%20in%20the%20Figure%2023-49%2C%22Normal%20GPCM%20program%20operation%20-%20acknowledgment%20mode%22%20illustrates%20a%20multiple%20data%20transaction%20scenario%20where%20the%20Chip%20Select%20remains%20active.%20While%20using%20this%20mode%20please%20ensure%20that%20all%20relevant%20registers%20are%20configured%20accordingly%20to%20achieve%20the%20desired%20performance.%3C%2FSPAN%3E%3C%2FP%3E%3C%2FLINGO-BODY%3E