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 <= TXRX_IO; // input
This is a very simple and elegant Verilog code that infers a tristate
buffer. Surely I should not have to change my design to use the 3 extra
ports instead of just the one inout.
Also, in my *.mhs file I clearly stated that it should be an external port:
# Global Ports
PORT TXRX_IO = txrx, DIR = IO # txrx connects to the peripheral's
# TXRX_IO port
If you have any clues about how this can be solved, I'll appreciate if
you could post them in here. Many thanks.
TonyF
XST error message:
------------------------------------------------
Running XST synthesis ...
INFO:MDT - The following instances are synthesized with XST. The MPD
option IMP_NETLIST=TRUE indicates that a NGC file is to be produced
using XST synthesis. IMP_NETLIST=FALSE (default) instances are not
synthesized. A batch file, synthesis.sh, has been created that allows
you to synthesize those instances in your specified synthesis tool of
choice.
opb_txrx_0_wrapper (opb_txrx_0) -
C:\EDK_examples\v2pro_eval_mgt2\system.mhs:397 - Running XST synthesis
ERROR:HDLCompilers:91 - ../hdl/opb_txrx_0_wrapper.v line 64 Module
'opb_txrx' does not have a port named 'TXRX_IO_I'
ERROR:HDLCompilers:91 - ../hdl/opb_txrx_0_wrapper.v line 65 Module
'opb_txrx' does not have a port named 'TXRX_IO_O'
ERROR:HDLCompilers:91 - ../hdl/opb_txrx_0_wrapper.v line 66 Module
'opb_txrx' does not have a port named 'TXRX_IO_T'
ERROR:MDT - HDL synthesis failed!
|
|
0
|
|
|
|
Reply
|
TonyF
|
2/18/2005 1:14:05 PM |
|
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 (InOut) Signals"
TonyF wrote:
> 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 <= TXRX_IO; // input
>
> This is a very simple and elegant Verilog code that infers a tristate
> buffer. Surely I should not have to change my design to use the 3 extra
> ports instead of just the one inout.
>
> Also, in my *.mhs file I clearly stated that it should be an external port:
> # Global Ports
> PORT TXRX_IO = txrx, DIR = IO # txrx connects to the
> peripheral's # TXRX_IO port
>
>
> If you have any clues about how this can be solved, I'll appreciate if
> you could post them in here. Many thanks.
>
> TonyF
>
>
>
> XST error message:
> ------------------------------------------------
> Running XST synthesis ...
> INFO:MDT - The following instances are synthesized with XST. The MPD
> option IMP_NETLIST=TRUE indicates that a NGC file is to be produced
> using XST synthesis. IMP_NETLIST=FALSE (default) instances are not
> synthesized. A batch file, synthesis.sh, has been created that allows
> you to synthesize those instances in your specified synthesis tool of
> choice.
>
> opb_txrx_0_wrapper (opb_txrx_0) -
> C:\EDK_examples\v2pro_eval_mgt2\system.mhs:397 - Running XST synthesis
> ERROR:HDLCompilers:91 - ../hdl/opb_txrx_0_wrapper.v line 64 Module
> 'opb_txrx' does not have a port named 'TXRX_IO_I'
> ERROR:HDLCompilers:91 - ../hdl/opb_txrx_0_wrapper.v line 65 Module
> 'opb_txrx' does not have a port named 'TXRX_IO_O'
> ERROR:HDLCompilers:91 - ../hdl/opb_txrx_0_wrapper.v line 66 Module
> 'opb_txrx' does not have a port named 'TXRX_IO_T'
> ERROR:MDT - HDL synthesis failed!
>
>
>
--
/ 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
|
|
0
|
|
|
|
Reply
|
Paulo
|
2/26/2005 12:19:30 AM
|
|
|
1 Replies
449 Views
(page loaded in 1.73 seconds)
Similiar Articles: EDK, XST & inouts - comp.arch.fpgaI 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, wh... what is ngc file - comp.arch.fpgaEDK, XST & inouts - comp.arch.fpga The MPD > option IMP_NETLIST=TRUE indicates that a NGC file is to be produced > using XST synthesis. IMP_NETLIST=FALSE (default ... Critcal path in XILINX ISE (XST) - comp.arch.fpgaIn Synplify, when I ... EDK, XST & inouts - comp.arch.fpga XST (Xilinx Synthesis ... Paulo Dutra (paulo.dutra@xilinx.com) ... false paths ... XST duplicate register option does not work - comp.arch.fpga ...EDK, XST & inouts - comp.arch.fpga XST duplicate register option does not work - comp.arch.fpga ... XST is clueless. It seems to not even care that it is failing timespec ... Synthesize: Error - comp.arch.fpgaEDK, XST & inouts - comp.arch.fpga In EDK, when generating the netlist, the HDL code is synthesized using XST (Xilinx ... logic, it expects my sub-module to have 1 input ... xilinx unused I/O state - comp.arch.fpgaEDK, XST & inouts - comp.arch.fpga In EDK, when generating the netlist, the HDL code is synthesized using XST (Xilinx ... the following syntax in the mpd file: PORT TXRX ... XST optimization - comp.arch.fpgaEDK, XST & inouts - comp.arch.fpga Synplify synthesis error - comp.arch.fpga XST optimization - comp.arch.fpga Preserving Hierarchy During Synthesis (Synplify and XST ... Xilinx IO drive level constrain - comp.arch.fpgaEDK, XST & inouts - comp.arch.fpga... go/come all the way up to/from the top level but ... opb_txrx' does not have a port named 'TXRX_IO ... hotline@xilinx.com / / 2100 ... Problem with - comp.soft-sys.matlab... lang.java.help ... problem with running synth example file - comp.lang.java.help ... problem with running synth example file - comp.lang.java.help ... EDK, XST & inouts ... EDK, XST & inouts - comp.arch.fpga | Computer GroupI 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, wh... Edk Example - Stat My Web - Website Analysis and ToolsListing of examples that describe how to build programmable systems using Embedded Development Kit. 7/26/2012 12:30:15 PM
|