Upload
design-and-reuse
View
202
Download
5
Tags:
Embed Size (px)
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).
Citation preview
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