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

Chapter 5: XST Design Constraints

R

Incremental Synthesis (INCREMENTAL_SYNTHESIS)

Incremental Synthesis (INCREMENTAL_SYNTHESIS) controls the decomposition of a design into several subgroups. This can be applied on a VHDL entity or Verilog module so that XST generates a single and separate NGC file for it and its descendents. For more information, see “Partitions.”

Incremental Synthesis is not accessible from Synthesize > XST Process

Properties. Incremental Synthesist is available only through:

VHDL attributes

Verilog meta comments

XST constraint file

Incremental Synthesis Architecture Support

Incremental Synthesis applies to all FPGA devices. Incremental Synthesis does not apply to CPLD devices.

Incremental Synthesis Applicable Elements

Incremental Synthesis applies to a VHDL entity or Verilog module.

Incremental Synthesis Propagation Rules

Incremental Synthesis applies to the entity or module to which it is attached.

Incremental Synthesis Syntax Examples

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

Incremental Synthesis VHDL Syntax Example

Before using Incremental Synthesis declare it with the following syntax:

attribute incremental_synthesis: string;

After declaring Incremental Synthesis, specify the VHDL constraint:

attribute incremental_synthesis of entity_name: entity is "{yes|no}";

Incremental Synthesis Verilog Syntax Example

Place Incremental Synthesis immediately before the module declaration or instantiation:

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

Incremental Synthesis XCF Syntax Example

MODEL "entity_name" incremental_synthesis={yes|no};

384

www.xilinx.com

XST User Guide

 

 

10.1

R

XST FPGA Constraints (Non-Timing)

Logical Shifter Extraction (SHIFT_EXTRACT)

Logical Shifter Extraction (SHIFT_EXTRACT) enables or disables logical shifter macro inference.

Logical Shifter Extraction values are:

yes (default)

no

true (XCF only)

false (XCF only)

Logical Shifter Extraction Architecture Support

Logical Shifter Extraction applies to all FPGA devices. Logical Shifter Extraction does not apply to CPLD devices.

Logical Shifter Extraction Applicable Elements

Logical Shifter Extraction applies globally, or to design elements and nets.

Logical Shifter Extraction Propagation Rules

Logical Shifter Extraction applies to the entity, module, or signal to which it is attached.

Logical Shifter Extraction Syntax Examples

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

Logical Shifter Extraction VHDL Syntax Example

Before using Logical Shifter Extraction declare it with the following syntax:

attribute shift_extract: string;

After declaring Logical Shifter Extraction, specify the VHDL constraint:

attribute shift_extract of {entity_name|signal_name}: {signal|entity} is "{yes|no}";

Logical Shifter Extraction Verilog Syntax Example

Place Logical Shifter Extraction immediately before the module or signal declaration:

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

Logical Shifter Extraction XCF Syntax Example One

MODEL "entity_name" shift_extract={yes|no|true|false};

Logical Shifter Extraction XCF Syntax Example Two

BEGIN MODEL "entity_name"

NET "signal_name" shift_extract={yes|no|true|false};

END;

XST User Guide

www.xilinx.com

385

10.1

Chapter 5: XST Design Constraints

R

Logical Shifter Extraction XST Command Line Syntax Example

Define Logical Shifter Extraction globally with the shift_extract command line option of the run command:

-shift_extract {yes|no}

The default is yes.

Logical Shifter Extraction Project Navigator Syntax Example

Define Logical Shifter Extraction globally Project Navigator > Process

Properties > HDL Options > Logical Shifter Extraction.

LUT Combining (LC)

LUT Combining (LC) enables the merging of LUT pairs with common inputs into single dual-output LUT6s in order to improve design area. This optimization process may reduce design speed.

LUT Combining supports three values:

auto

XST tries to make a tradeoff between area and speed.

area

XST performs maximum LUT combining to provide as small an implementation as possible.

off

Disables LUT combining.

LUT Combining Architecture Support

LUT Combining applies to FPGA Virtex-5 devices only. LUT Combining does not apply to CPLD devices.

LUT Combining Applicable Elements

LUT Combining applies globally.

LUT Combining Propagation Rules

Not applicable

LUT Combining Syntax Examples

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

LUT Combining XST Command Line Syntax Example

Define LUT Combining globally with the -lc command line option of the run command:

-lc {auto|area|off}

The default is off.

386

www.xilinx.com

XST User Guide

 

 

10.1

R

XST FPGA Constraints (Non-Timing)

LUT Combining Project Navigator Syntax Example

Define LUT Combining globally in Project Navigator > Process Properties > Xilinx-

Specific Options > LUT Combining.

Map Logic on BRAM (BRAM_MAP)

Map Logic on BRAM (BRAM_MAP) is used to map an entire hierarchical block on the block RAM resources available in Virtex and later technologies.

Map Logic on BRAM values are:

yes

no (default)

Map Logic on BRAM is both a global and a local constraint. For more information, see “Mapping Logic Onto Block RAM.”

Map Logic on BRAM Architecture Support

Map Logic on BRAM applies to all FPGA devices. Map Logic on BRAM does not apply to CPLD devices.

Map Logic on BRAM Applicable Elements

Map Logic on BRAM applies to BRAMs.

Map Logic on BRAM Propagation Rules

Isolate the logic (including output register) to be mapped on RAM in a separate hierarchical level. Logic that does not fit on a single block RAM is not mapped. Ensure that the whole entity fits, not just part of it.

The attribute BRAM_MAP is set on the instance or entity. If no block RAM can be inferred, the logic is passed to Global Optimization, where it is optimized. The macros are not inferred. Be sure that XST has mapped the logic.

Map Logic on BRAM Syntax Examples

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

Map Logic on BRAM VHDL Syntax Example

Before using Map Logic on BRAM, declare it with the following syntax:

attribute bram_map: string;

After declaring Map Logic on BRAM, specify the VHDL constraint:

attribute bram_map of component_name: component is "{yes|no}";

Map Logic on BRAM Verilog Syntax Example

Place Map Logic on BRAM immediately before the module declaration or instantiation:

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

Map Logic on BRAM XCF Syntax Example One

MODEL "entity_name" bram_map = {yes|no|true|false};

XST User Guide

www.xilinx.com

387

10.1

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