P
Paul Urbanus
Guest
I have inherited a design with a component written in VHDL. This
component has some ports which are constrained integers, and one port is
a user defined type. This component is instantiated in verilog module.
When I try and run the verilog module, ModelSim (ver 6.1f) complains as
follows:
# ** Fatal: (vsim-3362) The type of VHDL port 'regfilecontrol' is
invalid for Verilog connection (15th connection).
Here is the offending VHDL port definition
regFileControl : out tRegFile(sizeOfRegFile+startOfRegFile-1
downto startOfRegFile);
Here's the corresponding actual port parameter in the verilog code where
the offending component is instantiated.
reg [(kMemMapSize*8)-1:0] ctrlReg;
These ports on the VHDL components also generated the same error.
readDelay : in integer range 0 to 7; -- specifies how
long to wait before returning data
secondaryDelay : in integer range 0 to 7; -- specifies
how long to wait before reading data from the secondary PLD
I fixed the above problem by changing the port type to
std_logic_vector(2 downto 0)
It appears to me that ModelSim will only allow a limited subset of
possible VHDL port types to be mapped to an upper level verilog module -
namely, std_logic or std_logic vector
Any suggestion on how I can circumvent this without massively changing
the existing VHDL code, which is not an option. The VHDL module in
question is actually a configuration interface to a proprietary bus
interface. I am replacing it with some stub code with literal register
values specified in my code, as that is sufficient for the functionality
I am developing. My goal was to replace their fully functional module
with my stub module, while maintaining the same port interface
structure. Complicating this is the presence of a package file which
contains the port prototypes for many of the modules - not just the
problem module.
Any ideas or comments from this verilog noob?
TIA - Urb
keeping all of tehI am actually replacing the customer's VHDL module
component has some ports which are constrained integers, and one port is
a user defined type. This component is instantiated in verilog module.
When I try and run the verilog module, ModelSim (ver 6.1f) complains as
follows:
# ** Fatal: (vsim-3362) The type of VHDL port 'regfilecontrol' is
invalid for Verilog connection (15th connection).
Here is the offending VHDL port definition
regFileControl : out tRegFile(sizeOfRegFile+startOfRegFile-1
downto startOfRegFile);
Here's the corresponding actual port parameter in the verilog code where
the offending component is instantiated.
reg [(kMemMapSize*8)-1:0] ctrlReg;
These ports on the VHDL components also generated the same error.
readDelay : in integer range 0 to 7; -- specifies how
long to wait before returning data
secondaryDelay : in integer range 0 to 7; -- specifies
how long to wait before reading data from the secondary PLD
I fixed the above problem by changing the port type to
std_logic_vector(2 downto 0)
It appears to me that ModelSim will only allow a limited subset of
possible VHDL port types to be mapped to an upper level verilog module -
namely, std_logic or std_logic vector
Any suggestion on how I can circumvent this without massively changing
the existing VHDL code, which is not an option. The VHDL module in
question is actually a configuration interface to a proprietary bus
interface. I am replacing it with some stub code with literal register
values specified in my code, as that is sufficient for the functionality
I am developing. My goal was to replace their fully functional module
with my stub module, while maintaining the same port interface
structure. Complicating this is the presence of a package file which
contains the port prototypes for many of the modules - not just the
problem module.
Any ideas or comments from this verilog noob?
TIA - Urb
keeping all of tehI am actually replacing the customer's VHDL module