Jump to content

Kameshwar Rao

  • Content count

  • Joined

  • Last visited

  1. I have query related to UVM_RAL model. Does it support for case-insensitive for accessing Registers and Register fields items from UVM_RAL model? For example. We have testcase with extension of “cif_test.txt”, so it will more readable format for analog engineers. The contents of testcase looks like as mention below. spi_wr cif CifTestModeControlReg 01210fff --//spi-write cif CifTestModeControlReg ; cif_testmode_test_data=fff; cif_testmode_en=0; cif_testmode_data_sel=0; cif_testmode_skip_pdc=0 Here “ spi_wr indicates command, and cif indicates module_name and CifTestModeControlReg indicates register_name”. while parsing this cif string we use below command. block = model_tb.get_block_by_name(mod_name); --//block is of type uvm_reg_block, dolphin_reg is of type uvm_reg; dolphin_reg = block.get_reg_by_name(reg_name); The above statement of testcase will works fine in functional simulation(Tool used is => Cadence SimVision(64) 14.20-s002). And even same testscripts works fine for Validation environment(I mean after chip tape out) also, currently we are using labveiw programmer Tool. Note – 1 : For the same test cases, few registers are got updated during the validation in labview programmer tool. When we dump this updated test case from labview tool. The test case contents are got updated to capital letters(for example - SPI_WR CIF CIFTESTMODECONTROLREG 01210fff). When this updated testscript want to run on functional simulation is throwing an error related to CIF is not a uvm_reg_block item. Is there any other way which will take care internally (I mean any UVM_RAL api is available which takes care of case-insensitive related to uvm_reg_block and uvm_reg items TYPE).
  2. 1. uvm_report_server svr; reg [31:0] csi2_err_cnt_mem[0:1]; 2. initial begin csi2_err_cnt_mem[0] = 0; csi2_err_cnt_mem[1] = 0; wait for events; //i mean after all bfm models are got dropped. svr = _global_reporter.get_report_server(); svr.summarize(); //Here I grep the non-uvm error message count into a file. $system("grep \"ERROR - CSI RECEIVER BFM\" ${SIM_RUN_DIR}\/${TC_TESTCASE_DIR}\/nccoex\/..\/result\/\*.log \| wc \-l \> csi2_err.txt"); //Read the file contents into two-dimentional memory. $readmemh("csi2_err.txt",csi2_err_cnt_mem); //adding the uvm_error and non-uvm_errors and comparing with value zero. if((svr.get_severity_count(UVM_FATAL) + svr.get_severity_count(UVM_ERROR)) + csi2_err_cnt_mem[0] == 0) begin if(svr.get_severity_count(UVM_WARNING)==0) `uvm_info("final_phase", "STATUS: UVM TEST PASSED", UVM_LOW) else `uvm_info("final_phase", "STATUS: UVM TEST PASSED with WARNINGS", UVM_LOW) print_pass(); $write("** UVM TEST PASSED **\n"); end else begin print_fail(); $write("** UVM TEST FAILED **\n"); end Note-1: the above mention code is working fine for me. Note-2: Srini, Thanks for reply. Best Regards, Kameshwar Rao
  3. is there way to search for the non-uvm compliant error message such as "ERROR - CSI Rx BFM " during the uvm report pahse of uvm environment? if we see this string error count variable need to be incremented and finally display test case is failed in log file.