Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

What is synthesis xc_props = "INIT= " ??

Status
Not open for further replies.

jay_ec_engg

Full Member level 3
Joined
Jun 19, 2004
Messages
155
Helped
1
Reputation
2
Reaction score
0
Trophy points
1,296
Location
India
Activity points
1,581
xc_props

What is the significance of synthesis xc_props = "INIT= " ?? statement ?

I am using LUT1 in my code,

LUT1 CP2_TX_LUT1_0_1 (.I0(cp2_tx[0]), .O(cp2_tx_buf[0]))/* synthesis xc_props = "INIT=2" */;
defparam CP2_TX_LUT1_0_1.INIT=2;

Is this synthesisable with SynplifyPro ???
The synthesis is giving error
"Illegal defparam. parameter INIT cannot be found in module LUT1. @E:"/h/jays/FPGA/FPGA_top.v":198:18:198:38"
 

synthesis xc_props

INIT attribute is used to generate LUT equation
here's a example from xilinx

Test case for using INIT attribute:
-- 4 input comparator with chip select example.
-- Given the signal DATA_IN (3 downto 0), the LUT equation is as follows:
~DATA_IN(3) * ~DATA_IN(2) * DATA_IN(1) * DATA_IN(0)

Library IEEE;
use IEEE.std_logic_1164.all;

library unisim;
use unisim.vcomponents.all;


entity muxtest is port (
DATA_IN : in std_logic_vector ( 3 downto 0 );
CS : in std_logic;
CLK : in std_logic;
DATA_OUT : out std_logic );
end muxtest;

architecture structural of muxtest is

component LUT4
generic (INIT : bit_vector (15 downto 0) := b"0000000000000000");
port (
I0 : in std_logic;
I1 : in std_logic;
I2 : in std_logic;
I3 : in std_logic;
O : out std_logic
);
end component;

component MUXF5
port (
I0 : in std_logic;
I1 : in std_logic;
S : in std_logic;
O : out std_logic
);
end component;

component GND
port(
G : out STD_ULOGIC );
end component;

signal LUT_OUT: std_logic;
signal MUX_OUT: std_logic;
signal GND_IN: std_logic;

begin

MYLUT1: LUT4
generic map (
INIT => b"0000_0000_0000_1000"
)
port map (
I0 => DATA_IN(0),
I1 => DATA_IN(1),
I2 => DATA_IN(2),
I3 => DATA_IN(3),
O => LUT_OUT
);

MYMUXF5: MUXF5 port map (
I0 => LUT_OUT,
I1 => GND_IN,
S => CS,
O => MUX_OUT
);

MYGND: GND port map ( G => GND_IN );

process ( CLK )
begin
if ( CLK = '1' and CLK'event ) then
DATA_OUT <= MUX_OUT;
end if;
end process;

end structural;
 

xilinx init =>

jay_ec_engg, your two lines work fine here in Synplify Pro 8.0.

Maybe your Synplify installation is having trouble finding the Xilinx libraries?
I tried deliberately misspelling LUT1, and then I got the same error message that you reported.

Do you really want to instantiate individual LUTs? That seems like a painful way to design.
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top