- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi guys,
I am trying to send data to a computer from my Cyclone III dsp development board through Marvell 88E1111. My aim is just send the data to computer without any error connection. For that purpose, I will use the triple speed ethernet megacore function of Altera. However, I don't want to use SOPC builder in my code, because I don't know how to use it. In the user guide of the megafunction, Avalon ST and MM interfaces are shown on some charts, but when I tried to learn what Avalon interface is, I saw that it is something related to SOPC builder. Then I am confused now about that can I use Avalon interface without SOPC? Can't I configure and use the megafunction without using Avalon and SOPC? (At the beginning , I was planning to write just a code to control the megacore function which controls the ethernet controller chip.) Thank you for your time, effort and help.Link Copied
4 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Yes the TSE MAC can be used without SoPC builder. The Avalon ST and Avalon MM interfaces are simply bus protocols. Those buses are used within SoPC builder but they don't have to be. You can most certainly write your own logic to talk to the MAC.
The Avalon MM specification is basically just a typical processor bus (address, write, read, data, etc). The Avalon ST specification is for streaming data and allows for packet control and backpressure. Jake- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
--- Quote Start --- Yes the TSE MAC can be used without SoPC builder. The Avalon ST and Avalon MM interfaces are simply bus protocols. Those buses are used within SoPC builder but they don't have to be. You can most certainly write your own logic to talk to the MAC. The Avalon MM specification is basically just a typical processor bus (address, write, read, data, etc). The Avalon ST specification is for streaming data and allows for packet control and backpressure. Jake --- Quote End --- Could you elaborate more on how to use the Avalon MM interface. I instantiated the TSE (no Qsys, no Nios) and I was trying to initialize the MAC by configuring the registers through verilog code, but I always read zeros from any field, even after writing one. I tried to configure the command_config register for example by using 8'h02 as address and read the TX_EN and RX_EN. I see that the address signal on the TSE interface is 8bits wide and I am not sure if I am doing the addressing properly. Also, when is data available after issuing a read command for example, in the same clock cycle or after one clock cycle? The waitrequest signal is high for three cycles and goes low for one cycle, and that repeats periodically for a continuous read operation at the same address being issued in each clock cycle, so I assume I get to actually read or write?... :(
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The ug_ethernet isn't very elaborate on the details, but I think you can expect timing similar to Figure 3-3 in section 3.5.1 of the mnl_avalon_spec.pdf a) hold 'read' and 'address' constant while 'waitrequest' is asserted. b) when 'waitrequest' goes low, drive 'read' low. c) on the next clock, 'readdata' should have valid contents. The read transaction is being accepted by the TSE on the single cycle where read=1 and waitrequest=0, and then the contents are (probably?) output on the next clock. As far as addressing goes, I believe you understand it correctly and simply need to supply the values from the 'Dword offset' column in Chapter 6 of ug_ethernet.pdf The value 0 should get you the 'rev' register, which is probably a good starting point.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
--- Quote Start --- https://www.altera.com/content/dam/altera-www/global/en_us/pdfs/literature/manual/mnl_avalon_spec.pdf The ug_ethernet isn't very elaborate on the details, but I think you can expect timing similar to Figure 3-3 in section 3.5.1 of the mnl_avalon_spec.pdf a) hold 'read' and 'address' constant while 'waitrequest' is asserted. b) when 'waitrequest' goes low, drive 'read' low. c) on the next clock, 'readdata' should have valid contents. The read transaction is being accepted by the TSE on the single cycle where read=1 and waitrequest=0, and then the contents are (probably?) output on the next clock. As far as addressing goes, I believe you understand it correctly and simply need to supply the values from the 'Dword offset' column in Chapter 6 of ug_ethernet.pdf The value 0 should get you the 'rev' register, which is probably a good starting point. --- Quote End --- Thanks, that was really helpful. Finally managed to do it....:cool:

Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page