24.03.2013 Views

ModelSim SE User's Manual - Electrical and Computer Engineering

ModelSim SE User's Manual - Electrical and Computer Engineering

ModelSim SE User's Manual - Electrical and Computer Engineering

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

UM-200 7 - Mixed-language simulation<br />

VHDL <strong>and</strong> SystemC signal interaction <strong>and</strong> mappings<br />

<strong>ModelSim</strong> <strong>SE</strong> User’s <strong>Manual</strong><br />

SystemC has a more complex signal-level interconnect scheme than VHDL. Design units<br />

are interconnected via hierarchical <strong>and</strong> primitive channels. An sc_signal is one type of<br />

primitive channel. The following section discusses how various SystemC channel types<br />

map to VHDL types when connected to each other across the language boundary.<br />

Port type mapping<br />

The following port type mapping table lists all channels. Three types of primitive channels<br />

<strong>and</strong> one hierarchical channel are supported on the language boundary (SystemC modules<br />

connected to VHDL modules).<br />

Channels Ports VHDL mapping<br />

sc_signal sc_in<br />

sc_out<br />

sc_inout<br />

sc_signal_rv sc_in_rv<br />

sc_out_rv<br />

sc_inout_rv<br />

sc_signal_resolved sc_in_resolved<br />

sc_out_resolved<br />

sc_inout_resolved<br />

sc_clock sc_in_clk<br />

sc_out_clk<br />

sc_inout_clk<br />

Data type mapping<br />

SystemC’s sc_signal types are mapped to VHDL types as follows<br />

Depends on type. See table entitled<br />

"Data type mapping" (UM-200)<br />

below.<br />

std_logic_vector(width-1 downto 0)<br />

std_logic<br />

bit/std_logic/boolean<br />

sc_mutex N/A Not supported on language boundary<br />

sc_fifo sc_fifo_in<br />

sc_fifo_out<br />

Not supported on language boundary<br />

sc_semaphore N/A Not supported on language boundary<br />

sc_buffer N/A Not supported on language boundary<br />

user-defined user-defined Not supported on language boundary<br />

SystemC VHDL<br />

bool, sc_bit bit/std_logic/boolean<br />

sc_logic std_logic<br />

sc_bv bit_vector(width-1 downto 0)<br />

sc_lv std_logic_vector(width-1 downto 0)

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!