Transaction Level Debug <br />Demo with VMM & Verdi<br />www.cvcblr.com/blog<br />Rejuvenating VLSI Design-Verification!<b...
Case Study: Transaction Level Debug with VMM <br />Transactions – higher level of abstraction<br />May span across several...
Transaction debug – what’s interesting?<br />Not bit-by-bit, clock-by-clock info<br />Just payload, Transaction IDENTIFIER...
CVC Copyright Protected Material,                                                          www.cvcblr.com<br />4<br />www....
www.cvcblr.com/blog<br />Transaction debug<br />February 22, 2007<br />(5)<br />
Transaction Debug - summary<br />Powerful application of callbacks<br />Minimal (or no) changes to the existing BFM (if VM...
Verdi’s $fsdbLog feature<br />SpringSoft (erstwhile Novas) recently added transaction debug capability to Verdi™<br />Use ...
February 22, 2007<br />(8)<br />www.cvcblr.com/blog<br />Detailed clock-by-clock info<br />
February 22, 2007<br />(9)<br />www.cvcblr.com/blog<br />Textual transaction browser – all from single $fsdLog call!<br />
Upcoming SlideShare
Loading in …5
×

Transaction Level Debug with SystemVerilog VMM & Verdi

4,368 views

Published on

Published in: Technology, Design
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
4,368
On SlideShare
0
From Embeds
0
Number of Embeds
112
Actions
Shares
0
Downloads
70
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Transaction Level Debug with SystemVerilog VMM & Verdi

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

×