Quantcast
Channel: Cadence Functional Verification Forum
Viewing all 1091 articles
Browse latest View live

the usage of e language "now"

$
0
0

hi all,

 

     i learn the code written by someone else has finished many years ago,and i couldn't contact with him.in the code ,i find the "now" programme,the defination and the example are easily understood,but i don't know which senario could use this keyword,which enviroment should "now" could be used.  ,,the reference said ,in the same cycle ,and tcm is involved,but codes i read is something like this:

   on  a_ev

  {

        if (   (now @b_ev))

           and (now  @c_ev)

          or ... 

         ....

          ) 

          {

               ... //actions  

           };

          if ()

          {

             emit c_ev; 

          }; 

   } ;//on brackets

i think the c_ev is the consequence,and the a_ev is the reason,,,this segment of code make me so confused!

 

 

thank you for your helping me out

Bs 


vcs_specman not created

$
0
0

Hi,

I am trying to create an exe using vcs and specman,

initially specman and vcs compilation went through fine and when the vcs simulation started i got an error saying as below,please let me know further what to do??

 

vcs_specman not created
sn_compile.sh: /apps/cds/incisiv/10.20.122/specman/bin/link_vcs.sh failed

and this are the warnings i see

if [ -x ../scr_specman ]; then chmod -x ../scr_specman; fi
g++  -o ../scr_specman
/apps/denali/mmav_purespec/3.2.068_64/verilog/denverlib.o -Wl,-E  
-Wl,-whole-archive    -Wl,-no-whole-archive 
/apps/cds/incisiv/10.20.122/specman/linux/specman__main_.o 
_vcsobj_1_1.o  5NrI_d.o 5NrIB_d.o SIM_l.o    rmapats_mop.o
rmapats.o      /apps/synopsys/vcsmx/2011.03-SP1/amd64/lib/libvirsim.so
/apps/synopsys/vcsmx/2011.03-SP1/amd64/lib/liberrorinf.so
/apps/synopsys/vcsmx/2011.03-SP1/amd64/lib/libsnpsmalloc.so
/apps/novas/debussy/2009.07/share/PLI/vcsd_mixed_latest/LINUX64/pli.a
-lpthread -ldl
/apps/cds/incisiv/10.20.122/specman/linux/libctype_compat.a -lm -ldl
/apps/cds/incisiv/10.20.122/specman/linux/libctype_compat.a
/apps/cds/incisiv/10.20.122/specman/linux/libctype_compat.a
/apps/cds/incisiv/10.20.122/specman/linux/libspecman.a
/apps/cds/incisiv/10.20.122/specman/linux/libvcs_sn_boot.a    
/apps/synopsys/vcsmx/2011.03-SP1/amd64/lib/libvcsnew.so
/apps/synopsys/vcsmx/2011.03-SP1/amd64/lib/libuclinative.so        
/apps/synopsys/vcsmx/2011.03-SP1/amd64/lib/vcs_save_restore_new.o -ldl
-lm  -lc -lpthread -ldl
/usr/bin/ld: warning: i386 architecture of input file
`/apps/cds/incisiv/10.20.122/specman/linux/specman__main_.o' is
incompatible with i386:x86-64 output
/usr/bin/ld: warning: i386 architecture of input file `rmapats.o' is
incompatible with i386:x86-64 output
/usr/bin/ld: warning: i386 architecture of input file
`/apps/cds/incisiv/10.20.122/specman/linux/libspecman.a(specman_all_.o)'
is incompatible with i386:x86-64 output
/usr/bin/ld: warning: i386 architecture of input file
`/apps/cds/incisiv/10.20.122/specman/linux/libvcs_sn_boot.a(vcs_sn_boot.o)'
is incompatible with i386:x86-64 output

Regards

kaleem.

 

OVM- Using interface to access DUT signals

$
0
0

Hi

 I am working under OVM based testbench and i would like to use status signals from the DUT in the data item - req (to make sure it is not in error state ).

What is the way to do it?

I would like to avoid using response since this is the current implementation and it seems that it can be done much more simple.

 Is it possible to use the tansaction interface or any other interface connecting the driver to the design?

Thanks

Infineon CoolMOS Spice problem

$
0
0

 Hello,

 i want to use an Infineon CoolMOS in a medium/high power switching application. The chip of choise is the IPD60R600E6. The spice model can be found here:

http://www.infineon.com/dgdl/CoolMOS_simplified_Spice_models_C6E6CFD2_?folderId=db3a304333b8a7ca0133c6bec0956188&fileId=db3a304335f1f4b601360cb04a4e1385

I copied the source code from the file to a new .spi file. Then i added a new Item to my schematic, a nmos4 from the analogLib. I changed the model name to IPD60R600E6 an added the spice file to the library list.

 Then i changed the pin setup in the spice file to

.SUBCKT IPD60R600E6_L0 source gate bulk drain

because in the nmos4 lib it says that Source is pin 1, Gate is pin 2 etc. The bulk contact in the spice file is not connected because in the spice model it is connected to source.

Plotting the transfer characteristic i get far too high currents in the range of kA. Even with Vgs = 1V the transistor seems to conduct with the same current... (Vth>= 2.1V)

Any idea what i did wong? Is it the correct way to use a analogLib nmos4 and change the model name? I did the same with a IRF430 MOSFET and this worked without a problem.

 

Thanks in advance!

 

 

How to connect vPlan and your testbench

$
0
0

 Hi guys,

I've been exploring with the labs in UVM-SystemVerilog Workshop. The lab 1 to 5 are good, but lab 6 is sort of useless. It only shows me how to view the prewritten sessions and vplan. In the end, I don't know how to create the vPlan map the plan to the testbench so that it can automatically measure my verification progress. 

I don't why the lab 6 isn't built up from lab 5 which it should.  

Is there any other lab/document that I can follow? 

I search all over the earth and understand roughly that : you have a spec, then you create your vplan. Your vplan can map to your spec and your vplan can map to your testbench to measure the progress of your verification. I just don't know how to "connect" vplan to my testbench. 

Thanks a lot for reading

 Jeff

 

Problem while integrating sv uvc in e environment

$
0
0

Hi Friends,

        I developed AHB arbiter UVC in sv by using UVM methodology. Now i want to verify my arbiter uvc with cadence ahb vip in e environment.while integrating i am facing error and then simulation stops.

I have created files...

1. file name: arbiter_dut_top.v 

    module arbiter_dut_top(

// arbiter input signals ,

// arbiter output signals

  // input declarations

 // output declarations

arbiter_interface arb_if(hclk,hreset) ;

 

assign  arb_if.htrans =htrans  ; //  for input signal 

assign hmaster =arb_if.hmaster ; // for output signal

endmodule

2. file name: ahb_arbiter_tb.v

 module     ahb_arbiter_tb(); 

  // here all the signals are connected to e top file

 // variable declaration

 

  master_mux  m_mux(

 slave_mux s_mux(

)

arbiter_dut_top A_dut(

)

 

endmodule 

 

3. file name : vr_ahb_config_arbiter.e

   // in this file i disable the cadence arbiter uvc and active the remaing uvc's

  // i made name of env as ARB_DUT

 // connected all the agents through synchronizer 

 extend  ARB_DUT vr_ahb_env {

   keep has_active_masters ;

    keep not has_passive_masters ;

     keep has_active_slaves ;

    keep not has_passive_slaves ;

    keep has_passive_arbiter ;

    keep not has_active_arbiter ;

   keep has_active_decoder 

 };

 

 extend  ARB_DUT vr_ahb_env {

   keep soft num_active_masters == 2;

    keep soft num_active_slaves  == 4;

    keep  has_active_masters_names =={M2; M4};

    keep  has_active_slaves_names == {S1;S2;S3;S4} ;

 };

 

// vr_ahb_signal_map for all the uvc's interface signals

 

        Finally, I integrated my arbiter uvc in cadence ahb vip(e environment). cadence arbiter is passive, my arbiter is active. But,simulating and it structs and showing error as " it is a dut error because of hgrant0". when i open the GUI, once i checked my arbiter interface signal grant, hmaster and hmasterlock signals as 'X'.

 

Can any one help me what is the reason for it?If any one knows the  other way of integration tips,please share with me.

 

Thanks,

k@nth 

Specman Tutorial

$
0
0

Hi everybody ,

Can anybody please suggest me quickstart tutorial to  specman-e . I have knowledge of systemverilog uvm and now i want to shift to specman e. I Have specman 9.2 and above... are there any tutorials provided by cadence with the tools???

Thanks and regs,

Pravin 

string macros in verilog AMS

$
0
0

Hello, 

Does anyone know how to define string  macros in Verilogams?

 

Today I have to do the following:

`define display_value(str, sig) $display(“Value of signal %s is equal to %b”,  str, sig)

 If I place the following macro in my code

`display_value(“mysignal”,mysignal);

 The compiler translates to

$display(“Value of signal %s is equal to %b”,  “mysignal”, mysignal);

 Unfortunately, it forces me to duplicate information and maintain more code.

 Ideally I would like a macro that takes a single argument to create the signal name as well as its respective content.  Such as:

`define display_value(sig)    ????????????????

I wonder if there's a trick in verilogams to accomplish that. 

Any ideas?

Thanks,

Art. 


Specman/e: Flush sequence queue

$
0
0

Hello,

I have started several sequences with the any_sequence.start_sequence() API on a driver to create a high datarate. Now I want to react on an exteranl event and flush all the remaining sequences that have not been processed yet.

Is there a simple way to flush the queue?

Best Regards,

Erik

forcing the creation of a vcd file

$
0
0

Hello,

How do I instruct simvision to force the creation of a vcd file?

I am trying to create tcl script to dump signals into a vcd file and then immediately post-process this very vcd.

These are the two lines I want to run in sequence from a ncsim tcl script : 

simvision -submit "database export $my_signals -format vcd -name my_vcd.vcd"

file copy my_vcd.vcd ${my_dir}/myvcd.vcd

The problem that I am experiencing is that simvision seems to postpone the creation of the vcd file. Therefore, at the moment the second line is executed the vcd file is not yet available.

I get the following error:

ncsim> *E,TCLERR: error copying "driver.vcd": no such file or directory

However, if I run the two lines separately (i.e., not in a script) it works.So It seems that I have to force the creation of the vcd, but I don't know how.

I would appreciate your help.

Thanks!

 

 

Add tcl script to tcl/tk Application Dashboard

$
0
0

Hi,

 I have created a small tcl script to modify the some properties on the Title Block. I wish to add the Script to the TCL/Tk Applications Dashboard.I followed the instructions in the OrCAD_Capture_TclTk_Extensions.pdf. I have added the script in the folder “C:\Cadence\SPB_16.5\tools\capture\tclscripts\capUtils” and modified the file capApps.tcl in the “C:\Cadence\SPB_16.5\tools\capture\tclscripts\capForms”folder. I restart my Orcad Session, I can see the entry in the dashboard. However, upon clicking on ‘Launch’ I get the error "error ::capTitleBlockEditUtil::EditTitleBlockOnPage not defined"

my script is ::

package require Tcl 8.4

package require DboTclWriteBasic 16.3.0

package provide capTitleBlockEditUtil 1.0

 

namespace eval capTitleBlockEditUtil {

namespace export EditTileBlockOnPage

}

proc capTitleBlockEditUtil::EditTileBlockOnPage {} {
set lSession $::DboSession_s_pDboSession
DboSession -this $lSession
set lStatus [DboState]
set pDesignPath C:/ecad/staging/vila/bimu_1405135821/orcad/latest/0010/test.dsn
set lDesignPath [DboTclHelper_sMakeCString $pDesignPath]
set lDesign [$lSession GetDesignAndSchematics $lDesignPath $lStatus]

set pSchematicName SCHEMATIC1
set lSchematicName [DboTclHelper_sMakeCString $pSchematicName]
set lSchematic [$lDesign GetSchematic $lSchematicName $lStatus]

set pPageName PAGE1
set lPageName [DboTclHelper_sMakeCString $pPageName]
set lPage [$lSchematic GetPage $lPageName $lStatus]

set lTitleBlockId [$lPage GetTitleBlockDisplayed  $lStatus]
set Titile [$lPage GetTitleBlock $lTitleBlockId $lStatus]

set pPname Title
set lTitlePName [DboTclHelper_sMakeCString $pPname]
set lNameValue [DboTclHelper_sMakeCString]

$Titile  GetUserPropStringValue  $lTitlePName $lNameValue

puts [DboTclHelper_sGetConstCharPtr $lNameValue]
set pPropValue CHANGED
set lPageName [DboTclHelper_sMakeCString $pPageName]
$Titile SetUserPropStringValue $lTitlePName $lPageName

Error while trying to explore about get_inst_coverage

$
0
0

 

Hi,
I'm trying to observe the difference between get_coverage & get_inst_coverage with the following example;

class trans;
rand logic wrd;
rand logic [2:0] addr;
rand logic [7:0] din;
rand logic [2:0] no_of_rst;

covergroup cg;
type_option.merge_instances = 1;
option.per_instance = 1;
option.get_inst_coverage = 1;
op_t: coverpoint addr;
op_r: coverpoint din;
endgroup

function new();
cg = new();
endfunction : new
endclass

program main();
trans trans_0 = new();
trans trans_1 = new();
trans trans_2 = new();

initial begin
trans_0.randomize();
trans_1.randomize();
trans_2.randomize();
trans_0.cg.sample();
trans_2.cg.sample();
$display("coverage:%f",trans_0.cg.get_coverage());
$display("coverage1:%f",trans_2.cg.get_inst_coverage());
$display("coverage1:%f",trans_2.cg.get_coverage());
end
endprogram

But the cadence 10.20-s104 tool is showing error at lines type_option.merge_instances and at option.get_inst_coverage.

Can anyone suggest me the how can i get the get_inst_coverage result which is different from get_coverage?

Thanks,

Regards,

Mahee.

merging the coverage from different testcase of the same DUT

$
0
0

Hi

     I am facing issue in the meging the code & functional coverage of the different testcase of the same dut

    commands used with iccr :

==================================== 

set_dut_modules XYZ

merge test1 test2 -ouput temp

====================================

following message is displayed : 

======================================================================== 

 

Instance tree: txphy_top to txphy_top 

          "txphy_top.TESTCASE" to "txphy_top.TESTCASE": Control-oriented coverage not merged - Module name differs.

          "txphy_top.TESTCASE" to "txphy_top.TESTCASE": Block coverage not merged - Checksum differs.

        Items not merged:  2

======================================================================== 
 
can any one help me with this issue. how to merge
 
Thanks
 sumit 

 

latest e manual

$
0
0

hi,

i used specman e in the past, and want to catch up.

i could not find the latest e manual on cadence site. where can i find it?

i do not have a specman installetion. is there an educational version  i can play with (even without a simulator)?

thanks,

dan

 

simulation dump sliding window or start time

$
0
0

Hi all,

I have a test case runs for long time and the error occurs at the end of the run. The dump is really big and it's very slow to open up the waveform. Does anyone knows the options how to start the dump at a certain time, or how to limit the dump size so that it acts like a sliding window only dump the lastest info?

Thanks,

VY


I can't find "Part Manager" option in OrCad 16.3

extract memory value in systemC

$
0
0

Hi all,

 I have 2 files. 

In file A.vhd, I model a memory using "type t_mem is array(conv_integer(BASE) to conv_integer(TOP-1)) of std_logic_vector(7 downto 0);     variable mem : t_mem;".

In file B.cpp, I use "rtl_mem_value.observe_foreign_signal(memory_path)" to extract memory value, but I get "ncsim: *W,SCOOMR: Expecting port, signal, or net for out-of-module connection".

 Can anyone tell me how I can extract memory values?

Thanks

Continue after failed PSL assertions

$
0
0

Hi!

I am running a mixed-language simulation with irun. This includes PSL assertions in my VHDL code and SVA assertions in my SystemVerilog/UVM testbench.

As the simulation runs in non-interactive mode on a cluster, I do not want the simulation to stop due to failed assertions. It rather should log it in the database and continue.

But the simulation already stops on the first failed assertion. I was not able to find any configuration flag to force ncsim to continue automatically.

Any hints would be highly appreciated.

- Johannes 

 

EDIT: Okay, sorry. I just found the problem. My own script prevented the simulation from continuing.  

ncvlog: *E,EXPKWS - Error while running OVM env

$
0
0

Hi,

ncvlog: *E,EXPKWS (../env/test.sv,4|29): Expecting port direction keyword 'input', 'output', 'inout', or 'ref'.
(`define macro: ovm_field_utils_begin [/tools/ovm/ovm-2.0.2/src/macros/ovm_object_defines.svh line 131], `define macro: ovm_component_utils_begin [/tools/ovm/ovm-2.0.2/src/macros/ovm_object_defines.svh line 308], `define macro: ovm_component_utils [/tools/ovm/ovm-2.0.2/src/macros/ovm_object_defines.svh line 300], `include file: ../env/test.sv line 4, file: ../env/top.sv line 27)

Top file:
import ovm_pkg::*;
`include "ovm_macros.svh"
module top;
include "rffe_file_list.svh" // RTL files

Using inline command to run in nc:
irun -ovmhome $OVM_HOME +incdir+$OVM_HOME/src -sysv_ext .sv,.svh -access +rwc -sv +incdir+../env ../env/top.sv +incdir+../../rtl -f list.f +OVM_TESTNAME=test

OVM version : ovm - 2.0.2

irun version: irun    10.20-s113

I am new OVM....I am getting this type of error in ovm env wherever i have used ovm macros, ovm classes and ovm methods....what could be the reason for this? It will be very nice if any one can provide a reference code in OVM for simple project.

Thanks in advance....Thyagu

Driving a circuit with spice models using verilog wreal stimulus

$
0
0

 Hi All,

 I am running an AMS simulation [IRUN] where circuit with spice components is being driven by a stimulus code written in verliogams wreal.

Here when circuit is fully operational my supply coming from stimulus dips to about 200mV {VDDA - 200mV} [ Due to loading from the circuit]

Can anyone suggest me some idea to drive this circuit using wreal stimulus without facing any loading issue for supply provided by the stimulus.

 

Thanks in advance

Regards

Viewing all 1091 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>