Your SlideShare is downloading. ×
Transaction Level Debug with SystemVerilog VMM & Verdi
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Transaction Level Debug with SystemVerilog VMM & Verdi

3,655
views

Published on

Published in: Technology, Design

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
3,655
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
62
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Transaction Level Debug
    Demo with VMM & Verdi
    www.cvcblr.com/blog
    Rejuvenating VLSI Design-Verification!
  • 2. Case Study: Transaction Level Debug with VMM
    Transactions – higher level of abstraction
    May span across several tens/hundreds of clock cycles
    Detailed clock-by-clock info available via HDL Debug waveforms
    Higher level debug – across transactions
    Abstract information about various transactions
    Tools not mature yet (NOVAS has some interesting features)
    VMM Callback provides a means of doing this
    Idea is still maturing from CVC
    Prototype available on request
    CVC Copyright Protected Material, www.cvcblr.com
    2
    www.cvcblr.com/blog
  • 3. Transaction debug – what’s interesting?
    Not bit-by-bit, clock-by-clock info
    Just payload, Transaction IDENTIFIERS
    Start time, End time etc.
    February 22, 2007
    (3)
    www.cvcblr.com/blog
    class s2p_xactn extends vmm_data;
    rand logic [31:0] pkt_pld;
    rand logic err_pkt;
    rand bit [7:0] pkt_length;
    ...
    class s2p_dbg_xactn extends s2p_xactn;
    time start_t, end_t;
    // Conceptually:
    data_id, stream_id, scenario_id;
    pkt_pld, err_pkt, ipg;
    ...
  • 4. CVC Copyright Protected Material, www.cvcblr.com
    4
    www.cvcblr.com/blog
    Transaction debug through callback in VMM
    class s2p_cov_cbk extends extendsvmm_xactor_callbacks; virtual task before_sending (
    s2p_cmd_xactor xactor, s2p_xactn x0);
    endtask : before_sending
    virtual task after_sending (
    s2p_cmd_xactor xactor, s2p_xactn x0);
    endtask : after_sendingendclass : s2p_cov_cbk
    Update DBG_IF
    Update DBG_IF
  • 5. www.cvcblr.com/blog
    Transaction debug
    February 22, 2007
    (5)
  • 6. Transaction Debug - summary
    Powerful application of callbacks
    Minimal (or no) changes to the existing BFM (if VMM compliant)
    HUGE productivity benefit – moves debug abstraction level higher up
    More automation possible via scripts and new VMM macros (CVC’s roadmap)
    February 22, 2007
    (6)
    www.cvcblr.com/blog
  • 7. Verdi’s $fsdbLog feature
    SpringSoft (erstwhile Novas) recently added transaction debug capability to Verdi™
    Use $fsdbLog wherever a transaction can be seen/captured
    February 22, 2007
    (7)
    www.cvcblr.com/blog
    msg= $psprintf("# %0d %0d %0d pld: %0d, kind : %s start_time: %0t end_time: %0t“,
    stream_id, scenario_id, data_id,
    pkt_pld,s_err_pkt,
    start_t, end_t);
    $fsdbLogInit();
    $fsdbLog("XN_at_BFM","xaction_capture",0,$psprintf("%m"),msg);
  • 8. February 22, 2007
    (8)
    www.cvcblr.com/blog
    Detailed clock-by-clock info
  • 9. February 22, 2007
    (9)
    www.cvcblr.com/blog
    Textual transaction browser – all from single $fsdLog call!

×