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.

xilinx constraint declaration need help !

Status
Not open for further replies.

Matrix_YL

Advanced Member level 4
Full Member level 1
Joined
Aug 19, 2005
Messages
108
Helped
3
Reputation
6
Reaction score
1
Trophy points
1,298
Activity points
2,272
xilinx multiplier synthesis block vs lut

Hi all


I spend too much block multiplier on my design ,so I want to use some of them by lut .

I do my constraint according to xilinx cdg.pdf .
Specify as follows:
// synthesis attribute mult_style [of] {module_name|signal_name} [is]
{auto|block|lut|pipe_lut|pipe_block|CSD|KCM};

module multiplier(
//Output
result_1,result_2,
//Input
a,b,c,d
);

input[3:0] a;
input[3:0] b;
input[3:0] c;
input[3:0] d;
output[7:0] result_1;
output[7:0] result_2;

assign result_1= a*b; // synthesis attribute mult_style of {result_1} is {lut};

assign result_2= c*d; // synthesis attribute mult_style of {result_2} is {block};
endmodule
but the synthesized report generated by two block multiplier

=============================================================
* HDL Analysis *
=========================================================================
Analyzing top module <multiplier>.
Module <multiplier> is correct for synthesis.

"multiplier.v" line 36: Cannot find <{result_1}> in module <multiplier>, property <mult_style> with Value <{lut}> is ignored.
"multiplier.v" line 38: Cannot find <{result_2}> in module <multiplier>, property <mult_style> with Value <{block}> is ignored.
Set property "resynthesize = true" for unit <multiplier>.
what's wrong with my HDL ? or Mybe I misunderstand the usage of xilinx constraint declaration .can you help me solve this problem ?
thank you very much !
 

tkbits

Full Member level 5
Full Member level 5
Joined
Dec 4, 2004
Messages
242
Helped
39
Reputation
78
Reaction score
2
Trophy points
1,298
Activity points
2,209
set as top module xilinx

Remove the {} ?
So it looks like

Code:
// synthesis attribute mult_style of result_1 is lut;
{} is typically used to group choices together in a syntax description.
 

    Matrix_YL

    Points: 2
    Helpful Answer Positive Rating

Matrix_YL

Advanced Member level 4
Full Member level 1
Joined
Aug 19, 2005
Messages
108
Helped
3
Reputation
6
Reaction score
1
Trophy points
1,298
Activity points
2,272
google groups mult_style

Hi tkbits
I do it according to what you indicated,but fail to implement!
[/
HDL Analysis *
=========================================================================
Analyzing top module <multiplier>.
Module <multiplier> is correct for synthesis.

"multiplier.v" line 36: Cannot find <{result_1}> in module <multiplier>, property <mult_style> with Value <lut> is ignored.
"multiplier.v" line 38: Cannot find <{result_2}> in module <multiplier>, property <mult_style> with Value <block> is ignored.
Set property "resynthesize = true" for unit <multiplier>.
 

echo47

Advanced Member level 6
Advanced Member level 6
Joined
Apr 7, 2002
Messages
3,933
Helped
638
Reputation
1,274
Reaction score
90
Trophy points
1,328
Location
USA
Activity points
33,176
cdg.pdf xilinx

tkbits instructions are correct. You didn't remove all the {}.
Here is a working module:

Code:
module multiplier (result_1, result_2, a, b, c, d);
  input  [3:0] a, b, c, d;
  output [7:0] result_1, result_2;

  assign result_1 = a * b; // synthesis attribute mult_style of result_1 is lut;
  assign result_2 = c * d; // synthesis attribute mult_style of result_2 is block;
endmodule
 

    Matrix_YL

    Points: 2
    Helpful Answer Positive Rating

Matrix_YL

Advanced Member level 4
Full Member level 1
Joined
Aug 19, 2005
Messages
108
Helped
3
Reputation
6
Reaction score
1
Trophy points
1,298
Activity points
2,272
assign synthesis to lut

Hi tkbits
I do it according to what you indicated,but fail to implement!
It's my mistake.


thanks for your help
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Top