Skip to content
This repository has been archived by the owner on Nov 4, 2024. It is now read-only.

Defining Memory address variables to enable abstract/function based coverpoint defintions for csrs. #57

Open
pawks opened this issue Oct 16, 2022 · 3 comments

Comments

@pawks
Copy link
Collaborator

pawks commented Oct 16, 2022

Many of the csrs happen to deal with memory addresses. It is not feasible to define absolute coverpoints for these csrs. Hence the need for memory variables which derive their values based on the instruction stream at runtime. The following variables are needed.

  • depa: The physical address of the data access.
  • depa_align: The alignment of the physical address i.e the 2bits in the LSB.
  • deva: The virual address of the data access. This is the effective address of the access as defined by the states being consumed in the instruction i.e in the absence of translation eva==epa.
  • deva_align: Currently the alignment of the address of the data access is expressed in ea_align. This needs to be renamed.
  • dptw[stage]a: The address being accessed by the ptwalk stage(depending on the levels of ptwalk needed) in the translation of effective data address from va to pa. In the presence of hypervisor the stage becomes a 2 digit number with the first showing the stage in conversion of va to hpa and the second showing hpa to pa.
  • iepa: The physical address of the instruction access.
  • iepa_align: The alignment of the physical address i.e the 2bits in the LSB of the instruction address.
  • ieva: The virual address of the instruction access. This is the effective address of the access as defined by the states being consumed in the instruction i.e in the absence of translation eva==epa.
  • ieva_align: LSB 2 bits of the va of instruction.
  • iptw[stage]a: The address being accessed by the ptwalk stage(depending on the levels of ptwalk needed) in the translation of effective instruction address from va to pa. In the presence of hypervisor the stage becomes a 2 digit number with the first showing the stage in conversion of va to hpa and the second showing hpa to pa.

All of these can simply be parsed from the SAIL log since it dumps implicit accesses.

@UmerShahidengr
Copy link
Collaborator

Hello All,
@MuhammadHammad001 is working on this issue, please assign him this issue.

@MuhammadHammad001
Copy link
Contributor

MuhammadHammad001 commented Dec 2, 2023

The support for these variables has been added in the PR#80. Please refer to the comment for the implementation
@allenjbaum
@UmerShahidengr
@neelgala

@allenjbaum
Copy link
Collaborator

allenjbaum commented Dec 4, 2023 via email

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants