Programmable Devices
CPLDs, FPGAs, SoC FPGAs, Configuration, and Transceivers
Announcements
FPGA community forums and blogs on community.intel.com are migrating to the new Altera Community and are read-only. For urgent support needs during this transition, please visit the FPGA Design Resources page or contact an Altera Authorized Distributor.

Tse Mac, Niosii

Altera_Forum
Honored Contributor II
1,703 Views

HI  

Does anybody know what are the required connections and peripherals in SOPC builder for the triple speed mac (TSE). I have a simple ethernet project here.  

SOPC Builder ----->>NIOSII, TSE 

MY BOARD -------> PHY (DP83848C same as on the NEEK Board) 

I cannot get the Activity led to do anything, I have LINK/ACT and 100M lights blinking very slow on the router. 

Was anybody able to use the TSE MAC in SOPC builder and an external PHY like the DP83848 and get it to work? 

I'm using a Cyclone III 

Thanks for your help
0 Kudos
9 Replies
Altera_Forum
Honored Contributor II
988 Views

What does the TCP/IP stack say when you start your application?

0 Kudos
Altera_Forum
Honored Contributor II
988 Views

I get the Interniche version message

0 Kudos
Altera_Forum
Honored Contributor II
988 Views

one more question 

On my PHY (DP83848C) the MDIO (pin 30) is bi directional. When I build my system in SOPC builder, the symbol does not show any bi directional pin for the MDIO, I have three separate MDIO pins (mdio_in, mdio_out and mdio_oen) . How do I connect my mdio(bidir) pin?
0 Kudos
Altera_Forum
Honored Contributor II
988 Views

You should have more than just the Interniche version in the terminal. 

But if you didn't connect the MDIO, it could explain why the system doesn't start properly. 

You need to add a bidirectional buffer between the SOPC subsystem and the MDIO pin. 

mdio_oen is a direction control for the MDIO output. When it's 0, then the MDIO pin is an output and should be connected to mdio_out, and when it's 1, then the MDIO pin is an input and should be connected to mdio_in. 

 

If you use the graphical tool for the top level design, you'll need a NOT gate and a ALT_IOBUF gate. 

Connect the NOT gate input to mdio_oen. Connect its output to the direction control of the ALT_IOBUF (pin on the top). 

Connect mdio_out to the ALT_IOBUF input (left, blue), mido_in to the ALT_IOBUF output (left, purple) and finally the external bidirectional MDIO pin to the bidirectional ALT_IOBUF pin (right). 

 

If you use vhdl or verilog a simple line of code should do the trick.
0 Kudos
Altera_Forum
Honored Contributor II
988 Views

 

--- Quote Start ---  

You should have more than just the Interniche version in the terminal. 

But if you didn't connect the MDIO, it could explain why the system doesn't start properly. 

You need to add a bidirectional buffer between the SOPC subsystem and the MDIO pin. 

mdio_oen is a direction control for the MDIO output. When it's 0, then the MDIO pin is an output and should be connected to mdio_out, and when it's 1, then the MDIO pin is an input and should be connected to mdio_in. 

 

If you use the graphical tool for the top level design, you'll need a NOT gate and a ALT_IOBUF gate. 

Connect the NOT gate input to mdio_oen. Connect its output to the direction control of the ALT_IOBUF (pin on the top). 

Connect mdio_out to the ALT_IOBUF input (left, blue), mido_in to the ALT_IOBUF output (left, purple) and finally the external bidirectional MDIO pin to the bidirectional ALT_IOBUF pin (right). 

 

If you use vhdl or verilog a simple line of code should do the trick. 

--- Quote End ---  

 

this was it, MDIO Connection Fixed the problem, I can DHCP and stuff , but I get the following message "No free buffers for rx"
0 Kudos
Altera_Forum
Honored Contributor II
988 Views

This is because your system is receiving more packets than it can handle. If you need your system to accept all the traffic you are sending it, you'll need to speed it up. Have a look at this article (http://www.altera.com/support/examples/nios2/exm-ethernet-acceleration.html?gsa_pos=6&wt.oss_r=1&wt.oss=nichestack%20speed).

0 Kudos
Altera_Forum
Honored Contributor II
988 Views

 

--- Quote Start ---  

This is because your system is receiving more packets than it can handle. If you need your system to accept all the traffic you are sending it, you'll need to speed it up. Have a look at this article (http://www.altera.com/support/examples/nios2/exm-ethernet-acceleration.html?gsa_pos=6&wt.oss_r=1&wt.oss=nichestack%20speed). 

--- Quote End ---  

 

thanks a lot
0 Kudos
Altera_Forum
Honored Contributor II
988 Views

Be aware that if you get this error message right on startup it may be that the TSE MAC driver was not able to initialize its initial descriptors. You need to verify that its really giving the message because of excess traffic. 

 

If it is a traffic problem. You can modify the number of large buffers that the InterNiche stack uses in the ipconfig.h file and see if that helps. Also, you should make sure that you are enabling the MAC address filtering within the TSE MAC so that unwanted packets aren't being passed up to the software layer. 

 

Jake
0 Kudos
Altera_Forum
Honored Contributor II
988 Views

thanks all, I read the app note about C2H and implimented some of the ideas and the "No free buffers for rx" message is gone. I have other issues but I'm sure they are due to my trying to run the "simple socket server" program on my own platform, ie I dont have ext_flash or led's on my board. I'm able to DHCP and ping my board, even though it doesn't last. again thanks

0 Kudos
Reply