Home    Bloggers    Messages    Webinars    Resources   
Tw  |  Fb  |  In  |  Rss
Duane Benson

Discovering FPGAs: More About the UCF

Duane Benson
Page 1 / 2   >   >>
rfindley
rfindley
6/24/2012 11:56:39 PM
User Rank
Blogger
Re: Net CLK_66MHZ TNM_NET = CLK_66MHZ
Yes, that is correct.

Also, the "Post PAR Static Timing Report" (PAR == Place & Route) can show you all the signals that each timing constraint was applied to, among other things.  It's very heavy reading, though.

50%
50%
Duane Benson
Duane Benson
6/24/2012 9:37:07 PM
User Rank
Blogger
Re: Net CLK_66MHZ TNM_NET = CLK_66MHZ;
Max - re: standing still... Sometimes if you stand still, you get to see Orca whales though.

50%
50%
Duane Benson
Duane Benson
6/24/2012 9:34:55 PM
User Rank
Blogger
Re: Net CLK_66MHZ TNM_NET = CLK_66MHZ
Rfindley - So, if I understand correctly, I can change my lines 2 and 3 to be:

Line 2:  Net CLK_66MHZ TNM_NET = groupCLK_66MHZ;
Line 3:  TIMESPEC TS_CLK_66MHZ = PERIOD groupCLK_66MHZ 15000 ps INPUT_JITTER 1000 ps;

and this will give the same result as what is in my UCF file shown above, but will be a little more clear? I made these changes and it seems to work as well as in the original form.

So, CLK_66MHz is the net and groupCLK_66MHZ is the timing group. Is that about it?

50%
50%
Duane Benson
Duane Benson
6/24/2012 8:18:35 PM
User Rank
Blogger
Re: Timing Constraints
Austin - I've started reading and will go through all four parts. So far it's looks very thorough. I'll let you know if I run into any roadblocks.

50%
50%
rfindley
rfindley
6/20/2012 3:37:56 PM
User Rank
Blogger
Re: Net CLK_66MHZ TNM_NET = CLK_66MHZ
Although using the same name for both the net and the timing-group is acceptible, it doesn't have to be that way.  And as you have discovered, it can be confusing.

As Austin mentioned, there are two ways to specify the timing constraint.  Below, I've rewritten them using a different name for the timing-group:

------------
Method 1 (recommended) -- Allows reuse of the timing spec w/ other signals:

TIMESPEC ts_clk_66mhz = PERIOD tnm_clk_66mhz 15000 ps
     INPUT_JITTER 1000 ps;
NET clk_66mhz TNM_NET = tnm_clk_66mhz;
NET another_clk_66mhz TNM_NET = tnm_clk_66mhz;

The TIMESPEC line says that all nets assigned to the tnm_clk_66mhz group should have the specified timing constraints.  The NET lines simply add the nets "clk_66mhz" and "another_clk_66mhz" to the tnm_clk_66mhz group, thus associating the actual timing constraint to those signals.

------------
Method 2 (not recommended) -- Specifies timespec for only one signal:

NET clk_66mhz PERIOD = 15000 ps HIGH 50%

This method simply specifies the timing spec directly for this one signal.  If you wanted other signals to share the same spec, you would have to retype the spec for each signal.

50%
50%
Max Maxfield
Max Maxfield
6/20/2012 11:25:36 AM
User Rank
Blogger
Re: Net CLK_66MHZ TNM_NET = CLK_66MHZ;
@Austin: "The problem is, if you stand still, the world just goes whizzing by."


Tell me about it!


50%
50%
Brian
Brian
6/19/2012 4:11:16 PM
User Rank
Guru
Re: Net CLK_66MHZ TNM_NET = CLK_66MHZ;
 

@Austin: Thanks for the update and additional research!

Re: "if you stand still, the world just goes whizzing by"

No kidding...  Words every engineer needs to live by...

 

50%
50%
ab6vu
ab6vu
6/19/2012 4:03:17 PM
User Rank
Guru
Re: Net CLK_66MHZ TNM_NET = CLK_66MHZ;
Brian,


Upon some research:

 

TIMESPEC PERIOD XCF Syntax


This is the primary method for specifying Period (PERIOD) XCF syntax. Xilinx®
recommends this version.
TIMESPEC "TSidentifier"=PERIOD "TNM_reference period" [units]
[{HIGH |LOW} [high_or_low_time [hi_lo_units]]] INPUT_JITTER value
[units];


NET PERIOD XCF Syntax
This is the secondary method for specifying Period (PERIOD) XCF syntax. Xilinx DOES NOT recommend this version.
NET "net_name" PERIOD=period [units]
[{HIGH|LOW}[high_or_low_time[hi_lo_units]]];

 

So, the syntax he mentions, is "depricated" (old way) and should not be used.


That said, we are now transistioning to all TCL formatted constraints in Vivado.  Good news is that there is a direct conversion possible, and TCL constraints are more universal (more designers use them for ASIC design, and they are commonly accepted by the independent vendor's tool-flows).

The problem is, if you stand still, the world just goes whizzing by.

 

50%
50%
Brian
Brian
6/19/2012 3:14:24 PM
User Rank
Guru
Net CLK_66MHZ TNM_NET = CLK_66MHZ;
 

Hi Duane,

Excellent blog as usual, thanks!

Re: "have I left any of your questions unanswered?"

Only one, please let us know when you decypher and summarize the meaning of "Net CLK_66MHZ TNM_NET = CLK_66MHZ;" in Austin's "Timing Constraints" blog :-)

 

50%
50%
Max Maxfield
Max Maxfield
6/19/2012 2:59:24 PM
User Rank
Blogger
Re: Timing Constraints
@Austin: Thanks for this Austin -- I think it will (a) teach Duane not to ask questions and (b) be very useful for everyone.

FYI Duane is away on vacation for a coupel of days; he may only have limited access to the Internet so we will have to be patient with regard to his responses.

50%
50%
Page 1 / 2   >   >>
More Blogs from Duane Benson
Now it's time to delve deeper into the state machine I'm using to control my I2C interface.
The three states associated with bi-directional "inout" pins can cause confusion for the unwary.
It's time to jump into unexplored territory -- the state machine that will control Duane Benson's I2C interface.
We're now ready for the I2C master to transmit a command set to a remote device.
Duane Benson has his SPI interface working. At some point, he'll want to rewrite the Verilog code, but first he wants to get the I2C interface up and running.
flash poll
follow us on twitter
follow Xilinx on twitter
like us on facebook
like Xilinx on facebook
All Programmable Planet     About Us     Contact Us     Help     Register     Twitter     Facebook     RSS