Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
xst.pdf
Скачиваний:
141
Добавлен:
11.06.2015
Размер:
5.64 Mб
Скачать

Chapter 5: XST Design Constraints

R

The default is no.

Automatic BRAM Packing Project Navigator Syntax Example

Define Automatic BRAM Packing globally with Project Navigator > Process

Properties > Automatic BRAM Packing.

BRAM Utilization Ratio (BRAM_UTILIZATION_RATIO)

BRAM Utilization Ratio (BRAM_UTILIZATION_RATIO) defines the number of BRAM blocks that XST must not exceed during synthesis. BRAMs in the design may come not only from BRAM inference processes, but from instantiation and BRAM mapping optimizations. You may isolate an RTL description of logic in a separate block, and then ask XST to map this logic to BRAM. For more information, see “Mapping Logic Onto Block RAM.”

Instantiated BRAMs are the primary candidates for available BRAM resources. The inferred RAMs are placed on the remaining BRAM resources. However, if the number of instantiated BRAMs exceeds the number of available resources, XST does not modify the instantiations and implement them as block RAMs. The same behavior occurs if you force specific RAMs to be implemented as BRAMs. If there are no resources, XST respects user constraints, even if the number of BRAM resources is exceeded.

If the number of user-specified BRAMs exceeds the number of available BRAM resources on the target FPGA device, XST issues a warning, and uses only available BRAM resources on the chip for synthesis. However, you may disable automatic BRAM resource management by using value -1. This can be used to see the number of BRAMs XST can potentially infer for a specific design.

You may experience significant synthesis time if the number of BRAMs in the design significantly exceeds the number of available BRAMs on the target FPGA device (hundreds of BRAMs). This may happen due to a significant increase in design complexity when all non-fittable BRAMs are converted to distributed RAMs.

BRAM Utilization Ratio Architecture Support

BRAM Utilization Ratio applies to all FPGA devices. BRAM Utilization Ratio does not apply to CPLD devices.

BRAM Utilization Ratio Applicable Elements

BRAM Utilization Ratio applies to the entire design.

BRAM Utilization Ratio Propagation Rules

Not applicable

BRAM Utilization Ratio Syntax Examples

Following are syntax examples using BRAM Utilization Ratio with particular tools or methods. If a tool or method is not listed, BRAM Utilization Ratio may not be used with it.

372

www.xilinx.com

XST User Guide

 

 

10.1

R

XST FPGA Constraints (Non-Timing)

BRAM Utilization Ratio XST Command Line Syntax Examples

Define BRAM Utilization Ratio globally with the -bram_utilization_ratio command line option of the run command:

-bram_utilization_ratio <integer>[%][#]

where

<integer> range is [-1 to 100] when % is used or both % and # are omitted

The default is 100.

BRAM Utilization Ratio XST Command Line Syntax Example One

-bram_utilization_ratio 50

means 50% of BRAMs blocks in the target device

BRAM Utilization Ratio XST Command Line Syntax Example Two

-bram_utilization_ratio 50%

means 50% of BRAMs blocks in the target device

BRAM Utilization Ratio XST Command Line Syntax Example Three

-bram_utilization_ratio 50#

means 50 BRAMs blocks

There must be no space between the integer value and the percent (%) or pound (#) characters.

In some situations, you can disable automatic BRAM resource management (for example, to see how many BRAMs XST can potentially infer for a specific design). To disable automatic resource management, specify -1 (or any negative value) as a constraint value.

BRAM Utilization Ratio Project Navigator Syntax Example

Define globally in Project Navigator > Process Properties > Synthesis Options > BRAM Utilization Ratio.

In Project Navigator, you can define the value of BRAM Utilization Ratio only as a percentage. The definition of the value in the form of absolute number of BlockRAMs is not supported.

Buffer Type (BUFFER_TYPE)

Buffer Type (BUFFER_TYPE) is a new name for CLOCK_BUFFER. Since CLOCK_BUFFER will become obsolete in future releases, Xilinx recommends that you use this new name. BUFFER_TYPE selects the type of buffer to be inserted on the input port or internal net. The bufr value is supported for Virtex-4 and Virtex-5 devices only.

Buffer Type Architecture Support

Buffer Type applies to all FPGA devices. Buffer Type does not apply to CPLD devices.

Buffer Type Applicable Elements

Buffer Type applies to signals.

XST User Guide

www.xilinx.com

373

10.1

Chapter 5: XST Design Constraints

R

Buffer Type Propagation Rules

Buffer Type applies to the signal to which it is attached.

Buffer Type Syntax Examples

Following are syntax examples using Buffer Type with particular tools or methods. If a tool or method is not listed, Buffer Type may not be used with it.

Buffer Type VHDL Syntax Example

Before using Buffer Type, declare it with the following syntax:

attribute buffer_type: string;

After declaring Buffer Type, specify the VHDL constraint:

attribute buffer_type of signal_name: signal is "{bufgdll|ibufg|bufgp|ibuf|bufr|none}";

Buffer Type Verilog Syntax Example

Place Buffer Type immediately before the signal declaration:

(* buffer_type = "{bufgdll|ibufg|bufgp|ibuf|bufr|none}" *)

Buffer Type XCF Syntax Example

BEGIN MODEL "entity_name"

NET "signal_name"

buffer_type={bufgdll|ibufg|bufgp|ibuf|bufr|none};

END;

Extract BUFGCE (BUFGCE)

Extract BUFGCE (BUFGCE) implements BUFGMUX functionality by inferring a BUFGMUX primitive. This operation reduces the wiring. Clock and clock enable signals are driven to n sequential components by a single wire.

Extract BUFGCE must be attached to the primary clock signal.

Extract BUFGCE values are:

yes

no

Extract BUFGCE is accessible through Hardware Description Language (HDL) code. If bufgce=yes, XST implements BUFGMUX functionality if possible. All flip-flops must have the same clock enable signal.

Extract BUFGCE Architecture Support

Extract BUFGCE applies to the following FPGA devices only:

Spartan-3

Spartan-3E

Spartan-3A

Spartan-3A D

Virtex-II

374

www.xilinx.com

XST User Guide

 

 

10.1

R

XST FPGA Constraints (Non-Timing)

Virtex-II Pro

Virtex-4

Virtex-5

Extract BUFGCE does not apply to CPLD devices.

Extract BUFGCE Applicable Elements

Extract BUFGCE applies to clock signals.

Extract BUFGCE Propagation Rules

Extract BUFGCE applies to the signal to which it is attached.

Extract BUFGCE Syntax Examples

Following are syntax examples using Extract BUFGCE with particular tools or methods. If a tool or method is not listed, Extract BUFGCE may not be used with it.

Extract BUFGCE VHDL Syntax Example

Before using Extract BUFGCE, declare it with the following syntax:

attribute bufgce : string;

After declaring Extract BUFGCE, specify the VHDL constraint:

attribute bufgce of signal_name: signal is "{yes|no}";

Extract BUFGCE Verilog Syntax Example

Place Extract BUFGCE immediately before the signal declaration:

(* bufgce = "{yes|no}" *)

Extract BUFGCE XCF Syntax Example

BEGIN MODEL "entity_name"

NET "primary_clock_signal" bufgce={yes|no|true|false};

END;

Cores Search Directories (–sd)

Cores Search Directories (-sd)tells XST to look for cores in directories other than the default. By default XST searches for cores in the directory specified in the -ifn option.

Cores Search Directories Architecture Support

Cores Search Directories applies to all FPGA devices. Cores Search Directories does not apply to CPLD devices.

Cores Search Directories Applicable Elements

Cores Search Directories applies globally.

Cores Search Directories Propagation Rules

Not applicable

XST User Guide

www.xilinx.com

375

10.1

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]