cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
rmasand
Adventurer
Adventurer
832 Views
Registered: ‎07-21-2015

RTL module with IP multiplier

Hi,

 

I have a legacy RTL (verilog) file which I need to instantiate in a block design as RTL module. I cannot do this because this RTL file embeds six instances of a wizard generated multiplier as in below..

TstMult i_mult_11 (.CLK(clk),.A(var1),.B(var2),.P(prod));

 

How do I get around this? Should I package the RTL file as an IP? (can a packaged IP contain another IP?) Or is there some other technique?

 

Thanks a lot.

 

Ravi

0 Kudos
Reply
2 Replies
rmasand
Adventurer
Adventurer
825 Views
Registered: ‎07-21-2015

Forgot to mention - this is for a Kintex Ultrascale device.

 

Thanks.

0 Kudos
Reply
kenkovaa
Contributor
Contributor
793 Views
Registered: ‎09-14-2017

Just write the multipliers in RTL and get rid of the wizard generated blocks. Vivado synthesizer can infer multipliers and the code is also much easier to maintain and read.

 

If you really need to do the instantiation with unchanged code you have to package the whole thing instantiating the multipliers if you have Vivado 2016.4 or older. In 2017.1 or later there is support for XCI Inferencing which should support multipliers (see UG994 XCI Inferencing chapter) , though I did not do a test design to test this.

 

--Kim