Selecting pin impedance on fpga - Page 1
Forum section: electronics / general

author: TeddyPython
author_rank: Contributor
timestamp: August 13, 2019, 07:22:51 pm
content: I'm trying to create a 50 ohm output from my altera cyclone iv e ep4ce10, however I'm having trouble understanding exactly how this is achieved in practice. Ive read the io features book herehttps://www.intel.com/content/dam/www/programmable/us/en/pdfs/literature/hb/cyclone-iv/cyiv-51006.pdfwhere on page 7 I think it says that the 3.0-V LVTTL should have a 50 or 25 ohm impedance with or without calibration setting.Ive also read through the section on io banks in the cylone iv e handbook herehttps://www.intel.com/content/dam/www/programmable/us/en/pdfs/literature/hb/cyclone-iv/cyclone4-handbook.pdf, but not found any more information on how to actually set the 50 ohm output.Is it just a case of in the pin planner in quartus prime, setting IO standard to 3.0-V LVTTL and thats it, as shown in my attached image? If so how can i be sure it is 50 and not 25?Any other suggestions would be welcome if im missing the plot completely.

author: rstofer
author_rank: Super Contributor
timestamp: August 14, 2019, 12:01:59 am
content: If you actually had a driving impedance of 50 Ohms, adding a 50 Ohm load should drop the open circuit voltage in half.Now, can the pin actually drive a total of 100 Ohms (50 internal and 50 external)? Beats me.You have to look at the maximum output current and calculate the minimum allowable load.Somehow, Ohm's Law is going to play into this calculation...

author: Daixiwen
author_rank: Frequent Contributor
timestamp: August 14, 2019, 07:53:12 am
content: By default the output will not have any series termination. You need to enable it.For that, in the pin planner, go to the lower part with the table, right click on the free area after the column titles, and click on "customize columns"It will open a window where you can choose what columns to show for each pin. Find the "Output Termination" entry in the available columns and transfer it to the "show these columns" list with the little arrow button.Then in the table you'll have a new column where you can choose what kind of termination you want.You will see by default all the possible values, even those that aren't compatible with your I/O standard or your pin. So after you set this, run a I/O assignment analysis (processing menu in the pin planner) and see if it reports any error.

author: AndyC_772
author_rank: Super Contributor
timestamp: August 14, 2019, 08:14:43 am
content: Quote from: rstofer on August 14, 2019, 12:01:59 amA 50 ohm output on a device like an FPGA is normally used to drive a 50 ohm transmission line which terminates in a high impedance.I talked in some depth about transmission lines with no termination, parallel termination and series terminationhere- it might be worth a read.To the OP: go into the assignment editor and select:"To" is the name of your output pin"Assignment Name" is "Output Termination""Value" is "Series 50 Ohm""Enabled" = "Yes"

author: TeddyPython
author_rank: Contributor
timestamp: August 14, 2019, 09:19:22 pm
content: Thank you for the very clear replies, much appreciated - my prototype is working almost as expected now!May I ask where you found this information? Is there a good guide on getting to grips with the software, or just a case of being familiar?

author: Daixiwen
author_rank: Frequent Contributor
timestamp: August 15, 2019, 06:33:22 am
content: No sorry I don't remember how I got this information. I've been using Quartus for too longYou just need to get familiar with it. The documentation is good but massive. You'll only end up using like 5% of the tool, but those 5% are different for everyone, depending on their application, so it's not easy to find a good tutorial or documentation tailored to your needs.

author: AndyC_772
author_rank: Super Contributor
timestamp: August 15, 2019, 06:35:26 am
content: Same here, I've been using Altera FPGAs since the days of MAXPLUS2, which was Quartus's predecessor.

author: radiolistener
author_rank: Super Contributor
timestamp: August 15, 2019, 09:20:07 am
content: Quote from: Daixiwen on August 14, 2019, 07:53:12 amDoes it actually affects synthesis result? Or it just will be used for post-synthesis timing analysis, just to check if timing constraints are meet?

author: Daixiwen
author_rank: Frequent Contributor
timestamp: August 15, 2019, 11:38:57 am
content: No it won't affect synthesis nor timing analysis.If you make any changes to the pin assignments that could cause sensible differences in signal delay, you must make Quartus generate the IBIS models for you, then simulate your PCB with the correct IBIS model, get the signal delay from the simulation, incorporate it back in the timing constraints and then recompile your project. It should still not affect synthesis results but it will affect the fitter.But unless it's a very tight timing signal or a very long propagation delay on the PCB it's usually not necessary to do all this.