1 / 26

A New SCV Compliant Transaction Recording Monitor for the SystemC OCP Channel

A New SCV Compliant Transaction Recording Monitor for the SystemC OCP Channel. Tim Kogel, OCP-IP Pavilion, DATE 2005. Outline. Motivation Introduction SystemC based Transaction Level Modeling SCV Transaction Recording OCP Transaction Recording Monitor Examples Channel Monitor

jaser
Download Presentation

A New SCV Compliant Transaction Recording Monitor for the SystemC OCP Channel

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. A New SCV Compliant Transaction Recording Monitor for the SystemC OCP Channel Tim Kogel, OCP-IP Pavilion, DATE 2005

  2. Outline • Motivation • Introduction • SystemC based Transaction Level Modeling • SCV Transaction Recording • OCP Transaction Recording Monitor • Examples • Channel Monitor • System Monitor • Outlook • Architects View Methodology and Coding Guidelines

  3. MP-SoC Design Challenge Application Task 7 Task 2 Task 4 Task 6 Task 1 Task 3 Task 5 Task 8 Memory Spatial & TemporalMapping Multi-Processor System-on-Chip NoC IP IP C IP Mem IP

  4. OCP-IP System Level Design WG Charter • TLM modeling of OCP • work on standards proliferation • improve specification by using ESL • metrics/goals • up-to-date SystemC modeling library available • improved time-to-market through streamlined ESL • adoption of OCP ESL methodology and tooling

  5. Transaction Arbitration Memory Access ReqTrf B_REQ Grant Trf B_GRANT pins ReqRdTrf ADDR RD_REQ TLM module TLM module WR_REQ TryRd Trf DATA port i/f RDY Transaction Level Modeling RTL module RTL module TLM = no pins

  6. packets TL3 causality, determinism, total event ordering functional specification, explicit communication burst of words TL2 realistic delay annotations architecture exploration, temporal & spatial mapping word cycle accurate TL1 100% cycle accurate performance profiling Abstraction Levels Communication Accuracy Data Accuracy Timing Accuracy Addressed Design Problems domain specific MoC tokens causality, partial event ordering algorithm design TLM RTL bitvector cycle accurate synthesis

  7. void Master::response_thread(){ OCPTL2Response resp; while (true) { wait(ocp->ResponseStartEvent); ocp->getOCPResponse(resp); ocp->acceptResponse(10); } class OCPTL2Response{ SRespType SResp; int DataLength; int SThreadID; int prio; …} SystemC based TL2 OCP Channel OCP Channel OCP Master Request Burst Response Burst

  8. OCP Channel Performance Monitor • Motivation • Current OCP monitor targets verification • simulation slowed down by clocked monitor • Design Goals • Support Performance Analysis of TLM models • Simulation efficiency • SystemC conformable implementation • Object Oriented Modularity • SCV compliant • enable hierarchical transaction recording

  9. OCP Transaction Timing thread(){ ocp->sendRequest(req); wait(...) ocp->getResponse(resp); wait(...) ocp->acceptResponse(); } thread(){ ocp->getRequest(req); wait(...) ocp->acceptRequest(); wait(...) ocp->sendResponse(); } OCP Channel OCP Master OCP Slave Request t

  10. OCP Transaction Timing thread(){ ocp->sendRequest(req); wait(...) ocp->getResponse(resp); wait(...) ocp->acceptResponse(); } thread(){ ocp->getRequest(req); wait(...) ocp->acceptRequest(); wait(...) ocp->sendResponse(); } OCP Channel OCP Master OCP Slave Request Response t

  11. SCV based OCP Transaction Recording thread(){ ocp->sendRequest(req); wait(...) ocp->getResponse(resp); wait(...) ocp->acceptResponse(); } thread(){ ocp->getRequest(req); wait(...) ocp->sendResponse(); wait(...) ocp->acceptRequest(); } OCP Channel performance monitor OCP Master OCP Slave SCV transaction recording API transaction database SCV implementation

  12. Channel Monitor Features & Examples

  13. Channel Monitor - Basic Master_Port Slave_Port OCP I1 ms1 sl1

  14. Channel Monitor – OCP Bursts OCP I1 ms1 sl1

  15. Channel Monitor – OCP Threads OCP I1 ms1 sl1

  16. Channel Monitor – Threads and Bursts OCP I1 ms1 sl1

  17. System Monitor – Statistical Aggregation

  18. System Monitor

  19. req req resp resp Initiator 2 OI2 Bus OT2 Target 2 OI2 Bus OT2 Hierarchical Transaction Recording OCP I1 OCP T1 Initiator 1 Target 1 Bus OCP I2 OCP T2 Initiator 2 Target 2

  20. System Monitor Examples

  21. System Monitor - Bridge Slave Master OCP 1 OCP 2 ms1 br1 sl1

  22. System Monitor – Bus, 1 Master OCP 2 sl0 OCP 1 ms bus OCP 3 sl1

  23. System Monitor – Bus, 2 Masters OCP 3 OCP 1 ms0 sl0 bus OCP 4 OCP 2 ms1 sl1

  24. Outlook: OCP TLM for Architectural Modeling • methodology document • timing annotation, performance modeling • coding guidelines and examples • configurable traffic generator, slaves, multi-master bus, systems • demonstrate OSCI TLM standard compliance • implement TL2 channel on top of TLM standard • relation to other TLM use-models and coding styles • Programmers View • Verification View

  25. Backup

  26. ocp_tl2_channel:public sc_module ocp_tl2_channel_monitor: public sc_module ocp_tl2_channel_monitor_reg_if: virtual public sc_interface ocp_tl2_channel_monitor_if channel monitor retrieves instance of system monitor from registry ocp_tl2_system_monitor_registry sc_port<ocp_tl2_channel_monitor_reg_if> // only 1 instance in whole system ocp_tl2_channel_monitor_scv ocp_tl2_system_monitor_if // only 1 instance in whole system ocp_tl2_system_monitor_scv // only 1 instance in whole system C++ Software Architecture of OCP TL2 Monitor SystemC

More Related