Altera_Forum
Honored Contributor
13 years agoPCI Express Avalon-ST Valid Data Bytes
I am trying to interpret doc: "Stratix V Hard IP for PCI Express User Guide."
Specifically, when using a 256 bit Avalon-ST interface, I wish to determine which of the 32 bytes contain valid data. On the last cycle, when rx_st_eop is true, rx_st_empty[1:0] indicates: rx_st_empty = 0, rx_st_data[255:0] contains valid data rx_st_empty = 1, rx_st_data[191:0] contains valid data rx_st_empty = 2, rx_st_data[127:0] contains valid data rx_st_empty = 3, rx_st_data[63:0] contains valid data But this does not narrow down validity to one byte but rather to an eight byte group. In the TLP header there are three fields that might be relevant, but these are not explained in the documentation: "First BE" and "Last BE" are four bit fields. Might these somehow be used to point to the first and last valid bytes in the first and last 256 bit group of data. Since these are 4 bit fields, they could only used to select 1 of 16 bytes, not 1 of the 32 bytes in 256 bits. Might "First BE" and "Last BE" be used in conjunction with rx_st_empty? The TLP header also contains a 10 bit "Length" field and other fields that are not explained, but, mainly I am interested in determining data validity to the byte level. Thank you, Matthew