Skip to content

Commit

Permalink
removing lint blackboxes
Browse files Browse the repository at this point in the history
removed packed struct post processing from generated reg files.
cast width of dynamic shifts to make lint happy
casting some arithmetic widths, math parameter widths etc
  • Loading branch information
Michael Norris committed Mar 27, 2024
1 parent 020cdc6 commit 697a740
Show file tree
Hide file tree
Showing 50 changed files with 2,560 additions and 2,587 deletions.
2 changes: 0 additions & 2 deletions src/datavault/config/compile.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,6 @@ targets:
directories: []
waiver_files:
- $MSFT_REPO_ROOT/src/datavault/config/design_lint/datavault/sglint_waivers
black_box:
- dv_reg
global:
tool:
vcs:
Expand Down
134 changes: 67 additions & 67 deletions src/datavault/rtl/dv_reg.sv
Original file line number Diff line number Diff line change
Expand Up @@ -63,16 +63,16 @@ module dv_reg (
//--------------------------------------------------------------------------
// Address Decode
//--------------------------------------------------------------------------
typedef struct packed{
logic [10-1:0]StickyDataVaultCtrl;
logic [10-1:0][12-1:0]STICKY_DATA_VAULT_ENTRY;
logic [10-1:0]DataVaultCtrl;
logic [10-1:0][12-1:0]DATA_VAULT_ENTRY;
logic [10-1:0]LockableScratchRegCtrl;
logic [10-1:0]LockableScratchReg;
logic [8-1:0]NonStickyGenericScratchReg;
logic [8-1:0]StickyLockableScratchRegCtrl;
logic [8-1:0]StickyLockableScratchReg;
typedef struct {
logic StickyDataVaultCtrl[10];
logic STICKY_DATA_VAULT_ENTRY[10][12];
logic DataVaultCtrl[10];
logic DATA_VAULT_ENTRY[10][12];
logic LockableScratchRegCtrl[10];
logic LockableScratchReg[10];
logic NonStickyGenericScratchReg[8];
logic StickyLockableScratchRegCtrl[8];
logic StickyLockableScratchReg[8];
} decoded_reg_strb_t;
decoded_reg_strb_t decoded_reg_strb;
logic decoded_req;
Expand Down Expand Up @@ -127,110 +127,110 @@ module dv_reg (
//--------------------------------------------------------------------------
// Field logic
//--------------------------------------------------------------------------
typedef struct packed{
struct packed{
struct packed{
typedef struct {
struct {
struct {
logic next;
logic load_next;
} lock_entry;
} [10-1:0]StickyDataVaultCtrl;
struct packed{
struct packed{
} StickyDataVaultCtrl[10];
struct {
struct {
logic [31:0] next;
logic load_next;
} data;
} [10-1:0][12-1:0]STICKY_DATA_VAULT_ENTRY;
struct packed{
struct packed{
} STICKY_DATA_VAULT_ENTRY[10][12];
struct {
struct {
logic next;
logic load_next;
} lock_entry;
} [10-1:0]DataVaultCtrl;
struct packed{
struct packed{
} DataVaultCtrl[10];
struct {
struct {
logic [31:0] next;
logic load_next;
} data;
} [10-1:0][12-1:0]DATA_VAULT_ENTRY;
struct packed{
struct packed{
} DATA_VAULT_ENTRY[10][12];
struct {
struct {
logic next;
logic load_next;
} lock_entry;
} [10-1:0]LockableScratchRegCtrl;
struct packed{
struct packed{
} LockableScratchRegCtrl[10];
struct {
struct {
logic [31:0] next;
logic load_next;
} data;
} [10-1:0]LockableScratchReg;
struct packed{
struct packed{
} LockableScratchReg[10];
struct {
struct {
logic [31:0] next;
logic load_next;
} data;
} [8-1:0]NonStickyGenericScratchReg;
struct packed{
struct packed{
} NonStickyGenericScratchReg[8];
struct {
struct {
logic next;
logic load_next;
} lock_entry;
} [8-1:0]StickyLockableScratchRegCtrl;
struct packed{
struct packed{
} StickyLockableScratchRegCtrl[8];
struct {
struct {
logic [31:0] next;
logic load_next;
} data;
} [8-1:0]StickyLockableScratchReg;
} StickyLockableScratchReg[8];
} field_combo_t;
field_combo_t field_combo;

typedef struct packed{
struct packed{
struct packed{
typedef struct {
struct {
struct {
logic value;
} lock_entry;
} [10-1:0]StickyDataVaultCtrl;
struct packed{
struct packed{
} StickyDataVaultCtrl[10];
struct {
struct {
logic [31:0] value;
} data;
} [10-1:0][12-1:0]STICKY_DATA_VAULT_ENTRY;
struct packed{
struct packed{
} STICKY_DATA_VAULT_ENTRY[10][12];
struct {
struct {
logic value;
} lock_entry;
} [10-1:0]DataVaultCtrl;
struct packed{
struct packed{
} DataVaultCtrl[10];
struct {
struct {
logic [31:0] value;
} data;
} [10-1:0][12-1:0]DATA_VAULT_ENTRY;
struct packed{
struct packed{
} DATA_VAULT_ENTRY[10][12];
struct {
struct {
logic value;
} lock_entry;
} [10-1:0]LockableScratchRegCtrl;
struct packed{
struct packed{
} LockableScratchRegCtrl[10];
struct {
struct {
logic [31:0] value;
} data;
} [10-1:0]LockableScratchReg;
struct packed{
struct packed{
} LockableScratchReg[10];
struct {
struct {
logic [31:0] value;
} data;
} [8-1:0]NonStickyGenericScratchReg;
struct packed{
struct packed{
} NonStickyGenericScratchReg[8];
struct {
struct {
logic value;
} lock_entry;
} [8-1:0]StickyLockableScratchRegCtrl;
struct packed{
struct packed{
} StickyLockableScratchRegCtrl[8];
struct {
struct {
logic [31:0] value;
} data;
} [8-1:0]StickyLockableScratchReg;
} StickyLockableScratchReg[8];
} field_storage_t;
field_storage_t field_storage;

Expand Down Expand Up @@ -430,7 +430,7 @@ module dv_reg (
logic [31:0] readback_data;

// Assign readback values to a flattened array
logic [304-1:0][31:0] readback_array;
logic [31:0] readback_array[304];
for(genvar i0=0; i0<10; i0++) begin
assign readback_array[i0*1 + 0][0:0] = (decoded_reg_strb.StickyDataVaultCtrl[i0] && !decoded_req_is_wr) ? field_storage.StickyDataVaultCtrl[i0].lock_entry.value : '0;
assign readback_array[i0*1 + 0][31:1] = '0;
Expand Down
76 changes: 38 additions & 38 deletions src/datavault/rtl/dv_reg_pkg.sv
Original file line number Diff line number Diff line change
Expand Up @@ -2,121 +2,121 @@
// https://github.com/SystemRDL/PeakRDL-regblock

package dv_reg_pkg;
typedef struct packed{
typedef struct {
logic swwel;
} dv_reg__StickyDataVaultCtrl__lock_entry__in_t;

typedef struct packed{
typedef struct {
dv_reg__StickyDataVaultCtrl__lock_entry__in_t lock_entry;
} dv_reg__StickyDataVaultCtrl__in_t;

typedef struct packed{
typedef struct {
logic swwel;
} dv_reg__StickyDataVaultEntry_w32__in_t;

typedef struct packed{
typedef struct {
dv_reg__StickyDataVaultEntry_w32__in_t data;
} dv_reg__StickyDataVaultReg__in_t;

typedef struct packed{
typedef struct {
logic swwel;
} dv_reg__DataVaultCtrl__lock_entry__in_t;

typedef struct packed{
typedef struct {
dv_reg__DataVaultCtrl__lock_entry__in_t lock_entry;
} dv_reg__DataVaultCtrl__in_t;

typedef struct packed{
typedef struct {
logic swwel;
} dv_reg__DataVaultEntry_w32__in_t;

typedef struct packed{
typedef struct {
dv_reg__DataVaultEntry_w32__in_t data;
} dv_reg__DataVaultReg__in_t;

typedef struct packed{
typedef struct {
logic swwel;
} dv_reg__LockableScratchRegCtrl__lock_entry__in_t;

typedef struct packed{
typedef struct {
dv_reg__LockableScratchRegCtrl__lock_entry__in_t lock_entry;
} dv_reg__LockableScratchRegCtrl__in_t;

typedef struct packed{
typedef struct {
logic swwel;
} dv_reg__LockableScratchReg__data__in_t;

typedef struct packed{
typedef struct {
dv_reg__LockableScratchReg__data__in_t data;
} dv_reg__LockableScratchReg__in_t;

typedef struct packed{
typedef struct {
logic swwel;
} dv_reg__StickyLockableScratchRegCtrl__lock_entry__in_t;

typedef struct packed{
typedef struct {
dv_reg__StickyLockableScratchRegCtrl__lock_entry__in_t lock_entry;
} dv_reg__StickyLockableScratchRegCtrl__in_t;

typedef struct packed{
typedef struct {
logic swwel;
} dv_reg__StickyLockableScratchReg__data__in_t;

typedef struct packed{
typedef struct {
dv_reg__StickyLockableScratchReg__data__in_t data;
} dv_reg__StickyLockableScratchReg__in_t;

typedef struct packed{
typedef struct {
logic reset_b;
logic core_only_rst_b;
logic hard_reset_b;
dv_reg__StickyDataVaultCtrl__in_t [10-1:0]StickyDataVaultCtrl;
dv_reg__StickyDataVaultReg__in_t [10-1:0][12-1:0]STICKY_DATA_VAULT_ENTRY;
dv_reg__DataVaultCtrl__in_t [10-1:0]DataVaultCtrl;
dv_reg__DataVaultReg__in_t [10-1:0][12-1:0]DATA_VAULT_ENTRY;
dv_reg__LockableScratchRegCtrl__in_t [10-1:0]LockableScratchRegCtrl;
dv_reg__LockableScratchReg__in_t [10-1:0]LockableScratchReg;
dv_reg__StickyLockableScratchRegCtrl__in_t [8-1:0]StickyLockableScratchRegCtrl;
dv_reg__StickyLockableScratchReg__in_t [8-1:0]StickyLockableScratchReg;
dv_reg__StickyDataVaultCtrl__in_t StickyDataVaultCtrl[10];
dv_reg__StickyDataVaultReg__in_t STICKY_DATA_VAULT_ENTRY[10][12];
dv_reg__DataVaultCtrl__in_t DataVaultCtrl[10];
dv_reg__DataVaultReg__in_t DATA_VAULT_ENTRY[10][12];
dv_reg__LockableScratchRegCtrl__in_t LockableScratchRegCtrl[10];
dv_reg__LockableScratchReg__in_t LockableScratchReg[10];
dv_reg__StickyLockableScratchRegCtrl__in_t StickyLockableScratchRegCtrl[8];
dv_reg__StickyLockableScratchReg__in_t StickyLockableScratchReg[8];
} dv_reg__in_t;

typedef struct packed{
typedef struct {
logic value;
} dv_reg__StickyDataVaultCtrl__lock_entry__out_t;

typedef struct packed{
typedef struct {
dv_reg__StickyDataVaultCtrl__lock_entry__out_t lock_entry;
} dv_reg__StickyDataVaultCtrl__out_t;

typedef struct packed{
typedef struct {
logic value;
} dv_reg__DataVaultCtrl__lock_entry__out_t;

typedef struct packed{
typedef struct {
dv_reg__DataVaultCtrl__lock_entry__out_t lock_entry;
} dv_reg__DataVaultCtrl__out_t;

typedef struct packed{
typedef struct {
logic value;
} dv_reg__LockableScratchRegCtrl__lock_entry__out_t;

typedef struct packed{
typedef struct {
dv_reg__LockableScratchRegCtrl__lock_entry__out_t lock_entry;
} dv_reg__LockableScratchRegCtrl__out_t;

typedef struct packed{
typedef struct {
logic value;
} dv_reg__StickyLockableScratchRegCtrl__lock_entry__out_t;

typedef struct packed{
typedef struct {
dv_reg__StickyLockableScratchRegCtrl__lock_entry__out_t lock_entry;
} dv_reg__StickyLockableScratchRegCtrl__out_t;

typedef struct packed{
dv_reg__StickyDataVaultCtrl__out_t [10-1:0]StickyDataVaultCtrl;
dv_reg__DataVaultCtrl__out_t [10-1:0]DataVaultCtrl;
dv_reg__LockableScratchRegCtrl__out_t [10-1:0]LockableScratchRegCtrl;
dv_reg__StickyLockableScratchRegCtrl__out_t [8-1:0]StickyLockableScratchRegCtrl;
typedef struct {
dv_reg__StickyDataVaultCtrl__out_t StickyDataVaultCtrl[10];
dv_reg__DataVaultCtrl__out_t DataVaultCtrl[10];
dv_reg__LockableScratchRegCtrl__out_t LockableScratchRegCtrl[10];
dv_reg__StickyLockableScratchRegCtrl__out_t StickyLockableScratchRegCtrl[8];
} dv_reg__out_t;

localparam DV_REG_ADDR_WIDTH = 32'd11;
Expand Down
2 changes: 0 additions & 2 deletions src/doe/config/compile.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,8 +39,6 @@ targets:
directories: []
waiver_files:
- $MSFT_REPO_ROOT/src/doe/config/design_lint/doe_ctrl/sglint_waivers
black_box:
- doe_reg
---
provides: [doe_cbc_tb]
schema_version: 2.4.0
Expand Down
Loading

0 comments on commit 697a740

Please sign in to comment.