2011년 1월 27일 목요일

How to use FLAGA (programmable flag) under Slave FIFO of FX2LP

* PINFLAGSAB = {FLAGB3, FLAGB2, FLAGB1, FLAGB0, FLAGA3, FLAGA2, FLAGA1, FLAGA0}
초기 상태는 FLAGA는 PF(Programmable Flag)로 FLAGB는 FF(Full Flag)로써 설정되어 있다.
FLAGA,B 가 지시하도록 되어 있는 Endpoint는 FIFOADR[1:0]의 설정에 따라서 달라진다.
(FIFOADR[1:0]은 값에 따라 '00': EP2, '01': EP4, '10': EP6, '11':EP8로 지시된다.)

* EPxFIFOPFH, EPxFIFOPFL
현재 사용하고자 하는 Endpoint 2의 설정이 IN, 512bytes, X4, High Speed 이므로 EP2FIFOPFH와 EP2FIFOPFL의 구성은 다음과 같다. (주의; Endpoint의 설정에 따라 EPxFIFOPFx의 구성이 달라진다.)

=======================================================================
= EP2FIFOPFH = {DECIS, PKTSTAT, PFC11(PKTS2), PFC10(PKTS1), PFC9(PKTS0), 0, x(PCF9), PFC8}
= EP2FIFOPFL = {PFC7, PFC6, PFC5, PFC4, PFC3, PFC2, PFC1, PFC0}
=======================================================================

- DECIS
0: PF = '1' when byte count <= PFC[11:0], 1: PF = '1' when byte count >= PFC[11:0]

- PKTSTAT
0: packet count와 byte count 사용하기
1: packet count는 무시하고 byte count만 사용하기

- PFC[11:0]
byte count의 threshold level

예) PKTSTAT = 0, PKTS[2:0]=2, PFC[9:0] = 50 => threshold level=2*pakcets(512)+50

댓글 없음:

댓글 쓰기