Sie sind auf Seite 1von 13

How to create adaptors for modeling abstraction levels

Umesh Sisodia, usisodia@circuitsutra.com Presenting on behalf of: Ashwani Singh, ashwani@circuitsutra.com

Agenda
SoC Modeling

SoC Modeling Abstraction Levels


Requirement of adaptors

Role/Functionality of Adaptors
Adaptor Modeling Challenges Queries

SoC Modeling
SoC Modeling Behavior Communication Timing

Abstraction required to speedup things

-Timing granularity
-Data granularity

SoC Modeling Abstraction


OCP-IP Terminology TL4 TL3
Speed

Other Terminology PV (Programmers view) AV (Architects view) No timing TLM2.0 B.P (LT) Interburst or no timing TLM2.0 B.P. (AT) Intra burst or no timing Extends TLM 2.0 (AT)

Timing and signals details

TL2

TL1

VV (Verification view)

Fully cycle accurate Extends TLM2.0 (AT) Supports clock cycle synchronization and combinatorial paths
Signal level ( not transaction level)

TL0

RTL

Requirement of adaptors
1. Mixed-Abstraction-Layered System
While creating the VP at higher abstraction level, sometime it is Master (TL4) necessary to take the pin level RTL model of a specific IP block. These RTL models might be automatically generated by some tool (like Carbon), thus saving the model creation time.
Bus (TL4) While creating the VP for a specific use case, to speed up things, it may be a good idea to re-use the existing models at other abstraction levels. This will enable to get the platform working quickly, and then models can be replaced one by one with the correctIP1 Adaptor Slave abstraction. Adaptor Adaptor (TL4) (TL4-TL1) (TL4-TL0)

(TL4-TL0)

Adaptors and transactors will also be required for HW/SW coverification while using the virtual platform at higher Transactor abstraction (systemC-Verilog) level along with the advanced RTL verification environment. Slave IP2 Slave IP3
(TL1) TL0 Verilog RTL IP

Requirement of adaptors
2. Encourages the reusability of code:The separation
of computation and communication, allows the reusability of code across abstraction levels. The TL4 model can be used in combination with proper adaptor to work at different abstraction levels. Wrapper
Core (functional model)
Communication TL4 socket

TL4 Model Used for eSW development TL1 TL2 TL3 Model Cycle accurate TLM model Used for Architectural exploration TL0 Model Used for Architectural analysis Performance exploration Cycle accurate pin level model Used for Performance analysis HW/SW coverification HW/SW coverification

TL4/TL0 TL4/TL1 TL4/TL2 TL4/TL3 Adaptor

Kind of Adaptors
DownStream Adaptors
Master Slave

UpStream Adaptors
Master Slave

TL4
TL3 TL2 TL1

TL3
TL2 TL1 TL0

TL3
TL2 TL1 TL0

TL4
TL3 TL2 TL1

Adaptors role: -Insert the extra timing points( BP/extended phases) - Add more payload data members (using the extensions)

Adaptors role: - Abstract away the timing points (which are phases in TLM2) - Abstract away the data members( normal payload/extended) which are not necessary.

Adaptor Modeling Challenges


Handling Timing abstraction
- addition/deletion of timing points ( phases)
TL2 Master TL2 Master Beg_Req, srmd=1, bursts=2 Begin_Req, req_wc=2 Beg_Data Beg_Data Adaptor Adaptor Begin_Req TL1 Slave TL3 Slave

End_Req Beg_Req, bursts=2 Begin_Req


Beg_Resp End_Req End_Resp

Beg_Resp End_Req End_Resp

Adaptor Modeling Challenges


Handling payload Extensions
Adaptors adds/deletes data extensions into the payload or validates/invalidates payload members depending upon the configuration of master or slave sockets. TL1-TL3 adaptor

TL1 master
CFG1: It understands signals: A, B, C,E

TL3 slave

CFG2: It understands signals: A,E

Adaptor Modeling Challenges


Handling order of transactions
b_trans1,READ T1
Begin_REQ

P1

End_REQ Begin_RESP End_RESP Begin_REQ

TL4 master
T2

TL4-TL3 adaptor
P2

TL3 slave

End_REQ

b_trans2,WRITE

Both the blocking transport calls will wait until the TLM_COMPLETED for respective nb_trasport, adaptor will unblock the appropriate blocking call.TLM2 ordering rules must be respected.

Adaptor Modeling Challenges


Handling b/nb and nb/b conversion
TL3 master1

P1 P2 P3

TL3 master2
TL3 master3

TL4 slave

TL3-TL4

The adapter should be able to handle concurrent nonblocking transport calls from multiple initiators. It should be able to create threads for respective blocking transport calls.

Adaptor Modeling Challenges


Handle Out-of-order/outstanding txns
TL2 master
Tran1, Begin_Req Tran1, Begin_Data1 Tran2, Begin_Req Tran2, Begin_Data1 Tran2, Begin_Data2 Tran2,Begin_Resp Tran1, Begin_Data2 b_transport(Tran1) b_transport(Tran2)

Adaptor

TL4 slave

Tran1, Begin_Resp

SoC Modelling Services (SystemC, TLM2.0) info@circuitsutra.com

THANKS Questions??

Das könnte Ihnen auch gefallen