Forum Discussion

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

altera_internal_jtag clock and timing issues

Hi

I'm using Quartus 8.1 with SOPC builder including a NIOS and JTAG UART instantiation.

a long time ago I got failing paths in the Timequest analyzer, regarding clocks crossing between my system clock and altera_internal_jtag.

back then I simply defined the clock crossing as a false path, the red messages were gone and I was happy.:)

lately I got some very strange behavior from the design, function that works fine, stops or behave strangely when I use functions not related to them... in short a very unstable design.

today I compiled a design with one of this symptoms, recompiled it with a different seed, and the symptom was gone.

so obviously I suspect fitting and timing issues.

is there a better way to handle the jtag clock (other then set a false path)?

should it be defined in the SOPC builder as a clock?

should I use some kind of a bridge between the JTAG UART and the rest of the system?

who framed Roger Rabbit?

thanks in advance

Ron

10 Replies

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

    The JTAG clock actually now has it's own built in false path. The JTAG clock has no timing relation to anything in the design, so if it worked with a different seed, then the problem doesn't have anything to do with this. (If it always failed, then there could potentially be a problem, but it would be with the logic, not the RTL, since there is no way to transfer data from the JTAG clock to other domains in a synchronous manner).

    It does sound like you have a timing problem, but I'm guessing it's elsewhere, and will probably take some low-level debug. Good luck.
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Hi Rysc

    just to remind you, I'm still using 8.1, since when is the built in false path?

    when I remove all the assignments in my sdc file, and leave only the clock definitions (which is very short, a clock from the outside world, that goes into a PLL that generates a single clock to drive all the rest of the logic) and the auto generated assignments created by the SOPC builder, I get report about failing paths, that cross to the jtag clock domain, and vice verse, no other paths.

    so it is the immediate suspect...
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Right, you have to do it yourself. In some version(I'm not sure which), there was a constraint embedded into the JTAG tap controller. So when TimeQuest excutes read_sdc, it gives a message:

    Info: Evaluating HDL-embedded SDC commands

    Info: Entity sld_hub

    Info: create_clock -period 10MHz -name altera_reserved_tck [get_ports {altera_reserved_tck}]

    Info: set_clock_groups -asynchronous -group {altera_reserved_tck}

    (I pulled that from a Stratix IV design I have). The set_clock_groups command is what cuts it from all other clocks in the design. Now, in 8.1 you pretty much had to do this yourself, but that just makes the timing errors go away, but won't fix the problem.
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    This issue is solved in Altera Knowledge base. The solution includes design constraints. Please do a search there before asking in the forum.

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

    I am in need of higher clock more than 600MHz.... In Altera Fpga kit it has an internal clock upto 50Mhz. If i use any external clock source, which is going to be compatible? function generator or crystal oscillator. Is Crystal oscillator alone is enough to form the external clock.

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

    --- Quote Start ---

    The JTAG clock actually now has it's own built in false path. The JTAG clock has no timing relation to anything in the design, so if it worked with a different seed, then the problem doesn't have anything to do with this. (If it always failed, then there could potentially be a problem, but it would be with the logic, not the RTL, since there is no way to transfer data from the JTAG clock to other domains in a synchronous manner).

    It does sound like you have a timing problem, but I'm guessing it's elsewhere, and will probably take some low-level debug. Good luck.

    --- Quote End ---

    Hello! I'm a newcomer ,could you tell me how to set a current file(there are some vhdl files but how can I compile the file I want )?Thank you!!!
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    --- Quote Start ---

    I am in need of higher clock more than 600MHz.... In Altera Fpga kit it has an internal clock upto 50Mhz. If i use any external clock source, which is going to be compatible? function generator or crystal oscillator. Is Crystal oscillator alone is enough to form the external clock.

    --- Quote End ---

    Why do You need such fast clock? Dream on about having such on FPGA itself. You can only get such fast clock on transceiver block. Check Your FPGA datasheet for Fmax.
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    --- Quote Start ---

    This issue is solved in Altera Knowledge base. The solution includes design constraints. Please do a search there before asking in the forum.

    --- Quote End ---

    I failed to find that solution in the knowledge base. can you please post a link to the relevant topic?

    thanks in advance.
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    --- Quote Start ---

    Why do You need such fast clock? Dream on about having such on FPGA itself. You can only get such fast clock on transceiver block. Check Your FPGA datasheet for Fmax.

    --- Quote End ---

    I checked my data sheet, It says that It has three pins allocated for clock

    1. 50 Mhz

    2. 27Mhz

    3. External clock

    So where could i get my fast clock from Fpga itself.I would like know what is transceiver block. Thanks for your help.
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    can any please help me? or direct me to the topic in the Altera knowledge base that Socrates refered to?

    all I found is that the altera_internal_clock should be defined as 10MHz, but when I do that I get errors.

    If I declare the clock crossing paths as false paths I'm back in square 1, with an unstable design.