Using IP-XACT Metadata for a TLM modeling Flow

Post on 15-Dec-2014

194 views 5 download

Tags:

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

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