Sign In

Don't have a Xilinx account yet?

  • Choose to receive important news and product information
  • Gain access to special content
  • Personalize your web experience on Xilinx.com

Create Account

Username

Password

Forgot your password?
XClose Panel
Xilinx Home
Reply
Newbie
jnurmine
Posts: 1
Registered: ‎04-20-2010
0

How to package own custom IP

What would be the best way to go about packaging my own design to a "black box" so others can drop it into their system but not be able to see and copy/alter the contents? I've tried to find documentation about it unsuccessully.

Xilinx Employee
tmcdowe
Posts: 165
Registered: ‎12-17-2007
0

Re: How to package own custom IP

This is not a documented or supported flow, but it can be easily done.  It just takes some understanding of how the ISE tools work under the hood.

 

During synthesis (XST), if there is any module that does not have corresponding HDL source code (or a schematic for schematic designs), XST will blackbox that module with the expectation that NGDBuild (translate) will find the body for that module in a netlist somewhere.

 

You can leverage this behavior to your benefit by synthesizing _just_ the module which you would obfuscate (by itself as a top-level module and make sure that you turn off automatic IO buffer insertion when synthesizing this module).  This will create an NGC netlist for this module.

 

Then, in your design, simply instantiate the module with no corresponding HDL/schematic backend and run through XST.  You should see a message from XST that it is blackboxing the module.

 

Then, in NGDBuild, simply use the -sd flag to tell NGDBuild where to find the NGC for the module.  NGDBuild will stitch it into the monolithic netlist and you're good to go.

 

This doesn't encrypt the netlist, but it certainly doesn't give access to the source.

-------------------------------------------
this space intentionally left blank
Regular Visitor
dguisinger
Posts: 20
Registered: ‎12-26-2009
0

Re: How to package own custom IP

As a follow up to this question, is there a way for someone other than Xilinx to distribute a blackbox core that is encrypted?

 

I've got a core I've been working on which I'd like to have demonstration cores and fully licensed cores, and am looking for the proper way to lock it down for both synthesis and simulation.

Newbie
tapgrant
Posts: 1
Registered: ‎03-13-2012
0

Re: How to package own custom IP

And I am interested in doing that

Newbie
cosanzeana
Posts: 1
Registered: ‎03-23-2012
0

Re: How to package own custom IP

I've tried to instantiate the module with no corresponding HDL backend but I get an error when I try to run through XST...

Click here to unlock Motorola
Xilinx Employee
howardp
Posts: 264
Registered: ‎07-22-2008
0

Re: How to package own custom IP

Verilog requires a module declaration for an instantiated ngc file.  Just create a wrapper HDL file for the NGC.

There is an old Article (http://www.xilinx.com/support/answers/11132.htm) on how to do this for Schematics.  You could use the information from the article to create a .v or .vhd for the NGC file.  Then just add the .v or .vhd to the project and ignore rest about the schematic instantiation.