CN115345101A - UVM-based chip register verification method - Google Patents

UVM-based chip register verification method Download PDF

Info

Publication number
CN115345101A
CN115345101A CN202210949098.XA CN202210949098A CN115345101A CN 115345101 A CN115345101 A CN 115345101A CN 202210949098 A CN202210949098 A CN 202210949098A CN 115345101 A CN115345101 A CN 115345101A
Authority
CN
China
Prior art keywords
sequence
register
verification
value
queue
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202210949098.XA
Other languages
Chinese (zh)
Inventor
张宁
栾昌海
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Niuxin Semiconductor Shenzhen Co ltd
Original Assignee
Niuxin Semiconductor Shenzhen Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Niuxin Semiconductor Shenzhen Co ltd filed Critical Niuxin Semiconductor Shenzhen Co ltd
Priority to CN202210949098.XA priority Critical patent/CN115345101A/en
Publication of CN115345101A publication Critical patent/CN115345101A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

The invention provides a verification method of a chip register based on UVM. The method comprises the following steps: configuring the sequence, after starting the verification sequence, taking a first value from the queue variable of the verification sequence, and reading and checking the first register by the value according to the reading and writing process corresponding to the front door mode, or according to the reading and writing process corresponding to the back door mode. If the data in the queue is not completely executed, taking a next value from the queue variable to continue reading, writing and checking, and if the data in the queue is completely executed, ending the access of the first register and accessing the next register; and ending the sequence until all registers are traversed. The sequence of the present invention is configured before being started, and the read-write verification of the traversal register can be completed. The workload of writing the read-write sequence of the register can be reduced, and the method has reusability and is convenient to use.

Description

Chip register verification method based on UVM
Technical Field
The invention relates to the technical field of integrated circuit verification, in particular to a verification method of a chip register based on UVM.
Background
In the UVM verification method of the chip Register, the concept of a Register architecture model (RAL) is introduced, and the Register model provides tasks such as mirror and update, which can complete the interaction of the Register model and related registers in a DUT in batches, so that a verifier can organize and configure the registers better. The prior art may support the generation of a register model from a descriptive document of registers, which is not specifically set forth herein. With the register model, the register can be read and written by front door access and back door access. The front door access is to send a read-write instruction on the bus through the analog cpu to perform read-write operation; the back door access operation is to change the value of the register directly through hierarchical reference without reading and writing through the bus.
For register verification, the UVM has some sequence built in. However, the built-in sequence often has limitations in practical applications, such as an inability to specify multiple different write data and different access manners. The UVM built-in sequence can not flexibly meet the requirements of various verification registers, so that a verifier still needs to write a sequence for traversing the register verification by himself. Different designs require the validation personnel to perform repetitive labor, which is inefficient.
Disclosure of Invention
The invention mainly aims to provide a verification method of a chip register based on UVM, which does not need a verifier to compile a sequence traversing the register verification, can reduce repetitive labor and improve efficiency.
Compared with the prior art, the technical scheme of the invention has the beneficial effects that:
compared with the prior art, the invention breaks through the limitation of the verification sequence of the built-in UVM register, creates a sequence which can write any number in unlimited number and can automatically traverse the verification register, and the front door and the back door can be accessed selectively. The use is as convenient as a built-in sequence of the UVM, a user can not care about the content of the sequence, only needs to correctly configure and start the sequence when in use, and various different register verification requirements are flexibly met. The sequence can reduce the workload of writing the register verification sequence, has strong operability and reusability.
The technical scheme of the invention is as follows:
if the access mode of the configuration sequence is a front door mode, after the verification sequence is started, a first value is taken from a queue variable of the verification sequence, and the first value is written into a first register through the front door mode. The value of the first register is read back and checked in a front gate manner.
If the access mode of the configuration sequence is a back door mode, after the verification sequence is started, a first value is taken from a queue variable of the verification sequence, and the first value is written into a first register in a front door mode. And reading back the value of the first register in a back gate mode and verifying the value, writing the first value into the first register in a back gate mode, and reading back the value of the first register in a front gate mode and verifying the value.
If the data in the queue is not completely executed, taking a next value from the queue variable to continue reading, writing and checking, and if the data in the queue is completely executed, ending the access of the first register and accessing the next register; and ending the sequence until all registers are traversed.
The above technical solution further includes:
adding a source code of the verification sequence to a verification environment of the UVM and creating an instance of the verification sequence;
specifying a register model RAL of the verification sequence;
assigning values to variables corresponding to the access modes in the verification sequence;
assigning values to queue variables in the validation sequence;
the verification sequence is initiated.
A register model RAL specifying a verification sequence, comprising: and pointing a pointer of a register model RAL type in the verification sequence to the created register model RAL in the verification environment of the UVM.
Assigning values to variables corresponding to the access modes in the verification sequence, wherein the assigned contents comprise: front door access and rear door access.
Assigning values to queue variables in the verification sequence, including:
writing write data of a verification register in a queue type variable of the verification sequence, wherein the number of the write data is one or more;
and sequentially taking values from the queue variables in the execution process of the verification sequence, and reading, writing and checking registers until all members of the queue are traversed.
Drawings
Fig. 1 is a schematic diagram of a sequence configuration flow according to an embodiment of the present invention;
fig. 2 is a schematic diagram of a sequence read-write flow according to an embodiment of the present invention.
Detailed Description
Example embodiments will now be described more fully with reference to the accompanying drawings. Example embodiments may, however, be embodied in many different forms and should not be construed as limited to the examples set forth herein.
Referring to fig. 1, the configuration process of the verification sequence includes: adding a source code of a verification sequence to a verification environment of the UVM and creating an instance of the verification sequence; specifying a register model RAL of the verification sequence; assigning values to variables corresponding to the access modes in the verification sequence; assigning values to queue variables in the validation sequence; a verification sequence is initiated.
Assigning values to variables corresponding to the access modes in the verification sequence, wherein the assigned contents comprise: front door access and rear door access.
Wherein assigning values to queue variables in the validation sequence comprises: and writing the write data of the verification register in the queue type variable of the verification sequence, wherein the number of the written write data is one or more. And sequentially taking values from the queue variables in the execution process of the verification sequence, and reading, writing and checking registers until all members of the queue are traversed.
For example, the actual configuration process of the sequence includes the following processes.
1) Adding the source code of the sequence (multi _ reg _ access _ seq) to the UVM verification environment and creating an instance of the verification sequence;
multi_reg_access_seq reg_seq;
reg_seq=new(“reg_seq”);
2) Pointing a pointer of a register model RAL type in the sequence to a register model RAL already established in the environment;
reg_seq.model=XXX.XXX.p_rm;
3) Assigning values to variables determining front and back door access modes in the sequence;
access _ op _ e = Front or Backdoor;
4) Assigning values to queue variables in the sequence, for example, continuously writing 4 values: 16'h0000, 16' h5555, 16'hAAA, 16' hFFFF;
reg_seq.data[$]={16’h0000,16’h5555,16’hAAAA,16’hFFFF};
5) A start sequence;
reg_seq.start(null)。
referring to fig. 2, the read-write flow of the sequence includes:
if the access mode of the configuration sequence is a front door mode, after the verification sequence is started, a first value is taken from a queue variable of the verification sequence, and the first value is written into a first register through the front door mode. The value of the first register is read back and checked in a front gate manner.
If the access mode of the configuration sequence is a back door mode, after the verification sequence is started, a first value is taken from a queue variable of the verification sequence, and the first value is written into a first register in a front door mode. And reading back the value of the first register in a back gate mode and checking, writing the first value into the first register in a back gate mode, and reading back the value of the first register in a front gate mode and checking.
If the data in the queue is not completely executed, taking a next value from the queue variable to continue reading, writing and checking, and if the data in the queue is completely executed, ending the access of the first register and accessing the next register;
and ending the sequence until all registers are traversed.
For example, the read/write flow within the sequence includes the following flows:
1) After the sequence is started, a value is taken out from the queue data [ $ ], and the value is written into a first register in a front door mode;
2) Judging access _ op _ e;
if access _ op _ e = = Front, the value of the first register is read back by Front door mode;
if access _ op _ e = = background, reading back the value of the first register in a back gate mode; writing the data into a first register in a back door mode, and reading back the value of the first register in a front door mode;
3) And if the queue data [ $ ] has only one member, the sequence is ended. If the queue data [ $ ] has a plurality of members, the process of 1) -2) is continuously repeated, wherein the process 1) sequentially fetches the data from the queue until all the values in the queue are traversed;
4) And repeating the process of 1) -3) for the next register until all the readable and writable registers in the register model are traversed.

Claims (5)

1. A verification method of a chip register based on UVM is characterized by comprising the following steps:
if the access mode of the configuration sequence is a front door mode, after the verification sequence is started, a first value is taken from a queue variable of the verification sequence, the first value is written into a first register in the front door mode, and the value of the first register is read back in the front door mode and is checked;
if the access mode of the configuration sequence is a back door mode, after the verification sequence is started, a first value is taken from a queue variable of the verification sequence, the first value is written into a first register in a front door mode, the value of the first register is read back in a back door mode and is checked, the first value is written into the first register in the back door mode, and the value of the first register is read back in a front door mode and is checked;
if the data in the queue is not completely executed, taking a next value from the queue variable to continue reading, writing and checking, and if the data in the queue is completely executed, ending the access of the first register and accessing the next register; and ending the sequence until all registers are traversed.
2. The method of claim 1, wherein the method further comprises:
adding a source code of the verification sequence to a verification environment of the UVM and creating an instance of the verification sequence;
specifying a register model RAL for the validation sequence;
assigning values to variables corresponding to the access modes in the verification sequence;
assigning values to queue variables in the validation sequence;
the verification sequence is initiated.
3. The method of claim 2, wherein specifying a register model of the validation sequence, RAL, comprises:
and pointing a pointer of a register model RAL type in the verification sequence to the created register model RAL in the verification environment of the UVM.
4. The method of claim 2, wherein a value is assigned to a variable corresponding to the access mode in the verification sequence, the assigned value comprising: front door access and rear door access.
5. The method of claim 2, wherein assigning values to queue variables in the validation sequence comprises:
writing write data of a verification register in a queue type variable of the verification sequence, wherein the number of the write data is one or more; and sequentially taking values from the queue variables in the execution process of the verification sequence, and reading, writing and checking registers until all members of the queue are traversed.
CN202210949098.XA 2022-08-09 2022-08-09 UVM-based chip register verification method Pending CN115345101A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210949098.XA CN115345101A (en) 2022-08-09 2022-08-09 UVM-based chip register verification method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210949098.XA CN115345101A (en) 2022-08-09 2022-08-09 UVM-based chip register verification method

Publications (1)

Publication Number Publication Date
CN115345101A true CN115345101A (en) 2022-11-15

Family

ID=83951632

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210949098.XA Pending CN115345101A (en) 2022-08-09 2022-08-09 UVM-based chip register verification method

Country Status (1)

Country Link
CN (1) CN115345101A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116127886A (en) * 2023-04-12 2023-05-16 北京燧原智能科技有限公司 Verification method and device for memory circuit
CN116956789A (en) * 2023-09-19 2023-10-27 芯耀辉科技有限公司 Method, computing device and medium for accessing register back door
CN116974813A (en) * 2023-09-25 2023-10-31 南方电网数字电网研究院有限公司 Register data management method and device, register module and computer equipment

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116127886A (en) * 2023-04-12 2023-05-16 北京燧原智能科技有限公司 Verification method and device for memory circuit
CN116956789A (en) * 2023-09-19 2023-10-27 芯耀辉科技有限公司 Method, computing device and medium for accessing register back door
CN116956789B (en) * 2023-09-19 2023-12-12 芯耀辉科技有限公司 Method, computing device and medium for accessing register back door
CN116974813A (en) * 2023-09-25 2023-10-31 南方电网数字电网研究院有限公司 Register data management method and device, register module and computer equipment
CN116974813B (en) * 2023-09-25 2024-04-19 南方电网数字电网研究院有限公司 Register data management method and device, register module and computer equipment

Similar Documents

Publication Publication Date Title
CN115345101A (en) UVM-based chip register verification method
DeRemer et al. Programming-in-the-large versus programming-in-the-small
US20080127303A1 (en) Generating security validation code automatically
JP2022537620A (en) artificial intelligence chip verification
KR20030084554A (en) System-on-chip development environment generating method and computer-readable medium with program thereof
JP7088897B2 (en) Data access methods, data access devices, equipment and storage media
van Beusekom et al. Formalising the Dezyne modelling language in mCRL2
Xie et al. Model checking for an executable subset of UML
Su et al. An efficient GPU implementation of inclusion-based pointer analysis
US20030229740A1 (en) Accessing resources in a microprocessor having resources of varying scope
US7110934B2 (en) Analysis of the performance of a portion of a data processing system
JP5377522B2 (en) Efficiently correlate nominally incompatible types
CN114924726A (en) Device for rapidly verifying application program interface and control method thereof
US6721937B2 (en) Method and system for automated processor register instantiation
CN112230904A (en) Code generation method and device based on interface document, storage medium and server
US20200125476A1 (en) Manipulation of complex variables in orchestration applications
Frankau et al. Stream processing hardware from functional language specifications
CN116627390B (en) ICD file substitution method and device in aviation software development
Dasgupta et al. The use of Hoare logic in the verification of horizontal microprograms
Wang et al. An embedded C language Target Code level Unit Test method based on CPU Simulator
Abramsky et al. Algorithmic Game Semantics and Component− Based Verification
Hamlet et al. Transportable image-processing software
TW201317780A (en) Method for identifying memory of virtual machine and computer system using the same
CN103279326A (en) Microprocessor data flow address matching self-trapping device used for software debugging
CN116205172A (en) Method and device for modifying register in software and hardware collaborative simulation verification

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination