EDK, XST & inouts

I have designed a slave OPB peripheral, simulated with VCS to check for the correct functionality and imported it into EDK. All was fine.

In EDK, when generating the netlist, the HDL code is synthesized using XST (Xilinx Synthesis Tool), so that the netlist can be generated.

The problem I'm having is that there is an "inout" port in my user logic that should go/come all the way up to/from the top level but for some reason, when XST generates an HDL wrapper to my user logic, it expects my sub-module to have 1 input and 2 output ports (see the error below) instead of just the one inout port, as if I had to use directly the input/outputs of an IOBUF instead of just one inout, e.g.:

// this is just an example: IOBUF txrx ( .I ( TXRX_IO_I ), // input .IO ( TXRX_IO ), // inout .O ( TXRX_IO_O ), // output .T ( TXRX_IO_T ) // ouput enable );

In my code I have something like this:

// port declaration inout TXRX_IO;

assign TXRX_IO = TxEn? 1'bz:0; // output, pull up assumed

if (CanRead) Read_reg

Reply to
TonyF
Loading thread data ...

There's details on the use INOUT ports through EDK.

Using the following syntax in the mpd file: PORT TXRX_IO = "", DIR = INOUT, THREE_STATE = FALSE, IOB_STATE = BUF

This tells platgen not to expand the _I/_O/_T tri-ports.

Read psf_rm.pdf (6.3i) for details. "Microprocessor Peripheral Definition"->"Design Considerations"->

"Tri-state (> I have designed a slave OPB peripheral, simulated with VCS to check for

--
/ 7\'7 Paulo Dutra (paulo.dutra@xilinx.com)
\ \ `  Xilinx                              hotline@xilinx.com
/ /    2100 Logic Drive                    http://www.xilinx.com
\_\/.\ San Jose, California 95124-3450 USA
Reply to
Paulo Dutra

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.