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

Chapter 5: XST Design Constraints

R

Signal Encoding Propagation Rules

Signal Encoding applies to the entity, module, or signal to which it is attached.

Signal Encoding Syntax Examples

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

Signal Encoding VHDL Syntax Example

Before using Signal Encoding, declare it with the following syntax:

attribute signal_encoding: string;

After declaring Signal Encoding, specify the VHDL constraint:

attribute signal_encoding of

{component_name|signal_name|entity_name|label_name}:

{component|signal|entity|label} is "{auto|one-hot|user}";

The default is auto.

Signal Encoding Verilog Syntax Example

Place Signal Encoding immediately before the signal declaration:

(* signal_encoding = "{auto|one-hot|user}" *)

The default is auto.

Signal Encoding XCF Syntax Example One

MODEL "entity_name" signal_encoding = {auto|one-hot|user};

Signal Encoding XCF Syntax Example Two

BEGIN MODEL "entity_name"

NET "signal_name" signal_encoding = {auto|one-hot|user};

END;

Signal Encoding XST Command Line Syntax Example

Define Signal Encoding globally with the –signal_encoding command line option of the run command:

-signal_encoding {auto|one-hot|user}

The default is auto.

XST FPGA Constraints (Non-Timing)

This section describes FPGA Hardware Description Language (HDL) options. These options apply only to FPGA devices. These options do not apply to CPLD devices.

In many cases, a particular constraint can be applied globally to an entire entity or model, or alternatively, it can be applied locally to individual signals, nets or instances. See Table 5-1, “XST-Specific Non-Timing Options,” and Table 5-2, “XST-Specific Non-Timing Options: XST Command Line Only,”for valid constraint targets.

Automatic Incremental Synthesis (-automatic_incremental_synthesis) instructs XST to automatically run in incremental synthesis mode. In this mode, XST recompiles

368

www.xilinx.com

XST User Guide

 

 

10.1

R

XST FPGA Constraints (Non-Timing)

only the modules that have changed since the last compile. Use the no value to recompile the entire design.

Define Automatic Incremental Synthesis globally with the – automatic_incremental_synthesis option of the run command. Following is the basic syntax:

-automatic_incremental_synthesis {yes|no}

The default is yes.

Set Automatic Incremental Synthesis globally in Project Navigator > Process Properties > Synthesis Options > Automatic Incremental Synthesis.

This section discusses the following constraints:

“Asynchronous to Synchronous (ASYNC_TO_SYNC)”

“Automatic BRAM Packing (AUTO_BRAM_PACKING)”

“BRAM Utilization Ratio (BRAM_UTILIZATION_RATIO)”

“Buffer Type (BUFFER_TYPE)”

“Extract BUFGCE (BUFGCE)”

“Cores Search Directories (–sd)”

“Decoder Extraction (DECODER_EXTRACT)”

“DSP Utilization Ratio (DSP_UTILIZATION_RATIO)”

“FSM Style (FSM_STYLE)”

“Power Reduction (POWER)”

“Read Cores (READ_CORES)”

“Resynthesize (RESYNTHESIZE)”

“Incremental Synthesis (INCREMENTAL_SYNTHESIS)”

“Logical Shifter Extraction (SHIFT_EXTRACT)”

“LUT Combining (LC)”

“Map Logic on BRAM (BRAM_MAP)”

“Max Fanout (MAX_FANOUT)”

“Move First Stage (MOVE_FIRST_STAGE)”

“Move Last Stage (MOVE_LAST_STAGE)”

“Multiplier Style (MULT_STYLE)”

“Mux Style (MUX_STYLE)”

“Number of Global Clock Buffers (–bufg)”

“Number of Regional Clock Buffers (–bufr)”

“Optimize Instantiated Primitives (OPTIMIZE_PRIMITIVES)”

“Pack I/O Registers Into IOBs (IOB)”

“Priority Encoder Extraction (PRIORITY_EXTRACT)”

“RAM Extraction (RAM_EXTRACT)”

“RAM Style (RAM_STYLE)”

“Reduce Control Sets (REDUCE_CONTROL_SETS)”

“Register Balancing (REGISTER_BALANCING)”

“Register Duplication (REGISTER_DUPLICATION)”

XST User Guide

www.xilinx.com

369

10.1

Chapter 5: XST Design Constraints

R

“ROM Extraction (ROM_EXTRACT)”

“ROM Style (ROM_STYLE)”

“Shift Register Extraction (SHREG_EXTRACT)”

“Slice Packing (–slice_packing)”

“Use Low Skew Lines (USELOWSKEWLINES)”

“XOR Collapsing (XOR_COLLAPSE)”

“Slice (LUT-FF Pairs) Utilization Ratio (SLICE_UTILIZATION_RATIO)”

“Slice (LUT-FF Pairs) Utilization Ratio Delta (SLICE_UTILIZATION_RATIO_MAXMARGIN)”

“Map Entity on a Single LUT (LUT_MAP)”

“Use Carry Chain (USE_CARRY_CHAIN)”

“Convert Tristates to Logic (TRISTATE2LOGIC)”

“Use Clock Enable (USE_CLOCK_ENABLE)”

“Use Synchronous Set (USE_SYNC_SET)”

“Use Synchronous Reset (USE_SYNC_RESET)”

“Use DSP48 (USE_DSP48)”

Asynchronous to Synchronous (ASYNC_TO_SYNC)

Asynchronous to Synchronous (ASYNC_TO_SYNC) allows you to replace Asynchronous Set/Reset signals with Synchronous signals throughout the entire design. This allows absorption of registers by DSP48 and BRAMs, thereby improving quality of results. In addition, this feature may have a positive impact on power optimization.

Although XST can place FSMs on BRAMs, in most cases an FSM has an Asynchronous Set/Reset signal, which does not allow FSM implementation on BRAMs. ASYNC_TO_SYNC allows you to more easily place FSMs on BRAMs, by eliminating the need to manually change the design.

Replacing Asynchronous Set/Reset signals by Synchronous signals makes the generated NGC netlist NOT equivalent to the initial RTL description. You must ensure that the synthesized design satisfies the initial specification. XST issues the following warning:

WARNING: You have requested that asynchronous control signals of sequential elements be treated as if they were synchronous. If you haven't done so yet, please carefully review the related documentation material. If you have opted to asynchronously control flip-flop initialization, this feature allows you to better explore the possibilities offered by the Xilinx solution without having to go through a painful rewriting effort. However, be well aware that the synthesis result, while providing you with a good way to assess final device usage and design performance, is not functionally equivalent to your HDL description. As a result, you will not be able to validate your design by comparison of pre-synthesis and post-synthesis simulation results. Please also note that in general we strongly recommend synchronous flip-flop initialization.

Asynchronous to Synchronous Architecture Support

Asynchronous to Synchronous applies to all FPGA devices. Asynchronous to Synchronous does not apply to CPLD devices.

370

www.xilinx.com

XST User Guide

 

 

10.1

R

XST FPGA Constraints (Non-Timing)

Asynchronous to Synchronous Applicable Elements

Asynchronous to Synchronous applies to the entire design.

Asynchronous to Synchronous Propagation Rules

Not applicable

Asynchronous to Synchronous Syntax Examples

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

Asynchronous to Synchronous XST Command Line Syntax Example

Define Asynchronous to Synchronous globally with the -async_to_sync command line option of the run command:

-async_to_sync {yes|no}

The default is no.

Asynchronous to Synchronous Project Navigator Syntax Example

Define Asynchronous to Synchronous globally with Project Navigator > Process

Properties > HDL Options > Asynchronous to Synchronous.

Automatic BRAM Packing (AUTO_BRAM_PACKING)

Automatic BRAM Packing (AUTO_BRAM_PACKING) allows you to pack two small BRAMs in a single BRAM primitive as dual-port BRAM. XST packs BRAMs together only if they are situated in the same hierarchical level.

Automatic BRAM Packing Architecture Support

Automatic BRAM Packing applies to all FPGA devices. Automatic BRAM Packing does not apply to CPLD devices.

Automatic BRAM Packing Applicable Elements

Automatic BRAM Packing applies to the entire design.

Automatic BRAM Packing Propagation Rules

Not applicable

Automatic BRAM Packing Syntax Examples

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

Automatic BRAM Packing XST Command Line Syntax Example

Define Automatic BRAM Packing globally with the -auto_bram_packing command line option of the run command:

-auto_bram_packing {yes|no}

XST User Guide

www.xilinx.com

371

10.1

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