J
John_H
Guest
hmurray@suespammers.org (Hal Murray) wrote in message news:<vnv6iirmfn1jd2@corp.supernews.com>...
If I'm manually instantiating LUTs, the Synplify synthesizer has
nothing to base the INIT upon: no equations, no clue. If I manage to
convince the software to get into the LUTs that I need so I can go
into the EDIF netlist (or HDL Analyst) and find the INITs, I've
already achieved my goal of getting the design into teh desired LUTs.
If I do get the INITs from those sources, I must be absolutely sure I
get the port order correct or the logic is blown (or I need to do the
ol' Carnot shuffle).
I tried to instantiate a LUT the other day and I couldn't figure out
the "right" way to do the Verilog for Synplify since there are INIT
parameters for simulation and xc_props="INIT=xxxx" for synthesis as
far as I can tell. I had something that looked un-LUT-like in the HDL
Analyst technology viewer so I didn't pursue that furhter.
Code with LUTs and INITs is sincerely less supportable than code with
something as annoying as an AND3 primitive instantiation. Interesting
thing with the AND3 - there was no primitive in the virtex2.v file
included in the Synplify flow but a quick black_box definition in my
source and the synthesizer knew it was a 3-input AND. It implemented
in the Xilinx device just fine.
Oh - Vinh, if you're reading... I used an inference of the form
bytesPlus1[8:1]==bytesPlus1[7:0]
and got a note in Synplify saying it "detected a comparator ==" and
produced your two-levels of logic with the 4-input AND. If you do
things "just" the right way.... Oy.
Do you realize how patronizing your response was?
Please, quickly give the appropriate INIT for a LUT4 where the desired
output is
&(in[3:1]^~in[2:0])
Since you can count to 4, this should be simple.
Can you guarantee that other engineers looking at your code later will
understand what you're trying to do?
Sorry. I wasn't trying to be an asshole.
I thought you were into trying to partitioning logic into LUTs in some
sneaky way.
I assumed software is smart enough to compute an INIT string
from a logic equation. The old Xilinx tools could do that for
3000 series parts. Has that fallen through the cracks with the
newer software?
If I'm manually instantiating LUTs, the Synplify synthesizer has
nothing to base the INIT upon: no equations, no clue. If I manage to
convince the software to get into the LUTs that I need so I can go
into the EDIF netlist (or HDL Analyst) and find the INITs, I've
already achieved my goal of getting the design into teh desired LUTs.
If I do get the INITs from those sources, I must be absolutely sure I
get the port order correct or the logic is blown (or I need to do the
ol' Carnot shuffle).
I tried to instantiate a LUT the other day and I couldn't figure out
the "right" way to do the Verilog for Synplify since there are INIT
parameters for simulation and xc_props="INIT=xxxx" for synthesis as
far as I can tell. I had something that looked un-LUT-like in the HDL
Analyst technology viewer so I didn't pursue that furhter.
Code with LUTs and INITs is sincerely less supportable than code with
something as annoying as an AND3 primitive instantiation. Interesting
thing with the AND3 - there was no primitive in the virtex2.v file
included in the Synplify flow but a quick black_box definition in my
source and the synthesizer knew it was a 3-input AND. It implemented
in the Xilinx device just fine.
Oh - Vinh, if you're reading... I used an inference of the form
bytesPlus1[8:1]==bytesPlus1[7:0]
and got a note in Synplify saying it "detected a comparator ==" and
produced your two-levels of logic with the 4-input AND. If you do
things "just" the right way.... Oy.