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

Chapter 4: XST CPLD Optimization

R

CPLD Synthesis Supported Devices

XST supports CPLD synthesis for the following devices:

CoolRunner XPLA3

CoolRunner-II

XC9500

XC9500XL

XC9500XV

The synthesis for CoolRunner, XC9500XL, and XC9500XV families includes clock enable processing. You can allow or invalidate the clock enable signal (when invalidating, it is replaced by equivalent logic). The selection of the macros that use the clock enable (counters, for instance) depends on the device type. A counter with clock enable is accepted for the CoolRunner, XC9500XL and XC9500XV families, but rejected (replaced by equivalent logic) for XC9500 devices.

Setting CPLD Synthesis Options

Set the following CPLD synthesis options in Project Navigator > Process

Properties > Synthesis Options. For more information, see “XST CPLD

Constraints (Non-Timing).”

“Keep Hierarchy (KEEP_HIERARCHY)”

“Macro Preserve (–pld_mp)”

“XOR Preserve (–pld_xp)”

“Equivalent Register Removal (EQUIVALENT_REGISTER_REMOVAL)”

“Clock Enable (–pld_ce)”

“WYSIWYG (–wysiwyg)”

“No Reduce (NOREDUCE)”

Implementation Details for Macro Generation

XST processes the following macros:

Adders

Subtractors

Add/sub

Multipliers

Comparators

Multiplexers

Counters

Logical shifters

Registers (flip-flops and latches)

XORs

298

www.xilinx.com

XST User Guide

 

 

10.1

R

CPLD Synthesis Log File Analysis

The macro generation is decided by the Macro Preserve command line option, which can take two values:

yes — macro generation is allowed.

no — macro generation is inhibited.

The general macro generation flow is:

1.Hardware Description Language (HDL) infers macros and submits them to the lowlevel synthesizer.

2.Low-level synthesizer accepts or rejects the macros depending on the resources required for the macro implementations.

An accepted macro is generated by an internal macro generator. A rejected macro is replaced by equivalent logic generated by the HDL synthesizer. A rejected macro may be decomposed by the HDL synthesizer into component blocks so that one component may be a new macro requiring fewer resources than the initial one, and another smaller macro may be accepted by XST. For instance, a flip-flop macro with clock enable (CE) cannot be accepted when mapping onto the XC9500. In this case the HDL synthesizer submits two new macros:

A flip-flop macro without clock enable signal

A MUX macro implementing the clock enable function

A generated macro is optimized separately and then merged with surrounded logic because optimization gives better results for larger components.

CPLD Synthesis Log File Analysis

XST messages related to CPLD synthesis are located after the following message:

=======================================================

*

Low Level Synthesis

*

=======================================================

The XST log file contains:

Tracing of progressive unit optimizations:

Optimizing unit unit_name ...

Information, warnings or fatal messages related to unit optimization:

When equation shaping is applied (XC9500 devices only):

Collapsing ...

Removing equivalent flip-flops:

Register ff1 equivalent to ff2 has been removed

User constraints fulfilled by XST:

implementation constraint: constraint_name[=value]: signal_name

Final results statistics:

Final Results

Top Level Output file name : file_name

Output format : ngc

Optimization goal : {area | speed}

Target Technology : {9500 | 9500xl | 9500xv | xpla3 | xbr | cr2s}

Keep Hierarchy : {yes | soft | no}

XST User Guide

www.xilinx.com

299

10.1

Chapter 4: XST CPLD Optimization

R

Macro Preserve : {yes | no}

XOR Preserve : {yes | no}

Design Statistics

NGC Instances: nb_of_instances

I/Os: nb_of_io_ports

Macro Statistics

#FSMs: nb_of_FSMs

#Registers: nb_of_registers

#Tristates: nb_of_tristates

#Comparators: nb_of_comparators

n-bit comparator {equal | not equal | greater| less | greatequal | lessequal}:

nb_of_n_bit_comparators

#Multiplexers: nb_of_multiplexers n-bit m-to-1 multiplexer : nb_of_n_bit_m_to_1_multiplexers

#Adders/Subtractors: nb_of_adds_subs n-bit adder: nb_of_n_bit_adds n-bit subtractor: nb_of_n_bit_subs

#Multipliers: nb_of_multipliers

#Logic Shifters: nb_of_logic_shifters

#Counters: nb_of_counters

n-bit {up | down | updown} counter: nb_of_n_bit_counters

# XORs: nb_of_xors

Cell Usage :

#BELS: nb_of_bels

#AND...: nb_of_and...

#OR...: nb_of_or...

#INV: nb_of_inv

#XOR2: nb_of_xor2

#GND: nb_of_gnd

#VCC: nb_of_vcc

#FlipFlops/Latches: nb_of_ff_latch

#FD...: nb_of_fd...

#LD...: nb_of_ld...

#Tri-States: nb_of_tristates

#BUFE: nb_of_bufe

#BUFT: nb_of_buft

#IO Buffers: nb_of_iobuffers

#IBUF: nb_of_ibuf

#OBUF: nb_of_obuf

#IOBUF: nb_of_iobuf

300

www.xilinx.com

XST User Guide

 

 

10.1

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