Showing results for 
Show  only  | Search instead for 
Did you mean: 
Registered: ‎09-07-2007

Whats the proper way to use NGC netlists within an IP core

   I've created an OPB peripheral with several registers for reading/writing. I want to use these registers as inputs/outputs from a component that I've instantiated within the user_logic. I created this component in ISE and disabled "Add I/O Buffers" in the synthesis options. The result is an NGC implementation of this component. I then re-imported the OPB peripheral so that it includes this NGC netlist. This appears to work, that is to say the NGC file is loaded as a core in the appropriate places and no steps of the implementation process seem to fail. This overall design undergoes PAR successfully, however the OPB IP doesnt work correctly. I don't think the MAP and PAR steps use my NGC component. The final device usage of a base system is approximately 2000 slices and I know my component uses approximately another 2000 slices. However the final device usage of the system is only around 2500 slices. Any help with this would be greatly appreciated.

Message Edited by peterzal on 01-29-2008 05:21 PM
0 Kudos
2 Replies
Registered: ‎01-04-2008

I never used this procedure. However, here are some ideas:
1) do not use the NGC in the first step, but try to (functionaly) validate the correctness of you OPB IP.
(use "Create or Import peripherals")
Once you are sure on this add the next level of complexity which is to import as NGC.
You can also do a system level simulation (if you have an accepted HDL simulator, there are tutorials for this).
The system level simulation is a very powerfull procedure -- but will probably take you some time to master.
2) In ISE there is a tool called FPGA editor which will graphically display the P&R design.
Use it to actually see what is in your FPGA (top_level_system.ncd) -- it's easy to use.
3) OPB bus has to be conform with OPB's specification ... make sure this is the case.
0 Kudos
Registered: ‎02-07-2008

There is an example on the FPGA Developer website that should solve your problem. They create a peripheral with the Peripheral Wizard and from within the user logic they instantiate a multiplier core from an NGC netlist file.

Integrating a Blackbox into a Peripheral

I hope this helps.

Message Edited by jeffrey.johnson on 01-21-2009 05:58 AM
0 Kudos