Beruflich Dokumente
Kultur Dokumente
Aug 2013
PAGE 1
RESTRICTED DISTRIBUTION
Autoreg
Golden
Source
.blk
.blk
Autoreg Perl Wrapper
Autoreg
PAPI
Generators
PAPI
Visualization
Document
RTL
Legacy
HDL Headers
SW/FW
Vera
UVM RGM
.html
.mif
.v
FLAT
file
.vh
.h
.vri
.vri
.vr
.sv
.vhd
.asm
.vri
.vr
.html
Delta
Report
PAGE 2
RESTRICTED DISTRIBUTION
.seq
.blk
.blk
Autoreg
PAGE 3
Autoreg
Golden
Source
IP-XACT
XML
Vendor UVM
Generator
UVM Sequence
UVM REG/RAL
.vr
.sv
.vr
.sv
RESTRICTED DISTRIBUTION
Autoreg
Perl
Wrapper
PAGE 4
RESTRICTED DISTRIBUTION
Supported Features
Array register
User-specified address interval stride per index increment
Non-zero start index
2-D array
Read-write conjugates (twin register, overlap)
Same address but separate storages
One is read-only and the other one is write-only
Write-1-to-clear , RTC , WITS
Write 1 to certain bit field to clear the bit field or the entire parent register
Similar support for write-0-to-clear, read-to-clear
Exclude registers from standard test sequence :csrsetting
Exclude read and/or write accesses
Exclude selected registers and/or bit fields
Exclude from certain test, e.g. alias, reset, etc.
Banked registers
Same address but separate storages
Controlled by an external signal
UVM base class library support for banked registers
PAGE 5
RESTRICTED DISTRIBUTION
PAGE 6
RESTRICTED DISTRIBUTION
PAGE 7
RESTRICTED DISTRIBUTION
IP-XACT Examples
For Bank registers
<spirit:vendorExtensions>
<vendorExtensions:bank>secure</vendorExtensions:bank>
<vendorExtensions:overlap>true</vendorExtensions:overlap>
</spirit:vendorExtensions>
PAGE 8
RESTRICTED DISTRIBUTION
Set the path of UVM_HOME and IREG_GEN and use ireggen script as below
$IREG_GEN/bin/iregGen \
-i <IP-XACT file> \
-d output_ireggen \
-pkg my_pkg -ta _t -nc
PAGE 9
RESTRICTED DISTRIBUTION
/prj/iceng/SCALe/release/examples/integartion_and_simulation/uvm_reg/
PAGE 10
RESTRICTED DISTRIBUTION
PAGE 11
RESTRICTED DISTRIBUTION
super.new(name);
Note that there are read/write
tasks that cover the do items
endfunction : new
virtual task body();
uvm_status_e status;
int data;
model.config.write(status, h12, .parent(this));
Frontdoor Write
Backdoor Write
Backdoor Read
Memory frontdoor
void'(model.randomize());
model.update(status, UVM_BACKDOOR, .parent(this));
model.mirror(status, UVM_CHECK, UVM_BACKDOOR, .parent(this));
Container level
Backdoor update
endtask : body
endclass : blk_seq
PAGE 12
12
RESTRICTED DISTRIBUTION
Container level
Backdoor mirror
PAGE 13
RESTRICTED DISTRIBUTION
Thank You
QUALCOMM CONFIDENTIAL AND PROPRIETARY
PAGE 14
RESTRICTED DISTRIBUTION