Hi Anthony

It is not necessary to wait for the the buffer to be empty before starting
transmission of the next block of data. As long as transmission is stopped
when tx_afull is high to prevent FIFO overflows you should be able to
continually send new packets.

When the tx_end_of_frame signal is pulsed with tx_data_valid, a count of the
number of data elements written to the FIFO is saved and the counter reset.
If more data is sent, the counter will start counting again and again be
saved when tx_end_of_frame is pulsed with tx_data_valid. The count value
itself is saved to a FIFO (along with the IP address and port the packet is
to be sent to) and so will not be overwritten. This FIFO is 16 elements deep
so you should be able to have up to that many waiting for transfer (also
depends on the data packet size of course) but tx_afull will tell you when
you are approaching this limit.

A few things to note:

Don't ignore the tx_afull line. If FIFOs overflow, the synchronisation
between data and info on that data will be lost.
Strobe tx_end_of_frame with tx_data_valid only once at the end of a packet.

If you are interested in delving deeper into how the ten_GbE_v2 block works,
look in xps_lib\XPS_ROACH_base\pcores\kat_ten_gb_eth_v1_00_a\hdl\verilog.

Hope this explains things
Regards
Andrew


2009/7/23 Weerasinghe, Anthony D (335J) <[email protected]>

>  Hi,
>
>
>
> I am currently working on a design that uses the ten_GbE_v2 block from the
> CASPER library. I have a question regarding the TX buffer in this block.
> Let’s say that I am sending a 500 word packet that has been loaded into the
> TX buffer using tx_valid. When the last word is being sent, I pulse
> tx_end_of_frame so that the core will wrap the packet and begin
> transmission. Once transmission has begun, do I have to wait until the
> buffer is empty before tx_valid can be set high and new data can be written
> to the buffer? Or does the ten_GbE_v2 core have a secondary buffer that
> allows continuous writing to the TX buffer after tx_end_of_frame has been
> pulsed?
>
>
>
> Thanks very much for your help,
>
> Anthony Weerasinghe
>

Reply via email to