UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

AR# 1331

How to add XACT-Performance (Timespec) constraints to my CST file

Description

How do I add XACT-Performance (Timespec) constraints to my CST file?

解决方案

Putting XACT-Performance specifications in CST files is

relatively straightforward.

Let's say you have the following timing specifications. If

placed directly on the schematic, these would be attributes

attached to the TIMESPECsymbol:

TIMESPEC

========

TS_PIPELINE = FROM:FFS:TO:FFS=40MHZ

TS_GETIN = FROM:ENTRANCE:TO:FFS=20NS

TS_GETOUT = FROM:FFS:TO:EXIT=TS_GETOUT*.75

(ENTRANCE and EXIT are user-defined timing names.)

If you wanted to put thes in your (design).cst file instead,

the format would be:

timespec="TS_PIPELINE=FROM:FFS:TO:FFS=25";

timespec="TS_GETIN=FROM:ENTRANCE:TO:FFS=20";

timespec="TS_GETOUT=FROM:FFS:TO:EXIT=15";

Note that all specifications, whether they be given in time

or frequency, must be converted to nanoseconds. The CST file

is case-insensitive and requires a semicolon to terminate

each line.

You can do TIMEGRP attributes in a similar way. For example:

TIMEGRP

=======

MY_COUNTER = THIS_GROUP:THAT_GROUP

MY_DRIVERS = THESE_PADS:THOSE_PADS

MY_REGISTER = FFS(SHIFT_OUT*)

would, in the (design).cst file, be:

timegrp="MY_COUNTER=THIS_GROUP:THAT_GROUP";

timegrp="MY_DRIVERS=THESE_PADS:THOSE_PADS";

timegrp="MY_REGISTER=FFS(SHIFT_OUT*)";

You can also combine timespec and timegrp statements in the

CST file. This is especially useful in HDL synthesis

designs, where TNMs cannot be attached directly to elements

of your design. Say you wanted to control the path between a

counter and a register. The output of the counter is

ADDRESS(7:0) while the output of the register is

PIPEDATA(7:0). You may define two timegroups as such:

timegrp="ADDRESS_COUNT=FFS(ADDRESS*)";

timegrp="PIPESTAGE=FFS(PIPEDATA*)";

This has the same effect of adding TNM=ADDRESS_COUNT to all

flip-flops in the counter, and of adding TNM=PIPESTAGE to all

flip-flops in the register.

Be careful that you do not inadvertently include unwanted

signals in your timegroups when using wildcards. The first

timegrp specification would include in the ADDRESS_COUNT

group a flip-flop whose output signal was called "ADDRESS_ENABLE", if such a signal existed. Adjust your

signal names if necessary.

Once you have the timing groups specified, the timespec is straightforward:

timespec="TS_ADDRLATCH=FROM:ADDRESS_COUNT:TO:PIPESTAGE=40";

IMPORTANT: Whenever you modify Timespec directives in a CST

file, you MUST rerun XNFPrep; it is not sufficient to rerun

only PPR:

xnfprep thiamin.xff thiamin.xtf

(xnfmap thiamin.xtf thiamin.map)

ppr thiamin.xtf/.map

This is because PPR does not read timing constraints from the

CST file; it relies on XNFPrep to write them into the XTF

file.

AR# 1331
创建日期 08/31/2007
Last Updated 01/18/2010
状态 Archive
Type 综合文章