Forum Discussion

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

How to do post-synthesis simulation in ModelSim?

I only know how to do RTL functional simulation (only need HDL files) and GTL timing simulation (need .vo or .vho and .sdo files)in ModelSim. However, how can I do post-synthesis simulation in ModelSim? What type files do I need ?

Thanks.

15 Replies

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

    Hello Dave, I wonder whether you have relevant experience using counter to create clock signals, if you do, could you help me about the following question:

    Now I am working on a design which needs different rate clock signals. However, some clock signals can not be achieved directly through PLL in the chip. So I plan to use counter and PLL to achieve the demanded clock signals.

    As I know, if I use counter to create a clock signals, there may be some problems. Because the counter output can not guarantee that the counter output signals arrive at different components clock pins at exactly same time, these little time differences in signals arrive may cause serious problem that make the system does not work as expect. I just heard there is a IP core that like global clock, the input is the clock signals like the counter output, the outputs are still clock signals, however the output signals from the global clock can guarantee arriving different components at the exact time to avoid mismatch.

    I try to find this IP core in QuartusII but I can't got it. I just wonder who have heard this type IP or used this before? if there is no IP core like I described, how can I handle the issue I describe above about using counter to generate the clock signals?

    Thanks very much!
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    --- Quote Start ---

    Now I am working on a design which needs different rate clock signals. However, some clock signals can not be achieved directly through PLL in the chip. So I plan to use counter and PLL to achieve the demanded clock signals.

    --- Quote End ---

    There's two ways to achieve what you want:

    1) Use a higher clock rate and an enable signal.

    If I have a component that needs to operate at 5MHz, then rather than creating a 5MHz clock, I create a 5MHz enable pulse, and clock at whatever the rest of my design operates at.

    Why do it this way? Well, older generations of FPGAs had very limited clock routing, so this was your only option.

    2) Use a counter to generate a clock.

    This can work, up until the point that you use all the clock routing resources on your FPGA (if you create too many generated clocks).

    You use TimeQuest to constrain this type of clock using the create_generated_clock .SDC command.

    http://www.altera.com/support/software/timequest/clock/tq-generate-clock.html

    Since your generated clock will have a delay relative to the original, you should use clock domain crossing logic between your fast and slow clock domains.

    My recommendation would be to use (2) wisely, in that you should try to group all 'slow' devices into one clock domain, and generate a single slow clock, rather than lots. If you were creating a Qsys system, then you would put all of these devices on the other side of a clock-crossing bridge.

    Cheers,

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

    Thanks very much, Dave. But how can I check how much clock routing resources I have used for the design in my FPGA chip?

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

    --- Quote Start ---

    But how can I check how much clock routing resources I have used for the design in my FPGA chip?

    --- Quote End ---

    You don't. Quartus will tell you if it runs out. I'm sure there is a report file somewhere that you can look in, but in reality, you do not care. If your design synthesizes and passes timing, then you can test it.

    Cheers,

    Dave