| 2. I call that module that writes frames to the memory, sets 
the DMA and Ethernet registers host. It can be a processor, some kind of state 
machine, etc.  The 
destination address should be mac's address. That means that addresses [31:12] 
must select the MAC, while [11:10] select the buffer within the mac. 
   assign RegCs = wb_stb_i & wb_cyc_i & 
DWord & ~wb_adr_i[11] & ~wb_adr_i[10];assign BDCs  = wb_stb_i 
& wb_cyc_i & DWord & ~wb_adr_i[11] &  
wb_adr_i[10];
 
 From 
here you can see that when wb_adr_i[11] and wb_adr_i[10] are both 1 then 
buffer is selected.    3. 
Destination field remains the same always. This is MAC 
address. 7. 
When you write DMA buffer descriptor, you must also write the MAC buffer 
descriptor. When the descriptor is set as READY, the DMA request is set 
automatically.   Regards,     Igor 
  
  Hi Igor,   I have some doubts regarding buffer 
  descriptors. I am giving the sequence of operations what I am following 
  (for transmission).   1. Storing the data in the memory. 2. Writing the buffer descriptor with the source 
  address pointing to location where the data is stored. (Which address 
  should I mention in the destination address field? Specification for the Ethernet IP Core specifies 
  to write with the Ethernet Host interface-What is it mean?) 3. Setting the bits INC_SRC, INC_DSR, 
  SRC_SEL, DES_SEL and EOL to high. 4. Next Pointer field with next buffer 
  descriptor. 5. Enable channel. 6. Set the bits TXEN and DMAEN bits to 
  high. 7. Assert the REQ0 signal.   How the source address and destination addresses 
  are incremented if I set the respective bits? Where the Channel registers are stored? If they are stored 
  outside the Ethernet IP Core, how these will be controlled? If I am 
  interfacing this IP Core to any processor, how the processor will 
  controls channel registers?   Waiting for the reply.   Regards, Veeresh |