Post on 15-Dec-2014
description
transcript
Using IP-XACT Metadata for a TLM Modeling Flow
Jack Donovan, Duolog Technologies
Edwin Dankert, Duolog Technologies
Outline
• Executable Live Specification• Socrates and the SystemC Application• IP-XACT Background• SystemC Background• Solution
Executable Live Specification
Centralized Metadata for:• Automatic Design and Verification View Generation• Complete Design Status Cockpit• Workflows
Socrates
IPApplication
Modular Platform for Creation and Deployment of IP Applications
SocratesIP
ApplicationIPApplicationIPApplicationIPApplicationSystemCApplication
• Modular • Standardized• Consistent• Efficient• High-QualityApplications
IP-XACT Background (1 of 2)
IP-XACT Background (2 of 2)
SystemC Background - ports
sc_port<my_if<my_dtype<param> > , MAX_BIND , CONN_POLICY > p_nm;
sc_export<my_if<my_dtype<param> > > xp_nm;
EXAMPLES:sc_port< sc_signal_in_if<sc_lv<8> > > p_signal8;
sc_port< sc_fifo_in_if<sc_uint<16> >, 1, SC_ALL_BOUND > p_fifo16;
sc_export<sc_signal_in_if<sc_lv<8> > > xp_signal8;
sc_export<trans_if<trans > > xp_trans;
SystemC Background - TLM sockets
tlm_initiator_socket< BUSWIDTH , PROTO_TYPE , MAX_BIND , CONN_POLICY> init_sock_nm;
tlm_target_socket < BUSWIDTH , PROTO_TYPE , MAX_BIND , CONN_POLICY> target_sock_nm;
EXAMPLES:tlm_initiator_socket< > example_init_socket;
tlm_target_socket< 64, , 1, SC_ALL_BOUND> init_sock;
IP-XACT Solution Examples
sc_port<my_if , max_bind , > my_port_name;
sc_port<sc_signal_in_if<sc_fixed<2, 3, 4, 5, 6> > > PortName2;
tlm_target_socket< 16 > PortName2;
IP-XACT Solution – sc_port (1 of 3)
<port> <name>my_port_name</name> <transactional> <transTypeDef> <typeName>sc_port</typeName> <typeDefinition >sc_port.h</typeDefinition> </transTypeDef> <service> <initiative>provides</initiative> <serviceTypeDefs> <serviceTypeDef> <typeName>my_if</typeName> </serviceTypeDef> </serviceTypeDefs> </service> <maxConnections >max_bind</maxConnections> </transactional></port>
IP-XACT Solution Examples
sc_port<my_if , max_bind , > my_port_name;
sc_port<sc_signal_in_if<sc_fixed<2, 3, 4, 5, 6> > > PortName2;
tlm_target_socket< 16 > PortName2;
IP-XACT Solution – sc_port (2 of 3)
<port> <name>PortName2</name> <transactional> ... <service> <initiative>provides</initiative> <serviceTypeDefs> <serviceTypeDef> <typeName>sc_signal_in_if</typeName> <parameters> <parameter> <name>sc_fixed</name> <value/> <!-- empty for ves --> <vendorExtensions> <parameters> <parameter> <name>W</name> <value>2</value> ... <parameters/> <parameter> </parameters> </vendorExtensions> </parameter> </parameters> </serviceTypeDef> </serviceTypeDefs> </service> </transactional</port>
<port> <name>PortName2</name> <transactional> <transTypeDef> <typeName>sc_port</typeName> <typeDefinition >sc_port.h</typeDefinition> </transTypeDef> <service> <initiative>provides</initiative> <serviceTypeDefs> <serviceTypeDef> <typeName >sc_signal_in_if</typeName> <parameters> <parameter> <name>sc_fixed</name> <value>W, I, Q, O, N ???</value> </parameter> </parameters> </serviceTypeDef> </serviceTypeDefs> </service> </transactional></port>
IP-XACT Solution Examples
sc_port<my_if , max_bind , > my_port_name;
sc_port<sc_signal_in_if<sc_fixed<2, 3, 4, 5, 6> > > PortName2;
tlm_target_socket< 16 > PortName2;
IP-XACT Solution – TLM socket (3 of 3)<port> <name>PortName2</name> <transactional> ...
<service> <initiative>provides</initiative> <serviceTypeDefs> <serviceTypeDef> ...
</serviceTypeDef> </serviceTypeDefs> <vendorExtensions> <socketType>export</socketType> <width>16</width> <protocol> <type>tlm</type> <payload> <type>generic</type> <extension mandatory="false" >generic</extension> </payload> </protocol> </vendorExtensions> </service> </transactional></port>
Socrates
IPApplication
Modular Platform for Creation and Deployment of IP Applications
SocratesIP
ApplicationIPApplicationIPApplicationIPApplicationSystemCApplication
• Modular • Standardized• Consistent• Efficient• High-QualityApplications
SystemC Generators
IP-XACTMetadata
Leaf CellGenerator
InterconnectGenerator
Leaf.hLeaf.cpp
top.h
Summary
• IP-XACT 1685 2009 can easily support interconnect and leaf cell generation for- Simple port and socket data types
- IP-XACT intended for RTL
- Port data types only templated by width
- tlm sockets with default template types
- Additional templated features can be implemented via IP-XACT vendor extensions
- Need to modify a few of the interconnect rules