Forum Discussion

Altera_Forum's avatar
Altera_Forum
Icon for Honored Contributor rankHonored Contributor
15 years ago

Nios SOPC not in toplevel

I created an SOPC with an Nios and a tse_mac. If I instantiate it directly in the fpga toplevel, its working with the simple_socket_server example. Now I wanted to instantiate it one hierarchy level deeper, just to put in all the stuff (pll, reset generation, pio etc.) that only the SOPC needs and to have only the connections to the rest of my design that i need for further data processing. But somehow, the SOPC is not working in the sub-level. To minimize the possible errors, now I tried to build a very simple module around the SOPC without any additional logic, I just wired the in- and output ports. I left the PLL and reset generation outside at the toplevel, but still the socket server is not working. If I start the Nios software, it finds the Ethernet MAC and PHY and tells me that it has opened the sockets, but I cannot connect to it.

Do I have to change something else in my software or in the SOPC Builder, or is the SOPC Builder just not made for my application, so the resulting HDL module can be only instantiated at the toplevel?

2 Replies

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    I usually put the SOPC component as an instance of the top level to enrich my design with other components (like in your application: pll, reset and some signal conditioning).

    Being the design one level down in hierarchy, I usually double check that the constraints still match the names of the pins. Once I missed to check the DDR2 pins and the design did not work properly, for example. I think that triple speed ethernet is as delicate as the memory controller so you may have some failed paths that are not recognized by the timing analyzer.

    Let me know.

    Regards,

    Gabriele
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    I checked the constraints, everything was fine. So for now I resigned on that problem and implemented the SOPC in my toplevel.