Forum Discussion

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

Pin Planner LVDS Differential Pair Selection

I am fighting Pin Planner at every turn. In my QSF file, I have the following:

set_location_assignment PIN_T22 -to "HSMC_RX_D_N(n)"
set_instance_assignment -name IO_STANDARD LVDS -to "HSMC_RX_D_N(n)"

When I import assignments and view them in either Assignment Editor or Pin Planner, the signals are not set to LVDS, they are not differential. However, when I use Pin Planner and set a signal as LVDS, it then sets the negative pair as the current signal with an extra (n). So my "HSMC_RX_D_N[15](n)" becomes "HSMC_RX_D_N[15](n)(n)" and "HSMC_RX_D_P[15]" becomes "HSMC_RX_D_P[15](n)". And then Pin Planner creates several "fake" signals N(n)(n) or P(n) that have the same location as the actual signals. Then when I compile the design, I get location errors. I'm using "iobuf" from the megawizard to make the differential signals single ended.

My two questions:

1.) How do i properly (manually even) set the signals in my QSF file so they they import properly (LVDS, differential, paired).

2.) How do I make Pin Planner stop being so mean to me?

Thanks

13 Replies

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

    --- Quote Start ---

    I'm not afraid of actually soldering, it's just they're super tiny components. And I don't want to solder them only to have to remove them because the FPGA board is used for something else.

    --- Quote End ---

    I doubt they are that small ... I was soldering 0201 (1mm x 0.5mm) parts last week ... those things are too small, so I'll make sure to stick with 0402 next time I design a board :)

    Removal is pretty easy, you just wipe a hot soldering iron over both ends of the part and they come off really easily.

    Like I said, so long as you're not trying to do performance measurements, you're probably fine leaving the terminations off.

    --- Quote Start ---

    The Pin Planner tool keeps locking me out from making changes after I select LVDS. Either it will prevent me from changing something (ignore my change) or prevent me from deleting something.

    --- Quote End ---

    Go to the "Assignments Editor" and make the edits there.

    You can also go to "Project->Generate Tcl File for Project", edit that file (remove the redundant (n) assignments), then use "Assignments->Remove Assignments" and remove all assignments, and then source the edited Tcl file.

    I generate all my projects by sourcing Tcl files, rather than the GUI. It makes it much easier to create designs. Take a look at the attached example. It includes differential LVDS constraints. Look at the constraints file in scripts/constraints.tcl, and look at the "Project->Generate Tcl File for Project" script in qwork/s4gxdk.tcl to see how those constraints resolve to Altera's constraints.

    Cheers,

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

    Thank you so much for the files. I will be sure to put them to good use! I was trying to use import / export from the assignments tab and was annoyed that it wasn't working.

    Thanks again.
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    --- Quote Start ---

    Thank you so much for the files. I will be sure to put them to good use!

    --- Quote End ---

    Ask questions if you wonder why I did something the way I did.

    My scripts should be fairly obvious once you compare them to the Altera generated script, i.e., mine are more concise and readable :)

    --- Quote Start ---

    I was trying to use import / export from the assignments tab and was annoyed that it wasn't working.

    --- Quote End ---

    Tcl scripting is the way to go to control Quartus and Modelsim.

    Cheers.

    Dave