Using IP-XACT Metadata for a TLM modeling Flow

17
Using IP-XACT Metadata for a TLM Modeling Flow Jack Donovan, Duolog Technologies Edwin Dankert, Duolog Technologies

description

By Jack Donovan, Edwin Dankert (Duolog Technologies) Many design organizations are evolving their methodologies to a Metadata driven methodology and making huge gains in designer productivity because of increased and coherent communications among all the SoC design disciplines (RTL design, Functional Verification, Software Development, TLM modeling, ....). A methodology where the design data common to the different flows of the SoC design process are stored centrally, many times using IP-XACT. A Metadata driven methodology allows automatic generation of net lists and design IP skeletons from a central database that contains registers, ports, interfaces, and other common design data. IP-XACT is commonly used to store the Metadata but does not directly store the TLM specific information without the use of non-standard vendor extensions. The proposed 2014 release of IP-XACT will resolve the current issues with TLM. This paper proposes a TLM solution based on the current version of IP-XACT (IEEE-1685 2009) and explains how TLM is proposed to be handled for the upcoming update to the IP-XACT standard (IEEE-1685 2014).

Transcript of Using IP-XACT Metadata for a TLM modeling Flow

Page 1: Using IP-XACT Metadata for a TLM modeling Flow

Using IP-XACT Metadata for a TLM Modeling Flow

Jack Donovan, Duolog Technologies

Edwin Dankert, Duolog Technologies

Page 2: Using IP-XACT Metadata for a TLM modeling Flow

Outline

• Executable Live Specification• Socrates and the SystemC Application• IP-XACT Background• SystemC Background• Solution

Page 3: Using IP-XACT Metadata for a TLM modeling Flow

Executable Live Specification

Centralized Metadata for:• Automatic Design and Verification View Generation• Complete Design Status Cockpit• Workflows

Page 4: Using IP-XACT Metadata for a TLM modeling Flow

Socrates

IPApplication

Modular Platform for Creation and Deployment of IP Applications

SocratesIP

ApplicationIPApplicationIPApplicationIPApplicationSystemCApplication

• Modular • Standardized• Consistent• Efficient• High-QualityApplications

Page 5: Using IP-XACT Metadata for a TLM modeling Flow

IP-XACT Background (1 of 2)

Page 6: Using IP-XACT Metadata for a TLM modeling Flow

IP-XACT Background (2 of 2)

Page 7: Using IP-XACT Metadata for a TLM modeling Flow

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;

Page 8: Using IP-XACT Metadata for a TLM modeling Flow

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;

Page 9: Using IP-XACT Metadata for a TLM modeling Flow

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;

Page 10: Using IP-XACT Metadata for a TLM modeling Flow

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>

Page 11: Using IP-XACT Metadata for a TLM modeling Flow

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;

Page 12: Using IP-XACT Metadata for a TLM modeling Flow

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>

Page 13: Using IP-XACT Metadata for a TLM modeling Flow

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;

Page 14: Using IP-XACT Metadata for a TLM modeling Flow

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>

Page 15: Using IP-XACT Metadata for a TLM modeling Flow

Socrates

IPApplication

Modular Platform for Creation and Deployment of IP Applications

SocratesIP

ApplicationIPApplicationIPApplicationIPApplicationSystemCApplication

• Modular • Standardized• Consistent• Efficient• High-QualityApplications

Page 16: Using IP-XACT Metadata for a TLM modeling Flow

SystemC Generators

IP-XACTMetadata

Leaf CellGenerator

InterconnectGenerator

Leaf.hLeaf.cpp

top.h

Page 17: Using IP-XACT Metadata for a TLM modeling Flow

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