Introduction - muneeb-mbytes/FPGABoard_edgeSpartan6 GitHub Wiki

What is UCF file in xilinx?

User constraint file. UCF files are used to interact with Xilinx's implementation tools. UCF files are unique to Xilinx.

NET "*" IOSTANDARD=LVCMOS33;

  • The NET keyword defines a specific signal name that is connected to the specified pin location on the FPGA.

  • LVCMOS33=Low Voltage Complementary Metal-Oxide-Semiconductor with a 3.3V voltage level

  • IOSTANDARD = I/O (Input-Output) standard

LVCMOS33 is a common I/O standard used in FPGAs for interfacing with digital circuits operating at 3.3V.

  • "*" asterisk- Denotes a wildcard character

  • Wildcard character means that this statement applies to all signals with unspecified names that use this I/O standard.

  • Alternatively, a specific signal name could be used in place of the asterisk to apply this constraint to a single signal.

CONFIG VCCAUX = "3.3" ;

This statement in a User Constraint File (UCF) for an FPGA sets the VCCAUX voltage level to 3.3 volts which is a common voltage level used in many FPGAs.

VCCAUX also known as VCCAuxiliary.

It is a voltage rail in the FPGA that provides power to auxiliary circuitry, such as digital clock managers and embedded processors.

  • A voltage rail is a DC voltage supply that powers one or more electronic circuits on a printed circuit board (PCB) or integrated circuit (IC).

  • The voltage level for this rail is typically specified in the UCF file to ensure that the auxiliary circuitry operates within the recommended voltage range.

  • Voltage rails are typically defined by their voltage level, such as +3.3V, +5V, or +12V, and may be provided by an external power supply or generated internally within a device.

#50 MHz oscillator

The statement "#50 MHz oscillator" in FPGA refers to the use of a 50 MHz oscillator as the clock source for the FPGA.

This means that the internal circuitry of the FPGA will operate at a frequency of 50 MHz, which is a common clock frequency used in many digital systems.

FPGAs require a clock source to synchronize the internal circuitry with the external world.

  • The clock source can be an oscillator or a crystal that generates a periodic signal with a specific frequency.
  • The frequency of the clock signal determines the rate at which the FPGA executes instructions and processes data.

NET "CLK50M" LOC = "p84";

NET "CLK50M" TNM_NET = "osc";

TIMESPEC "TS_osc" = PERIOD "osc" 20.000ns;

  • NET is a keyword used in hardware description languages (HDLs) like Verilog or VHDL to declare a signal as a net.

The first line NET "CLK50M" LOC = "p84"; specifies the physical location of the CLK50M signal. LOC stands for Location and it assigns a physical pin location to the specified net or signal. In this case, the CLK50M signal is assigned to pin p84.

The second line NET "CLK50M" TNM_NET = "osc"; specifies the name of the timing net.

TNM_NET stands for Timing Net Name

  • It assigns a name to a group of related signals that are part of a timing network. In this case, the timing network is named "osc" and the "CLK50M" signal is part of this network.

  • The timing of a net is critical because it determines when data is captured, stored, and/or processed by the logic in the circuit.

The third line TIMESPEC "TS_osc" = PERIOD "osc" 20.000ns; specifies the timing constraints for the osc timing network.

TIMESPEC is used to define the timing specifications for a specific timing network.

PERIOD specifies the desired clock period for that network.

In this case, the period is 20.000ns, which corresponds to a clock frequency of 50 MHz (1/20.000ns = 50 MHz).

Overall, this UCF file specifies that the "CLK50M" signal is connected to pin "p84", and that it is part of a timing network named "osc" that has a clock period of 20.000ns (50 MHz frequency). These constraints ensure that the clock signal is properly routed and timed in the FPGA design.