Friday, November 21, 2008     Register | Login | Search | Contact Us
     

Many of you already received communications about the move of the Cadence user community into cadence.com. And many of you have already joined, with over 4000 registrations in the first two weeks.

The new Cadence Community enhances the ability of Cadence users to connect and collaborate. In addition to moving the community into cadence.com -- enabling single sign-on for community, Sourcelink and Cadence events -- the new site is organized around nine technology segments, giving you easy access to product information, training, forums and blogs. Some of the new features include:
  • Ability to respond to posts via e-mail
  • Technology-specific blogs
  • Latest Web 2.0 social networking capabilities
  • Public profile options
  • Private messaging
  • Friends lists
Visit the new Cadence Community today at www.cadence.com/community and join the discussions!

Registration note: Due to the scope of the enhancements and the new SSO registration system, we were not able to migrate existing cdnusers.org member accounts. So new registrations are required, but this enables a broader set of functionality we think you'll enjoy.

Forum note: Under the guidance of forum moderators, we have taken the 20+ cdnusers.org forums and consolidated them into 11 forums on the new site. Posts have been brought over so you can leverage that posting history. CDNusers forums will be set to read only starting 7/30, and cdnusers.org will be redirected to the new community on 8/4.

Best regards,
Mike and Tom

Michael A. Catrambone - Steering Committee Chairman
Distinguished Engineer
PCB/Mechanical
UTStarcom, Inc.

Tom Diederich
Cadence Community Manager
Home
Forums
Subject: NULL pointer dereference
Posting to forums is available to community members only.
Login or Register
Rate this topic:
   
Author Messages
ramesh_pal_yadav
Posts: 13
Online: User is Offline
1/10/2008 4:35 AM  
Hi,

I am building an uVC using uRM in SVCB for the First time.
When I wanted to Access the Transaction item from the Driver using "get_next_item" predefined task(defined in urm_driver class library) it is generating an error as,

Error!  NULL pointer dereference
          File: /tools/cadence/ius/tools/urm/src/urm/sv/urm_unit.svh, line = 119, pos = 25
         Scope: top.urm_unit::m_get_message_handler
          Time: 20 NS + 1
Verilog Stack Trace:
0: function top.urm_unit::m_get_message_handler at /tools/cadence/ius/tools/urm/src/urm/sv/urm_unit.svh:119
1: task top.urm_driver::get_next_item at /tools/cadence/ius/tools/urm/src/uvc/sv/urm_driver.sv:546
2: task top.master_bfm@876_2.drive_transfers at   sv/master_bfm.sv:85
3: process in top.master_bfm::run at /sv/master_bfm.sv:58

Infact I am not Using any TLM ports as of now.
I am Puzzled by this error, I will be Thankful for the Suggestions.

Regards,
Ramesh Pal Yadav

dl_doulos
Posts: 9
Online: User is Offline
1/10/2008 4:53 AM  
Hi Ramesh,

I presume you have some statement like:

  sequencer.get_next_item(item);

in your driver.

Have you remembered to assign the sequencer instance to the driver sequencer variable in your agent? e.g. you should have something like:

 driver.sequencer = seq_instance; 

where driver and seq_instance are the driver and sequencer instance names in your agent


If that is OK, have you configured your sequencer correctly?

Hope that gives you some ideas.

Regards,
Dave

David Long
Doulos
www.doulos.com
ramesh_pal_yadav
Posts: 13
Online: User is Offline
1/11/2008 1:54 AM  
Hi Dave,
I dont have a "Sequencer" Instance, Instaed i am accessing the "get_next_item" task from the urm_driver Base Class Library via.. urm_driver_set_sequences_and_item Macro.

   In BFM i have          
 driver.get_next_item(seq_item);    where Driver is the instance of my_driver which inherits urm_driver
  In my_driver i have
 `
urm_driver_set_sequences_and_item(sips_apb_master_transaction) 
This macro initializes the sequence factory for the urm_driver base class method usage and defines the user-defined data item to use when executing urm_simple_sequence.

This is how I have Implemented uVC Refering to the XBUS golden uVC example.
 
I coudnt get what "Configuring the Sequencer" mean? ?
I haven't started Generation yet and want keep the Basic SIMPLE sequence.I have just made the Environment UP and Proceeding to Work on BFM.

Regards,
Ramesh Pal
 
dl_doulos
Posts: 9
Online: User is Offline
1/11/2008 2:45 AM  
Hi Ramesh,

In the URM XBUS example, the xbus_master_driver is generating sequences - this is what I meant by "Sequencer" (which is the terminology used in the new OVM).

The BFM (which is called a "driver" in OVM) gets sequence items e.g. by calling driver.get_next_item(seq_item). However, the driver variable must be initialised to point to the object generating the sequences (otherwise you will get a "NULL POINTER" error). In the XBUS example this is done in the build method of xbus_master_agent:

bfm.driver = this.driver;

You should have a similar statement in your code.

My comment about configuring the sequencer is related to the set_*_override functions that can be called to determine what sequences are generated by the factory - see section 2.9 of the svcb user guide.

Regards,
Dave

David Long
Doulos
www.doulos.com
ramesh_pal_yadav
Posts: 13
Online: User is Offline
1/16/2008 3:09 AM  
Hi Dave,
   Thanks a Lot for the Valuable suggestions. The Error is Removed.
 
Regards,
Ramesh Pal

 
Posting to forums is available to community members only.
Login or Register

Forums > Functional Verification > SystemVerilog > NULL pointer dereference


ActiveForums 3.6
     
Copyright 2006 Cadence Design Systems, Inc.