Programmable Devices
CPLDs, FPGAs, SoC FPGAs, Configuration, and Transceivers
21323 Discussions

altera beginner - arria10 fpga questions ...

Altera_Forum
Honored Contributor II
1,749 Views

hi, i was just beginning to program altera arria10 FPGAs (10AX115S3F45I2SGES) using quartusII and i had some general questions - 

 

1) i have a differential clock on my board which i need to use as the single ended ref clock for my design. which megafunction or altera primitive should i use for converting the differential clock into a single ended clock? 

2) should i use altera GPIO megafunction from the IP library catalog or should i use some primitive? 

3) most of the tutorials online suggest making a .bdf file. however the designs i work with are large so making .bdf files may not be straightforward for my deisgns. is making the .bdf file necessary or can this step be skipped? 

4) since i've mostly used xilinx FPGAs and in that we have primitives like ibufgds, ibufg etc. for i/o buffering, differential buffering etc. is there some way of finding the altera equivalent of these io buffers/primitives? 

5) is it possible to port .edf files (generated by synopsys - synthesis) into quartusII? 

6) xilinx ISE puts IO buffers for all the IOs in the top level of the design. can the same be expected from quartusII or do we have to instantiate IO buffers for the IOs in the top level specifically? 

 

please let me know ... 

 

thanks, 

z.
0 Kudos
1 Reply
Altera_Forum
Honored Contributor II
896 Views

 

--- Quote Start ---  

 

1) i have a differential clock on my board which i need to use as the single ended ref clock for my design. which megafunction or altera primitive should i use for converting the differential clock into a single ended clock? 

 

--- Quote End ---  

 

Generally you don't need any, you can just have a verilog top file that has an input port and an output port. The IO standard determines if it is single ended or differential. 

 

However, with that being set, using a PLL and the dedicated PLL clock output pins will provide better latency control and jitter performance. Use the PLL megawizard to generate your PLL, and make sure you hook up the correct PLL's input and output pins in the pin planner. 

 

 

--- Quote Start ---  

 

2) should i use altera GPIO megafunction from the IP library catalog or should i use some primitive? 

 

--- Quote End ---  

 

 

Don't need this, the synthesis tool and pin planner information will do it for you (At least for the clock). 

 

 

--- Quote Start ---  

 

3) most of the tutorials online suggest making a .bdf file. however the designs i work with are large so making .bdf files may not be straightforward for my deisgns. is making the .bdf file necessary or can this step be skipped? 

 

--- Quote End ---  

 

Stick with VHDL or Verilog. .BDF is for beginners or CPLD users that have small designs. 

 

 

--- Quote Start ---  

 

4) since i've mostly used xilinx FPGAs and in that we have primitives like ibufgds, ibufg etc. for i/o buffering, differential buffering etc. is there some way of finding the altera equivalent of these io buffers/primitives? 

 

--- Quote End ---  

 

Although the primitives exist, I have not found a need to use them with altera unless you are doing very special clock gating. The tool does a good job. 

 

 

 

--- Quote Start ---  

 

5) is it possible to port .edf files (generated by synopsys - synthesis) into quartusII? 

 

--- Quote End ---  

 

 

Yes, It see's *.EDF and *.EDIF as design files, but I've never used this.. In my experience, where Simplicity was almost a requirement for Xilinx for many years, Altera did a good enough job that it wasn't required. 

 

 

--- Quote Start ---  

 

6) xilinx ISE puts IO buffers for all the IOs in the top level of the design. can the same be expected from quartusII or do we have to instantiate IO buffers for the IOs in the top level specifically? 

 

--- Quote End ---  

 

 

You can do this, but most of the IO requirements are handled in the pin planner. So you can keep the IO's as simple Verilog/VHDL ports, versus specifying specific IO buffers. That being said, if you are going to an ASIC, the ASIC flow will usually require the IO buffers at the top. What I do in this case is make a simple wrapper that has pure Verilog IO buffer structure that has an ifdef for ASIC synthesis with the ASIC library io buffer. 

 

 

 

Pete
0 Kudos
Reply