Re: Prevent synthesis optimizations/simplifications in Xilinx-ISE
- From: giorgos.puiklis@xxxxxxxxx
- Date: Sun, 27 Jul 2008 22:50:20 -0700 (PDT)
On Jul 25, 10:13 pm, "blak...@xxxxxxxxx" <blak...@xxxxxxxxx> wrote:
On Jul 25, 8:23 am, Gabor <ga...@xxxxxxxxxxx> wrote:
On Jul 25, 6:12 am, giorgos.puik...@xxxxxxxxx wrote:
Hello,
I want to implement a VHDL design in a Spartan3 device. Some
components of the design use cascaded inverters to produce one-shots
(short pulses). Upon synthesis, Xilinx-ISE simplifies the cascaded
inverters (e.g. if 6 inverters are cascaded it simply removes them
all). This alters the functionality of the design.
How can I configure ISE so that it does not perform such
simplifications (preferably per block, but if this is not possible for
the whole design)?
Thank you in advance guys!
Regards,
George
Unfortunately simple logic elements like inverters and gates will
always be mapped into LUT's regardless of any KEEP attributes on
the intermediate nets. You can however create such delay elements
by instantiating primitives like LUT's with the appropriate INIT
attributes to generate the functions you want. Look at the
Libraries guide to see your options for LUT instantiation.
I should add that this sort of design practice is generally frowned
upon in FPGA's, especially since there is a very wide variance in
delay due to process and temperature, and a possibly even wider
variance from build to build due to routing if you don't hand
place your delay elements. Usually you can use synchronous
techniques to create pulses and with a sufficiently fast clock
rate you can often ignore the discrete timing effects of the
synchronous pulse generator.
Regards,
Gabor- Hide quoted text -
- Show quoted text -
I know exactly what you need
use the attribute KEEP to prevent the wires between the inverters from
getting optimized away
(* keep = "true" *) wire [length-1:0] connect;
Additionally you can use LUT instantion primitives for anot gates as
shown
generate
genvar k;
for (k=0; k<length-1; k=k+1)
begin : not
LUT1 #(
.INIT(2'b01) // Specify LUT Contents
) LUT1k (
.O(connect[k+1]), // LUT general output
.I0(connect[k]) // LUT input
);
end
endgenerate
ENJOY!
Thank you very much guys! Your help is really appreciated.
Regards,
George
.
- References:
- Prevent synthesis optimizations/simplifications in Xilinx-ISE
- From: giorgos . puiklis
- Re: Prevent synthesis optimizations/simplifications in Xilinx-ISE
- From: Gabor
- Re: Prevent synthesis optimizations/simplifications in Xilinx-ISE
- From: blakaxe@xxxxxxxxx
- Prevent synthesis optimizations/simplifications in Xilinx-ISE
- Prev by Date: Re: vhdl code for debouncing push button
- Next by Date: Re: Opencores DDR2 SDRAM controller with spartan3e starter board
- Previous by thread: Re: Prevent synthesis optimizations/simplifications in Xilinx-ISE
- Next by thread: floating point alignment issues with xilkernel
- Index(es):