Hot answers tagged

3

Xilinx has been inconsistent with the LVDS iostandard, I won't delve into earlier generations than spartan-6! First, LVDS is current based (3.5mA into 100 ohm, around 350mV swing) and is electrically the same whatever the bank voltage. Spartan-6 supports LVDS outputs from a bank with a VCCO of 3.3 (LVDS_33) or 2.5 (LVDS_25). Since Virtex-6 doesn't support ...


2

You need to allocate each pin of the vector individually. To do that, start with a sample UCF file, perhaps auto-generated by the constraint editor tools, to get the syntax right. Looking at one sample UCF file I have on this computer, the constraints for a vector port GPIO_Led : OUT std_logic_vector (3 DOWNTO 0); look like: NET "GPIO_Led<0>" ...


2

An example constraint would be inst "led0" LOC=A1; You have to lock down each of the 7 bits separately. p.s. This is vendor-specific. It isn't part of VHDL. More detail on UCF files: http://www.xilinx.com/support/documentation/sw_manuals/xilinx13_1/cgd.pdf


2

Xilinx UCF is a constraints file format. It is used to apply various constraints on the design to the Xilinx tools, including but not limited to pin locations, timing, and area. When mapping your RTL (VHDL) design to a physical device, you will minimally need clocks and pin constraints at the top level, but constraints for real designs can go much further ...


2

All components are usually integrated into a single top level entity. It would be the final "wrapper" VHDL file which defines all ports, generics and all of the entire design. This is the HDL file which is then synthesized. So one UCF file is enough, which is defined only for this top level module. You can refer to synthesis guides from Altera or Xilinx ...


2

What you should do is make a bit of really simple test code to blink an LED at around 1 Hz. If that works, then the clock is working. This code can be incredibly simple: module test(input wire clk, output led) reg [31:0] cnt = 50000000; reg led = 0; always @(posedge clk) begin if (cnt > 0) begin cnt <= cnt - 1; end else begin ...


1

From the Xilinx UG903, page 8 (note: this is Vivado not ISE but should still apply): Xilinx recommends that you separate timing constraints and physical constraints by saving them into two distinct file s. You can also keep the constraints specific to a certain module in a separate file. Typically, I will have a single project wide timing constraints file ...


1

What you are requesting is not possible. Every port of your top-level design entity needs a physical pin. You can't tell the tool: "don't connect it." Why don't you use just one pin and change the assignment in your top-level entity?


1

One way is to define a FROM TO constraint, e.g. in UCF syntax: TIMEPSEC "TS_PAD2FF" = FROM PADS("my_ports") TO FFS("my_ffs") 4 ns; However, this does not define the maximum allowed difference of the path delays, but an absolute path delay for all paths from a group of pads to a group of FFs. So a possible fixed timing delay which all paths have in common ...


1

set_false_path is not only for for internal paths. You can use set_false_path for The port from which all paths are to be set as false paths: set_false_path -from [get_ports ] set_false_path -to [get_pins {}] set_false_path -through [get_pins {}] set_false_path -from [get_pins {}] set_false_path -from [get_cells <>] -to [get_cells <>] If ...


1

The UCF file usually (I have never seen done it in other ways) refers to signals in your top file. In this top file, then, you can instantiate other VHDL files that are in your project. As for the clock divider, in many applications you need to get lower clocks (e.g. you need to interface with a slower external device).


Only top voted, non community-wiki answers of a minimum length are eligible