OpenCores
Issue List
eth_dma #42
Closed clould365 opened this issue over 11 years ago
clould365 commented over 11 years ago

Hi,Rhoads,it's me again I am reading your code eth_dma.vhd. 1. Line 110 : "send_level <= data_w(8 downto 0);" What's the meaning of send_level? Does it mean the words waiting to transmit? If yes, do we need to tell eth_dma the numbers of words waiting to send using C or assembly language?
2. I noticed that even we send data,which only need to read data from DDR, we still do this "data_write <= data_w;" (line 172), why? 3. Why you use address 0x13ff0000 and 0x13fe0000, any special consideration?

clould365 commented over 11 years ago
  1. I noticed that even we send data,which only need to read data from DDR, we still do this "data_write <= data_w;"(line 172)
clould365 commented over 11 years ago
  1. I noticed that even we send data,which only need to read data from DDR, we still do this "data_write <= data_w;"(line 172)
clould365 commented over 11 years ago

It seems that assignment symbol are blocked by opencores...

  1. I noticed that even we send data,which only need to read data from DDR, we still do Line 172, data_write = data_w;
clould365 commented over 11 years ago

About question 1: I found that in ethernet.c line 194 : MemoryWrite(ETHERNET_REG, length). This is for send_level's assignment, right?

ETHERNET_REG 0x20000070 (Ethernet transmit count)

clould365 commented over 11 years ago

About question 1: I found that in ethernet.c line 194 : MemoryWrite(ETHERNET_REG, length). This is for send_level's assignment, right?

ETHERNET_REG 0x20000070 (Ethernet transmit count)

rhoads was assigned over 11 years ago
rhoads commented over 11 years ago

Yes, writing to address ETHERNET_REG will tell the Ethernet DMA engine to transfer the requested number of 32-bit words (send_level) to the Ethernet PHY starting at address ETHERNET_TRANSFER. The DMA engine will increment the send_words register which also serves as the address offset until send_words equals send_level. The address ETHERNET_RECEIVE is where the Ethernet DMA engine transfers the received Ethernet packets.

rhoads closed this over 11 years ago

Assignee
rhoads
Labels
Request