ERROR:HDLCompilers:200 - ../../../src/iq_gen.v line 35 Target of defparam 'lut_vdd.init' does not exist

Hi, group:

What does this error mean? How may I fix it? I am using a Virtex-2 chip. And i am mimicing the local constant tricks the XAPP290 was doing, but somehow it doesn't work.

ERROR:HDLCompilers:200 - ../../../src/iq_gen.v line 35 Target of defparam 'lut_vdd.init' does not exist ERROR:HDLCompilers:200 - ../../../src/iq_gen.v line 37 Target of defparam 'lut_gnd.init' does not exist

Best Regards, Kelvin

In file ../../../src/iq_gen.v wire vcc_iq, gnd_iq;

LUT1 lut_vdd( .O( gnd_iq ), .I0( vcc_iq ) ); defparam lut_vdd.init = 2'b00; LUT1 lut_gnd( .O( vcc_iq ), .I0( gnd_iq ) ); defparam lut_gnd.init = 2'b11;

Reply to
kelvin8157
Loading thread data ...

Thanks for any response...I fixed this error with "// synthesis attribute INIT of lut_gnd is 00" to replace defparameter.

However, I don't understand why this INIT used a "8000"? How do I derive this 8000?

Best Regards, Kelvin

Solution 1:

For general information on how LUTs are initialized, please see the information regarding LUTs in the Libraries Guide at:

formatting link

Verilog Syntax:

module top (O, I0, I1, I2, I3); input I0, I1, I2, I3; output O;

LUT4 U1 (.O(O), .I0(I0), .I1(I1), .I2(I2), .I3(I3)); // synthesis attribute INIT of U1 is "8000" endmodule

And

Reply to
kelvin8157

The LUT is a 16 bit memory. The "8000" is a 16 bit constant.

The 8000 is the initialization value for the 16 bit memory,

The MSB (the bit that makes it 8000 not 0000) of the memory is addressed by I0, I1, I2, I3 having the value 1,1,1,1

I.E. this constant implements a 4 input AND gate.

The value FFFE implements a 4 input OR gate

There are 65536 possible init values, many are interesting.

formatting link

=================== Philip Freidin snipped-for-privacy@fliptronics.com Host for

formatting link

Reply to
Philip Freidin

Thank you Freidin!

By the way, what is the name of the PDF document from Xilinx which explains how to use these Xilins-specific components, e.g. DCM, LUT, DLL, etc?

I only know the simulation source codes from ***/src/unisims & src/simprims can provide some limited information.

BesT Regards, Kelvin

Reply to
kelvin8157

You can call me Philip.

All the primitives are documented in the Libraries Guide. Get it from:

formatting link

You should also read the data sheet for the product you are using as it will give a application view of the function, whereas the the Libraries Guide is mor of a usage view. You should also look at the application notes section for in-depth info.

formatting link

The simulation models often can give you info that neither the data sheet or libraries guide give you, BUT, the simulation models do not tell you how the function is actually implemented. Sometimes the simulation models are incorrect (not the basic stuff, but the really complex functions).

Enjoy, Philip

=================== Philip Freidin snipped-for-privacy@fliptronics.com Host for

formatting link

Reply to
Philip Freidin

Thank you very much Philip. I am reading the Libraries Guide now. I understand that the simulation model is not meant to synthesize. The Libraries Guide is the single biggest file in the documentation, so I missed it when I download the files.

Best Regards, Kelvin

formatting link
ion+Notes

src/simprims

sheet

how

Reply to
kelvin8157

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.