Forum Discussion

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

Constraining global signals

I seem to be having difficulty constraining signals as globals.

I have a user I/O pin that I am using as a low speed clock to a bank of registered I/OB's ("fast input registers"). So far so good - except the clock to register routing skew is high enough to corrupt data. So, I am trying to take my user I/O "clock" and place it on a global net to take advantage of it's high speed/low skew properties. Problem is, the tool downright ignores me. I have tried the constraint:

set_instance_assignment -name AUTO_GLOBAL_CLOCK ON -to ACH2B_CNTL[12]

to no avail - I can use this assignment to dis-allow the auto-globals the tool picks - but I can't seem to use place my critical nets on this resource.

I have even gone so far as to manually instantiate the "global buffer" component in my VHDL code on the desired nets.

When I have had this problem in the past, I have been able to inhibit the "auto global" on the few high fan nets of higher precedence until it will auto select my desired critical net, but in this instance, my critical net is about 60 entries down the list - too much for me to want to inhibit.

Any suggestions on how to drive the tool the proper way?

Tool: Quartus II V5.0 build 148

Target device 20KE1000EBC652

7 Replies

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

    Q5.0 is pretty old, so not sure if issues.

    Auto Global Clock is an option that says "let Quartus decide what should go onto a Global". It is usually applied to a hierarchy(or the whole design under Assignments -> Settings -> Fitter -> More Settings). So it doesn't make anything happen directly, and by default is globally on. What you want is the assignment "Global" and set it to On. That should do it.
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    give this a try:

    set_instance_assignment -name GLOBAL_SIGNAL ON -to ACH2B_CNTL[12]
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Have tried :

    set_instance_assignment -name GLOBAL_SIGNAL ON -to ACH2B_CNTL[12]

    with no luck.

    also tried

    set_instance_assignment -name USE_CLK_FOR_VIRTUAL_PIN ACH2B_CNTL[12] -to ACH2B_CNTL[12]

    and

    set_instance_assignment -name CLOCK_SETTINGS ACH2B_CNTL[12] -to ACH2B_CNTL[12]
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Have tried :

    set_instance_assignment -name GLOBAL_SIGNAL ON -to ACH2B_CNTL[12]

    with no luck.

    also tried

    set_instance_assignment -name USE_CLK_FOR_VIRTUAL_PIN ACH2B_CNTL[12] -to ACH2B_CNTL[12]

    and

    set_instance_assignment -name CLOCK_SETTINGS ACH2B_CNTL[12] -to ACH2B_CNTL[12]
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    not sure if its your version of Quartus or another issue but i just tried it with Quartus II 9.0 and I see my signal on a GCLK in the Resource Selection from the Fitter report.

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

    --- Quote Start ---

    not sure if its your version of Quartus or another issue but i just tried it with Quartus II 9.0 and I see my signal on a GCLK in the Resource Selection from the Fitter report.

    --- Quote End ---

    Just out of curiosity, what target device did you use? We downloaded the 30-day eval version of QII9.x without programming support, and had the same trouble with our .qsf and .vqn.

    You used :

    set_instance_assignment -name GLOBAL_SIGNAL ON -to ACH1B_CNTL[12]

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

    i am using a full version of Quartus II 9.0 and am targeting an auto selected Cyclone III.

    i used the assignment editor, but my QSF shows:

    set_instance_assignment -name GLOBAL_SIGNAL ON -to middler[0]

    so it looks like you've got the setting right.