( ESNUG 274 Item 1 ) --------------------------------------------- [12/10/97]
From: [ Keeping My Synopsys Sales Person In The Dark ]
Subject: How To Use Latches Without Buying Pricey Copies Of DC-Expert
John,
I am currently working with XXXXXXXXXX. He suggested that I post this
suggetion to ESNUG, but anonymously, to stay on good terms with our
Synopsys sales person (they probably don't look favorably on tips that
allow users to avoid having to buy licenses).
In some cases, a designer is forced to use latches (in our case, to
interface to our vendors RAM macros). Synopsys, as you know, requires
the use of DC-Expert to analyze the timing of latches. Its not worth
it to us to buy N DC-Expert licenses just to handle this one simple case.
Especially since the timing of the latch is our case is like that of a
master latch of a flip-flop and the timing of its D input can be
approximated by the setup of a D-flip-flop.
After the instantiation of the latch in your rtl code, you can embed
the following code:
// dc_shell script commands to disable timing on latches so that
// DC-Expert won't get invoked
// synopsys dc_script_begin
// set_disable_timing find (cell , LATCH_INSTANCE_NAME*)
// create_clock find(port, clk) -period CLK_PERIOD
// set_output_delay 0.5 -clock clk find (pin, LATCH_INSTANCE_NAME*/LATCH_CELL_DATA_INPUT_PORT)
// synopsys dc_script_end
The set_output_delay command checks that you'll meet the setup time
of the latch (roughly speaking ... of course you can fine tune this
value to more closely match that of the real thing if need be).
The create_clock command is needed here so that the set_output_delay
command will work. you can override the value of the clock period
later in a contraint script.
- [ Keeping My Synopsys Sales Person In The Dark ]
|
|