Transaction Level Debug with SystemVerilog VMM & Verdi

  • 3,428 views
Uploaded on

 

More in: Technology , Design
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
3,428
On Slideshare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
54
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!