summaryrefslogtreecommitdiffstats
path: root/fpga/usrp2/fifo/fifo_spec.txt
blob: 133b9fa8e625758694a3b2d4b1305bcfb2e32070 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
FIFO and Buffer Interface Spec

Buffer Interface Data Wires -- matches fifo36
     DATA[31:0]
     FLAGS[3:0]
     Bit 0	SOP
     Bit 1	EOP
	If SOP=1 && EOP=1, OCC contains error flags
     Bits 3:2	OCC[1:0] --> 00 = all 4 bytes
		     01 = 1 byte
		     10 = 2 bytes
		     11 = 3 bytes

fifo36 -->  {OCC[1:0],EOP,SOP,DATA[31:0]}
       OCC same as buffer interface

fifo19 -->  {OCC,EOP,SOP,DATA[15:0]}    
       Doesn't fit well into BRAM, dist RAM ok
       OCC = 1 means last word is half full
	   = 0 means last word is full

fifo18 -->  {EOP,SOP,DATA[15:0]}
       No half-word capability?  Should we drop sop instead?

Control Wires - Data into FIFO
	SRC_RDY_i    Upstream has data for me
	DST_RDY_o    I have space
		     Transfer occurs if SRC_RDI_i && DST_RDY_o
	
Control Wires - Data out of FIFO
	SRC_RDY_o    I have data for downstream
	DST_RDY_i    Downstream has space
		     Transfer occurs if SRC_RDI_o && DST_RDY_i