I'm trying to integrate a piece of IP that was delivered in NGO format into a verilog design. I've scoured the ISE and XST documentation and the Xilinx answers database and there is really not a complete description of this flow. I'm assuming the IP provider sythesized the block to EDIF (with Synplify I think), then used edif2ngd to convert the EDIF netlist to NGO. This block is being provided for free by a Japanese company as part of a convoluted foundry relationship and I have no recourse for help from them.
I can place and route the NGO file by itself, but I can't get XST to run with the NGO module instantiated in the verilog. I've tried the
// synthesis attribute box_type of IP_BLOCK is "black_box";
synth directive but XST seems to ignore it. If I try to add the NGO file to the ISE project the file gets added as a top-level module instead of down in the hierarchy where it belongs, and the instantiated block remains unkown to ISE. When I run XST it immediately gags because it can't find the block (despite the black_box directive). I've also tried inluding a verilog description of the port list for the block in the project, which ISE recognizes and then the instantiated block is no longer unkown, but when I run XST I get some bizarre errors.
Basically I'm flailing here. Any help appreciated.
Bob S.