Update code from upstream repository
https://github.com/lowRISC/opentitan to revision
d268f271f4f75aeb8f3bf9624a497ae5bfb9c47e

* [rtl] MuBi encoding of iCache memory ctrl signals (Pascal Nasahl)
* [sram_ctrl] Add readback feature (Pascal Nasahl)
* [fpv] Tweak report headers to match Jasper version (Rupert
  Swarbrick)
* [prim_pad_wrapper,rtl] Change input enable to active-high (Andreas
  Kurth)
* [hmac/rtl] Wait for digest of complete block when stopping (Martin
  Velay)
* [prim_sha2_pad,rtl] Signal msg feed complete also when stopping
  (Andreas Kurth)
* [prim_sha2_pad,rtl] Go to idle (without padding) when told to stop
  (Andreas Kurth)
* [prim_sha2_pad,rtl] Refactor comparison on tx_count and msg len into
  signal (Andreas Kurth)
* [prim_sha2_pad,rtl] Fix setting of digest mode when continuing
  (Andreas Kurth)
* [hmac/prim_2,rtl] Do not clear redundant digest values (Ghada
  Dessouky)
* [prim,fpv] Tweak how a parameter gets used in some assertions
  (Rupert Swarbrick)
* [prim,fpv] Fix trivial lint warning in prim_fifo_sync_assert_fpv
  (Rupert Swarbrick)
* [prim,rtl] Fix trivial lint warning in prim_fifo_sync (Rupert
  Swarbrick)
* Launcher Modification (Youming Lu)
* [top_earlgrey,pinmux] Add input disable attribute for non-manual
  pads (Andreas Kurth)
* [dv] Add more prints to bit bash sequence (Rupert Swarbrick)
* [ipgen,flash_ctrl] Fix core files (Guillermo Maturana)
* [prim,rtl] Avoid unnecessary check in prim_esc_receiver.sv (Rupert
  Swarbrick)
* [prim,fpv] Use PossibleActions param in prim_esc_receiver (Rupert
  Swarbrick)
* [prim_diff_decode] Use `prim_xnor2` to detect integrity issue
  (Andreas Kurth)
* [prim] Fix typo'd loop increment (James Wainwright)
* [hmac/prim_sha2,rtl] Implement SW error for invalid HMAC config
  (Ghada Dessouky)
* [rom] Remove real and fake key targets. (Miguel Osorio)
* [prim_sha2,rtl/dv] Fix secret value wiping (Ghada Dessouky)
* [prim,rtl,fpv] Fix typo in assertion in prim_alert_receiver (Rupert
  Swarbrick)
* [fpv,prim] Drop prim_count_expected_failure.hjson (Rupert Swarbrick)
* [fpv,prim] Generalise from DecrNeverTrue to listing possible actions
  (Rupert Swarbrick)
* [prim,fpv] Correct assertions for commit_i input (Rupert Swarbrick)
* [prim,fpv] Rephrase some "backwards" assertions in prim_count
  (Rupert Swarbrick)
* [prim,fpv] Properly "waive" some unreachable prim_count assertions
  (Rupert Swarbrick)
* [prim,fpv] Fix width of FPV variable in prim_arbiter_ppc.sv (Rupert
  Swarbrick)
* [prim,fpv] Rephrase prim_count error assertions (Rupert Swarbrick)
* [prim,fpv] Fix port list in prim_count_tb (Rupert Swarbrick)
* [prim_ram_1p_scr] Align documentation with actual implementation
  (Pirmin Vogel)
* [prim, rom_ctrl] Increase number of PRINCE rounds for improved
  security (Pirmin Vogel)
* [prim,fpv] Make file structure slightly clearer (Rupert Swarbrick)
* [prim,fpv] Shorten a variable name (prim_hier -> hier) (Rupert
  Swarbrick)
* [prim,fpv] Tidy up and document some FPV macros (Rupert Swarbrick)
* [dvsim,lint] Fix bug in duplicate detection in lint parser (Rupert
  Swarbrick)
* [rtl,comments] Fix some comments (Guillermo Maturana)
* [dv,prim] Clarification of reset behavior (Adrian Lees)
* [ast] Add dependency in fileset_partner to select correct ast_pkg
  (Sharon Topaz)
* [prim,fpv] Only allow unconstrained counters in prim_count FPV
  (Rupert Swarbrick)
* [dvsim] Split and rename Modes.py (Rupert Swarbrick)
* [prim,dv] Tweak ASSERT_FINAL to be a no-op if FPV enabled (Rupert
  Swarbrick)
* [prim,tlul,rtl] Explicitly cast a "1" to specific number of bits
  (Rupert Swarbrick)
* [dvsim] Fix plurals in type names in Modes.py (Rupert Swarbrick)
* [dvsim] Move find_mode and find_and_merge_modes out of Modes class
  (Rupert Swarbrick)
* [dvsim] Die more cleanly on an invalid use of merge_mode (Rupert
  Swarbrick)
* [dvsim] Get rid of "mname" field in Modes.py (Rupert Swarbrick)
* [dvsim] Simplify named attribute lookup in Modes.py (Rupert
  Swarbrick)
* [dvsim] Get rid of pretty print magic in Modes.py (Rupert Swarbrick)
* [dvsim] Strengthen typing and simplify printing for modes in SimCfg
  (Rupert Swarbrick)
* [dvsim] Slightly tidy up SimCfg._print_list (Rupert Swarbrick)
* [dvsim] Get rid of an unused dictionary in OneShotCfg.py (Rupert
  Swarbrick)
* Add the project name to the copyright header (Michael Munday)
* Fix or waive Python lint errors and warnings (Pirmin Vogel)
* Remove trailing whitespaces (Pirmin Vogel)
* [dv,mem_bkdr] Fix handling of multiple tiles in sram (Guillermo
  Maturana)
* [hmac] Coding style and minor fixes (Ghada Dessouky)
* [dv] Remove phase argument from monitor's collect_trans (Rupert
  Swarbrick)
* [prim_fifo_sync_cnt] Minor code cleanup (Andreas Kurth)
* [dv,mem_bkdr] Fix digest calculation for hw_cfg0 (Guillermo
  Maturana)
* [prim_fifo_sync_cnt] Fix signedness of Depth parameter (Andreas
  Kurth)
* [prim_fifo_sync] Keep wraparound pointers contained within
  `prim_fifo_sync_cnt` (Andreas Kurth)
* [prim_fifo_sync] Move pointer and depth calculation to
  `prim_fifo_sync_cnt` (Andreas Kurth)
* [prim_fifo_sync] Remove out-commented RTL code (Andreas Kurth)
* [prim_fifo_sync_cnt] Improve module and parameter documentation
  (Andreas Kurth)
* [lint] Demote licence warning in AscentLint parser (Rupert
  Swarbrick)
* Revert "[dv] Remove phase argument from monitor's collect_trans"
  (Rupert Swarbrick)
* [dv] Fix parameter types in dv_base_mubi_cov.sv (Rupert Swarbrick)
* [dv] Remove phase argument from monitor's collect_trans (Rupert
  Swarbrick)
* [dv, xcelium] Use detachable reports to avoid CORS (Elliot Baptist)
* [otp_ctrl] Add fuse for late debug enable mechanism (Michael
  Schaffner)
* [prim] Add support for MuBi's up to 32bit (Michael Schaffner)
* [otp_ctrl] Increase Hamming distance in OTP commands (Michael
  Schaffner)
* [dv] Add checks to set_freq_*hz (Rupert Swarbrick)
* [dv] Fix more timeout comments with wrong units (Elliot Baptist)
* Make .core files pass FuseSoC 2 schema validator (Olof Kindgren)
* [dvsim] Run deepcopy to work around memory usage bug (Rupert
  Swarbrick)
* [dvsim] Make global_val handling a bit clearer (Rupert Swarbrick)
* [prim_sha2,rtl] Add key_length type and change type encodings (Ghada
  Dessouky)
* [dv,sram_ctrl] Fix a few failing tests (Guillermo Maturana)
* [topgen] Add field to specify status IRQ default behavior (Michael
  Schaffner)
* [dv] Update clear_all_interrupts to support status type (Michael
  Schaffner)

Signed-off-by: Pascal Nasahl <nasahlpa@lowrisc.org>
This commit is contained in:
Pascal Nasahl 2024-05-28 16:10:49 +02:00 committed by Greg Chadwick
parent 5cea5d65c3
commit 21da9b3c7e
836 changed files with 4298 additions and 2227 deletions

View file

@ -1,4 +1,4 @@
// Copyright lowRISC contributors.
// Copyright lowRISC contributors (OpenTitan project).
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0
@ -9,6 +9,6 @@
upstream:
{
url: https://github.com/lowRISC/opentitan
rev: e0c40265019aa0c74e6903d3b3a144c48a3815ec
rev: d268f271f4f75aeb8f3bf9624a497ae5bfb9c47e
}
}

View file

@ -1,4 +1,4 @@
// Copyright lowRISC contributors.
// Copyright lowRISC contributors (OpenTitan project).
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0

View file

@ -1,4 +1,4 @@
// Copyright lowRISC contributors.
// Copyright lowRISC contributors (OpenTitan project).
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0
@ -136,6 +136,7 @@ interface clk_rst_if #(
// set the clk frequency in khz
function automatic void set_freq_khz(int freq_khz);
`DV_CHECK_FATAL(freq_khz > 0, , msg_id)
clk_freq_mhz = $itor(freq_khz) / 1000;
clk_period_ps = 1000_000 / clk_freq_mhz;
recompute = 1'b1;
@ -143,6 +144,7 @@ interface clk_rst_if #(
// set the clk frequency in mhz
function automatic void set_freq_mhz(int freq_mhz);
`DV_CHECK_FATAL(freq_mhz > 0, , msg_id)
set_freq_khz(freq_mhz * 1000);
endfunction

View file

@ -1,5 +1,5 @@
CAPI=2:
# Copyright lowRISC contributors.
# Copyright lowRISC contributors (OpenTitan project).
# Licensed under the Apache License, Version 2.0, see LICENSE for details.
# SPDX-License-Identifier: Apache-2.0
name: "lowrisc:dv:common_ifs"

View file

@ -1,4 +1,4 @@
// Copyright lowRISC contributors.
// Copyright lowRISC contributors (OpenTitan project).
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0

View file

@ -1,5 +1,5 @@
CAPI=2:
# Copyright lowRISC contributors.
# Copyright lowRISC contributors (OpenTitan project).
# Licensed under the Apache License, Version 2.0, see LICENSE for details.
# SPDX-License-Identifier: Apache-2.0
name: "lowrisc:dv:entropy_subsys_fifo_exception_if"

View file

@ -1,4 +1,4 @@
// Copyright lowRISC contributors.
// Copyright lowRISC contributors (OpenTitan project).
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0
//

View file

@ -1,4 +1,4 @@
// Copyright lowRISC contributors.
// Copyright lowRISC contributors (OpenTitan project).
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0

View file

@ -1,4 +1,4 @@
// Copyright lowRISC contributors.
// Copyright lowRISC contributors (OpenTitan project).
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0

View file

@ -1,5 +1,5 @@
CAPI=2:
# Copyright lowRISC contributors.
# Copyright lowRISC contributors (OpenTitan project).
# Licensed under the Apache License, Version 2.0, see LICENSE for details.
# SPDX-License-Identifier: Apache-2.0
name: "lowrisc:dv:pins_if"

View file

@ -1,5 +1,5 @@
CAPI=2:
# Copyright lowRISC contributors.
# Copyright lowRISC contributors (OpenTitan project).
# Licensed under the Apache License, Version 2.0, see LICENSE for details.
# SPDX-License-Identifier: Apache-2.0
name: "lowrisc:dv:rst_shadowed_if"

View file

@ -1,4 +1,4 @@
// Copyright lowRISC contributors.
// Copyright lowRISC contributors (OpenTitan project).
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0

View file

@ -1,4 +1,4 @@
// Copyright lowRISC contributors.
// Copyright lowRISC contributors (OpenTitan project).
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0
@ -329,7 +329,19 @@ class csr_bit_bash_seq extends csr_base_seq;
`uvm_object_new
virtual task body();
int unsigned total_count = test_csrs.size();
int unsigned done_count = 0;
`uvm_info(`gtn,
$sformatf("Running bit bash sequence for %0d registers", total_count),
UVM_MEDIUM)
foreach (test_csrs[i]) begin
done_count++;
`uvm_info(`gtn,
$sformatf("Verifying register bit bash for %0s (register %0d/%0d)",
test_csrs[i].get_full_name(), done_count, total_count),
UVM_MEDIUM)
// check if parent block or register is excluded from write
if (is_excl(test_csrs[i], CsrExclWrite, CsrBitBashTest) ||
is_excl(test_csrs[i], CsrExclWriteCheck, CsrBitBashTest)) begin
@ -338,9 +350,6 @@ class csr_bit_bash_seq extends csr_base_seq;
continue;
end
`uvm_info(`gtn, $sformatf("Verifying register bit bash for %0s",
test_csrs[i].get_full_name()), UVM_MEDIUM)
begin
uvm_reg_field fields[$];
string mode[`UVM_REG_DATA_WIDTH];

View file

@ -1,5 +1,5 @@
CAPI=2:
# Copyright lowRISC contributors.
# Copyright lowRISC contributors (OpenTitan project).
# Licensed under the Apache License, Version 2.0, see LICENSE for details.
# SPDX-License-Identifier: Apache-2.0
name: "lowrisc:dv:csr_utils"

View file

@ -1,4 +1,4 @@
// Copyright lowRISC contributors.
// Copyright lowRISC contributors (OpenTitan project).
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0
@ -26,10 +26,14 @@ package csr_utils_pkg;
function automatic void increment_outstanding_access();
outstanding_accesses++;
`uvm_info("csr_utils_pkg", $sformatf("increment_outstanding_access %0d", outstanding_accesses),
UVM_HIGH)
endfunction
function automatic void decrement_outstanding_access();
outstanding_accesses--;
`uvm_info("csr_utils_pkg", $sformatf("decrement_outstanding_access %0d", outstanding_accesses),
UVM_HIGH)
endfunction
task automatic wait_no_outstanding_access();
@ -549,6 +553,7 @@ package csr_utils_pkg;
fork
while (!under_reset) begin
if (spinwait_delay_ns) #(spinwait_delay_ns * 1ns);
`uvm_info("csr_utils_pkg", "In csr_spinwait", verbosity)
csr_rd(.ptr(ptr), .value(read_data), .check(check), .path(path),
.blocking(1), .map(map), .user_ftdr(user_ftdr), .backdoor(backdoor));
`uvm_info(msg_id, $sformatf("ptr %0s == 0x%0h",

View file

@ -1,4 +1,4 @@
// Copyright lowRISC contributors.
// Copyright lowRISC contributors (OpenTitan project).
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0

View file

@ -1,4 +1,4 @@
// Copyright lowRISC contributors.
// Copyright lowRISC contributors (OpenTitan project).
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0
//

View file

@ -1,4 +1,4 @@
// Copyright lowRISC contributors.
// Copyright lowRISC contributors (OpenTitan project).
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0
//

View file

@ -1,12 +1,11 @@
// Copyright lowRISC contributors.
// Copyright lowRISC contributors (OpenTitan project).
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0
//
// coverage object for a fixed width mubi
class mubi_cov #(parameter int Width = 4,
parameter int ValueTrue = prim_mubi_pkg::MuBi4True,
parameter int ValueFalse = prim_mubi_pkg::MuBi4False
) extends uvm_object;
parameter int unsigned ValueTrue = prim_mubi_pkg::MuBi4True,
parameter int unsigned ValueFalse = prim_mubi_pkg::MuBi4False) extends uvm_object;
`uvm_object_param_utils(mubi_cov #(Width, ValueTrue, ValueFalse))
// Collect true, false and at least N other values (N = Width)
@ -43,6 +42,18 @@ typedef mubi_cov #(.Width(12),
typedef mubi_cov #(.Width(16),
.ValueTrue(prim_mubi_pkg::MuBi16True),
.ValueFalse(prim_mubi_pkg::MuBi16False)) mubi16_cov;
typedef mubi_cov #(.Width(20),
.ValueTrue(prim_mubi_pkg::MuBi20True),
.ValueFalse(prim_mubi_pkg::MuBi20False)) mubi20_cov;
typedef mubi_cov #(.Width(24),
.ValueTrue(prim_mubi_pkg::MuBi24True),
.ValueFalse(prim_mubi_pkg::MuBi24False)) mubi24_cov;
typedef mubi_cov #(.Width(28),
.ValueTrue(prim_mubi_pkg::MuBi28True),
.ValueFalse(prim_mubi_pkg::MuBi28False)) mubi28_cov;
typedef mubi_cov #(.Width(32),
.ValueTrue(prim_mubi_pkg::MuBi32True),
.ValueFalse(prim_mubi_pkg::MuBi32False)) mubi32_cov;
// a mubi coverage object, which allows to dynamically select the width of mubi
class dv_base_mubi_cov extends uvm_object;
@ -53,6 +64,10 @@ class dv_base_mubi_cov extends uvm_object;
mubi8_cov m_mubi8_cov;
mubi12_cov m_mubi12_cov;
mubi16_cov m_mubi16_cov;
mubi20_cov m_mubi20_cov;
mubi24_cov m_mubi24_cov;
mubi28_cov m_mubi28_cov;
mubi32_cov m_mubi32_cov;
`uvm_object_utils(dv_base_mubi_cov)
`uvm_object_new
@ -70,6 +85,10 @@ class dv_base_mubi_cov extends uvm_object;
8: m_mubi8_cov = mubi8_cov::type_id::create(cov_name);
12: m_mubi12_cov = mubi12_cov::type_id::create(cov_name);
16: m_mubi16_cov = mubi16_cov::type_id::create(cov_name);
20: m_mubi20_cov = mubi20_cov::type_id::create(cov_name);
24: m_mubi24_cov = mubi24_cov::type_id::create(cov_name);
28: m_mubi28_cov = mubi28_cov::type_id::create(cov_name);
32: m_mubi32_cov = mubi32_cov::type_id::create(cov_name);
default: `uvm_fatal(`gfn, $sformatf("Unsupported mubi width (%0d) is used", mubi_width))
endcase
endfunction : create_cov
@ -80,9 +99,11 @@ class dv_base_mubi_cov extends uvm_object;
8: m_mubi8_cov.sample(value);
12: m_mubi12_cov.sample(value);
16: m_mubi16_cov.sample(value);
20: m_mubi20_cov.sample(value);
24: m_mubi24_cov.sample(value);
28: m_mubi28_cov.sample(value);
32: m_mubi32_cov.sample(value);
default: `uvm_fatal(`gfn, $sformatf("Unsupported mubi width (%0d) is used", mubi_width))
endcase
endfunction : sample
endclass : dv_base_mubi_cov

View file

@ -1,5 +1,5 @@
CAPI=2:
# Copyright lowRISC contributors.
# Copyright lowRISC contributors (OpenTitan project).
# Licensed under the Apache License, Version 2.0, see LICENSE for details.
# SPDX-License-Identifier: Apache-2.0
name: "lowrisc:dv:dv_base_reg"

View file

@ -1,4 +1,4 @@
// Copyright lowRISC contributors.
// Copyright lowRISC contributors (OpenTitan project).
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0
//
@ -102,6 +102,15 @@ class dv_base_reg extends uvm_reg;
end
endfunction
// Return a mask of read-only bits in the register.
virtual function uvm_reg_data_t get_ro_mask();
dv_base_reg_field flds[$];
this.get_dv_base_reg_fields(flds);
foreach (flds[i]) begin
get_ro_mask |= flds[i].get_ro_mask();
end
endfunction
// this function can only be called when this reg is intr_state reg
// Example: ral.intr_state.get_intr_pins_exp_value(). And it returns value of
// intr_state & intr_enable, which represents value of interrupt pins

View file

@ -1,4 +1,4 @@
// Copyright lowRISC contributors.
// Copyright lowRISC contributors (OpenTitan project).
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0
//

View file

@ -1,4 +1,4 @@
// Copyright lowRISC contributors.
// Copyright lowRISC contributors (OpenTitan project).
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0
//
@ -143,7 +143,7 @@ class dv_base_reg_field extends uvm_reg_field;
uvm_reg_field intr_state_fld = get_intr_state_field();
uvm_reg_data_t predict_val;
if (intr_state_fld.get_access == "RO") begin // status interrupt
predict_val = field_val;
predict_val = field_val | intr_state_fld.get_reset();
end else begin // regular W1C interrupt
`DV_CHECK_STREQ(intr_state_fld.get_access, "W1C")
predict_val = field_val | `gmv(intr_state_fld);
@ -188,11 +188,19 @@ class dv_base_reg_field extends uvm_reg_field;
return m_original_access;
endfunction
// Return a mask of valid bits in the field.
virtual function uvm_reg_data_t get_field_mask();
get_field_mask = (1'b1 << this.get_n_bits()) - 1;
get_field_mask = get_field_mask << this.get_lsb_pos();
endfunction
// Return a mask of read-only bits in the field.
virtual function uvm_reg_data_t get_ro_mask();
bit is_ro = (this.get_access() == "RO");
get_ro_mask = (is_ro << this.get_n_bits()) - is_ro;
get_ro_mask = get_ro_mask << this.get_lsb_pos();
endfunction
virtual function void set_original_access(string access);
if (m_original_access == "") begin
m_original_access = access;

View file

@ -1,4 +1,4 @@
// Copyright lowRISC contributors.
// Copyright lowRISC contributors (OpenTitan project).
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0
//

View file

@ -1,4 +1,4 @@
// Copyright lowRISC contributors.
// Copyright lowRISC contributors (OpenTitan project).
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0

View file

@ -1,4 +1,4 @@
// Copyright lowRISC contributors.
// Copyright lowRISC contributors (OpenTitan project).
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0
//

View file

@ -1,4 +1,4 @@
// Copyright lowRISC contributors.
// Copyright lowRISC contributors (OpenTitan project).
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0
@ -65,4 +65,3 @@ class dv_base_agent #(type CFG_T = dv_base_agent_cfg,
endfunction
endclass

View file

@ -1,4 +1,4 @@
// Copyright lowRISC contributors.
// Copyright lowRISC contributors (OpenTitan project).
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0

View file

@ -1,4 +1,4 @@
// Copyright lowRISC contributors.
// Copyright lowRISC contributors (OpenTitan project).
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0

View file

@ -1,4 +1,4 @@
// Copyright lowRISC contributors.
// Copyright lowRISC contributors (OpenTitan project).
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0
@ -34,4 +34,3 @@ class dv_base_driver #(type ITEM_T = uvm_sequence_item,
endtask
endclass

View file

@ -1,4 +1,4 @@
// Copyright lowRISC contributors.
// Copyright lowRISC contributors (OpenTitan project).
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0

View file

@ -1,4 +1,4 @@
// Copyright lowRISC contributors.
// Copyright lowRISC contributors (OpenTitan project).
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0

View file

@ -1,4 +1,4 @@
// Copyright lowRISC contributors.
// Copyright lowRISC contributors (OpenTitan project).
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0

View file

@ -1,4 +1,4 @@
// Copyright lowRISC contributors.
// Copyright lowRISC contributors (OpenTitan project).
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0
@ -38,12 +38,12 @@ class dv_base_monitor #(type ITEM_T = uvm_sequence_item,
virtual task run_phase(uvm_phase phase);
fork
collect_trans(phase);
collect_trans();
join
endtask
// collect transactions forever
virtual protected task collect_trans(uvm_phase phase);
virtual protected task collect_trans();
`uvm_fatal(`gfn, "this method is not supposed to be called directly!")
endtask

View file

@ -1,4 +1,4 @@
// Copyright lowRISC contributors.
// Copyright lowRISC contributors (OpenTitan project).
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0
@ -78,4 +78,3 @@ class dv_base_scoreboard #(type RAL_T = dv_base_reg_block,
endfunction : pre_abort
endclass

View file

@ -1,4 +1,4 @@
// Copyright lowRISC contributors.
// Copyright lowRISC contributors (OpenTitan project).
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0

View file

@ -1,4 +1,4 @@
// Copyright lowRISC contributors.
// Copyright lowRISC contributors (OpenTitan project).
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0

View file

@ -1,4 +1,4 @@
// Copyright lowRISC contributors.
// Copyright lowRISC contributors (OpenTitan project).
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0

View file

@ -1,4 +1,4 @@
// Copyright lowRISC contributors.
// Copyright lowRISC contributors (OpenTitan project).
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0

View file

@ -1,4 +1,4 @@
// Copyright lowRISC contributors.
// Copyright lowRISC contributors (OpenTitan project).
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0

View file

@ -1,5 +1,5 @@
CAPI=2:
# Copyright lowRISC contributors.
# Copyright lowRISC contributors (OpenTitan project).
# Licensed under the Apache License, Version 2.0, see LICENSE for details.
# SPDX-License-Identifier: Apache-2.0
name: "lowrisc:dv:dv_lib"

View file

@ -1,4 +1,4 @@
// Copyright lowRISC contributors.
// Copyright lowRISC contributors (OpenTitan project).
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0

View file

@ -1,5 +1,5 @@
CAPI=2:
# Copyright lowRISC contributors.
# Copyright lowRISC contributors (OpenTitan project).
# Licensed under the Apache License, Version 2.0, see LICENSE for details.
# SPDX-License-Identifier: Apache-2.0
name: "lowrisc:dv:dv_fcov_macros"

View file

@ -1,4 +1,4 @@
// Copyright lowRISC contributors.
// Copyright lowRISC contributors (OpenTitan project).
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0

View file

@ -1,5 +1,5 @@
CAPI=2:
# Copyright lowRISC contributors.
# Copyright lowRISC contributors (OpenTitan project).
# Licensed under the Apache License, Version 2.0, see LICENSE for details.
# SPDX-License-Identifier: Apache-2.0
name: "lowrisc:dv:dv_macros"

View file

@ -1,4 +1,4 @@
// Copyright lowRISC contributors.
// Copyright lowRISC contributors (OpenTitan project).
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0

View file

@ -1,4 +1,4 @@
// Copyright lowRISC contributors.
// Copyright lowRISC contributors (OpenTitan project).
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0
// Report catcher/demoter

View file

@ -1,4 +1,4 @@
// Copyright lowRISC contributors.
// Copyright lowRISC contributors (OpenTitan project).
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0

View file

@ -1,5 +1,5 @@
CAPI=2:
# Copyright lowRISC contributors.
# Copyright lowRISC contributors (OpenTitan project).
# Licensed under the Apache License, Version 2.0, see LICENSE for details.
# SPDX-License-Identifier: Apache-2.0
name: "lowrisc:dv:dv_test_status"

View file

@ -1,4 +1,4 @@
// Copyright lowRISC contributors.
// Copyright lowRISC contributors (OpenTitan project).
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0

View file

@ -1,5 +1,5 @@
CAPI=2:
# Copyright lowRISC contributors.
# Copyright lowRISC contributors (OpenTitan project).
# Licensed under the Apache License, Version 2.0, see LICENSE for details.
# SPDX-License-Identifier: Apache-2.0
name: "lowrisc:dv:dv_utils"

View file

@ -1,4 +1,4 @@
// Copyright lowRISC contributors.
// Copyright lowRISC contributors (OpenTitan project).
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0

View file

@ -1,4 +1,4 @@
// Copyright lowRISC contributors.
// Copyright lowRISC contributors (OpenTitan project).
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0

View file

@ -1,5 +1,5 @@
CAPI=2:
# Copyright lowRISC contributors.
# Copyright lowRISC contributors (OpenTitan project).
# Licensed under the Apache License, Version 2.0, see LICENSE for details.
# SPDX-License-Identifier: Apache-2.0
name: "lowrisc:dv:mem_bkdr_util"
@ -15,7 +15,7 @@ filesets:
- lowrisc:prim:cipher_pkg:0.1
- lowrisc:prim:secded:0.1
- lowrisc:ip:otp_ctrl_pkg:1.0
- lowrisc:ip:flash_ctrl_pkg
- lowrisc:ip_interfaces:flash_ctrl_pkg
- lowrisc:dv:digestpp_dpi
- lowrisc:ip:kmac_pkg
files:

View file

@ -1,4 +1,4 @@
// Copyright lowRISC contributors.
// Copyright lowRISC contributors (OpenTitan project).
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0

View file

@ -1,4 +1,4 @@
// Copyright lowRISC contributors.
// Copyright lowRISC contributors (OpenTitan project).
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0

View file

@ -1,4 +1,4 @@
// Copyright lowRISC contributors.
// Copyright lowRISC contributors (OpenTitan project).
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0
@ -136,7 +136,7 @@ virtual function void otp_write_hw_cfg0_partition(
write32(i + ManufStateOffset, manuf_state[i*8+:32]);
end
hw_cfg0_data = {<<32 {32'h0, manuf_state, device_id}};
hw_cfg0_data = {<<32 {manuf_state, device_id}};
digest = cal_digest(HwCfg0Idx, hw_cfg0_data);
write64(HwCfg0DigestOffset, digest);
@ -144,14 +144,15 @@ endfunction
virtual function void otp_write_hw_cfg1_partition(
bit [EnCsrngSwAppReadSize*8-1:0] en_csrng_sw_app_read,
bit [EnSramIfetchSize*8-1:0] en_sram_ifetch);
bit [EnSramIfetchSize*8-1:0] en_sram_ifetch,
bit [EnSramIfetchSize*8-1:0] dis_rv_dm_late_debug);
bit [HwCfg1DigestSize*8-1:0] digest;
bit [bus_params_pkg::BUS_DW-1:0] hw_cfg1_data[$];
write32(EnSramIfetchOffset, {en_csrng_sw_app_read, en_sram_ifetch});
write32(EnSramIfetchOffset, {dis_rv_dm_late_debug, en_csrng_sw_app_read, en_sram_ifetch});
hw_cfg1_data = {<<32 {32'h0, en_csrng_sw_app_read, en_sram_ifetch}};
hw_cfg1_data = {<<32 {32'h0, dis_rv_dm_late_debug, en_csrng_sw_app_read, en_sram_ifetch}};
digest = cal_digest(HwCfg1Idx, hw_cfg1_data);
write64(HwCfg1DigestOffset, digest);

View file

@ -1,4 +1,4 @@
// Copyright lowRISC contributors.
// Copyright lowRISC contributors (OpenTitan project).
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0

View file

@ -1,4 +1,4 @@
// Copyright lowRISC contributors.
// Copyright lowRISC contributors (OpenTitan project).
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0
@ -9,7 +9,7 @@
function logic [bus_params_pkg::BUS_AW-1:0] get_sram_encrypt_addr (
logic [bus_params_pkg::BUS_AW-1:0] addr,
logic [SRAM_BLOCK_WIDTH-1:0] nonce,
logic [31:0] extra_addr_bits = '0);
logic [31:0] extra_addr_bits);
int full_addr_width = addr_width + extra_addr_bits;
@ -43,8 +43,8 @@ function logic [38:0] get_sram_encrypt32_intg_data (
logic [31:0] data,
logic [SRAM_KEY_WIDTH-1:0] key,
logic [SRAM_BLOCK_WIDTH-1:0] nonce,
bit [38:0] flip_bits = '0,
int extra_addr_bits=0);
int extra_addr_bits,
bit [38:0] flip_bits = '0);
logic [38:0] integ_data;
logic [38:0] scrambled_data;
@ -77,9 +77,10 @@ endfunction : get_sram_encrypt32_intg_data
// It simply ignores the integrity bits.
virtual function logic [38:0] sram_encrypt_read32_integ(logic [bus_params_pkg::BUS_AW-1:0] addr,
logic [SRAM_KEY_WIDTH-1:0] key,
logic [SRAM_BLOCK_WIDTH-1:0] nonce);
logic [bus_params_pkg::BUS_AW-1:0] scr_addr = get_sram_encrypt_addr(addr, nonce);
logic [38:0] rdata39 = _sram_decrypt_read39(addr, scr_addr, key, nonce);
logic [SRAM_BLOCK_WIDTH-1:0] nonce,
int extra_addr_bits);
logic [bus_params_pkg::BUS_AW-1:0] scr_addr = get_sram_encrypt_addr(addr, nonce, extra_addr_bits);
logic [38:0] rdata39 = _sram_decrypt_read39(addr, scr_addr, key, nonce, extra_addr_bits);
return rdata39[31:0];
endfunction : sram_encrypt_read32_integ
@ -89,17 +90,19 @@ local function logic [38:0] _sram_decrypt_read39(
logic [bus_params_pkg::BUS_AW-1:0] addr,
logic [bus_params_pkg::BUS_AW-1:0] scr_addr,
logic [SRAM_KEY_WIDTH-1:0] key,
logic [SRAM_BLOCK_WIDTH-1:0] nonce);
logic [SRAM_BLOCK_WIDTH-1:0] nonce,
int extra_addr_bits);
logic [38:0] rdata39 = '0;
logic rdata_arr [] = new[39];
logic addr_arr [] = new[addr_width];
logic key_arr [] = new[SRAM_KEY_WIDTH];
logic nonce_arr [] = new[SRAM_BLOCK_WIDTH];
int full_addr_width = addr_width + extra_addr_bits;
key_arr = {<<{key}};
nonce_arr = {<<{nonce}};
for (int i = 0; i < addr_width; i++) begin
for (int i = 0; i < full_addr_width; i++) begin
addr_arr[i] = addr[addr_lsb + i];
end
@ -107,7 +110,7 @@ local function logic [38:0] _sram_decrypt_read39(
`uvm_info(`gfn, $sformatf("scr data: 0x%0x", rdata39), UVM_HIGH)
rdata_arr = {<<{rdata39}};
rdata_arr = sram_scrambler_pkg::decrypt_sram_data(
rdata_arr, 39, 39, addr_arr, addr_width, key_arr, nonce_arr
rdata_arr, 39, 39, addr_arr, full_addr_width, key_arr, nonce_arr
);
rdata39 = {<<{rdata_arr}};
return rdata39;
@ -119,11 +122,13 @@ virtual function void sram_encrypt_write32_integ(logic [bus_params_pkg::BUS_AW-1
logic [31:0] data,
logic [SRAM_KEY_WIDTH-1:0] key,
logic [SRAM_BLOCK_WIDTH-1:0] nonce,
int extra_addr_bits,
bit [38:0] flip_bits = 0);
logic [bus_params_pkg::BUS_AW-1:0] scr_addr = get_sram_encrypt_addr(addr, nonce);
_sram_encrypt_write39(addr, scr_addr, data, key, nonce, flip_bits);
logic [bus_params_pkg::BUS_AW-1:0] scr_addr = get_sram_encrypt_addr(addr, nonce, extra_addr_bits);
_sram_encrypt_write39(addr, scr_addr, data, key, nonce, extra_addr_bits, flip_bits);
endfunction : sram_encrypt_write32_integ
// This encrypts, possibly flips some bits to inject errors, and writes the resulting data
// to a scrambled address.
local function void _sram_encrypt_write39(logic [bus_params_pkg::BUS_AW-1:0] addr,
@ -131,8 +136,9 @@ local function void _sram_encrypt_write39(logic [bus_params_pkg::BUS_AW-1:0] add
logic [31:0] data,
logic [SRAM_KEY_WIDTH-1:0] key,
logic [SRAM_BLOCK_WIDTH-1:0] nonce,
int extra_addr_bits,
bit [38:0] flip_bits);
logic [38:0] scrambled_data = get_sram_encrypt32_intg_data(addr, data, key, nonce, flip_bits);
logic [38:0] scrambled_data = get_sram_encrypt32_intg_data(addr, data, key, nonce, extra_addr_bits, flip_bits);
write39integ(scr_addr, scrambled_data);
endfunction : _sram_encrypt_write39
@ -145,7 +151,8 @@ endfunction : _sram_encrypt_write39
virtual function void sram_inject_integ_error(logic [bus_params_pkg::BUS_AW-1:0] addr,
logic [bus_params_pkg::BUS_AW-1:0] scr_addr,
logic [SRAM_KEY_WIDTH-1:0] key,
logic [SRAM_BLOCK_WIDTH-1:0] nonce);
logic [SRAM_BLOCK_WIDTH-1:0] nonce,
int extra_addr_bits);
int max_attempts = 40;
int attempt = 0;
@ -154,8 +161,8 @@ virtual function void sram_inject_integ_error(logic [bus_params_pkg::BUS_AW-1:0]
bit [38:0] rdata_integ;
prim_secded_pkg::secded_inv_39_32_t dec;
// The specific bits to be flipped should be irrelevant.
_sram_encrypt_write39(addr, scr_addr, data, key, nonce, 39'h1001);
rdata_integ = _sram_decrypt_read39(addr, scr_addr, key, nonce);
_sram_encrypt_write39(addr, scr_addr, data, key, nonce, extra_addr_bits, 39'h1001);
rdata_integ = _sram_decrypt_read39(addr, scr_addr, key, nonce, extra_addr_bits);
dec = prim_secded_pkg::prim_secded_inv_39_32_dec(rdata_integ);
if (dec.err) begin
`uvm_info(`gfn, $sformatf(

View file

@ -1,4 +1,4 @@
// Copyright lowRISC contributors.
// Copyright lowRISC contributors (OpenTitan project).
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0

View file

@ -1,4 +1,4 @@
// Copyright lowRISC contributors.
// Copyright lowRISC contributors (OpenTitan project).
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0

View file

@ -1,4 +1,4 @@
// Copyright lowRISC contributors.
// Copyright lowRISC contributors (OpenTitan project).
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0
@ -40,7 +40,8 @@ package sram_scrambler_pkg;
// Fixed data block size - PRINCE cipher operates on 64-bit data blocks.
parameter int SRAM_BLOCK_WIDTH = 64;
parameter int NUM_ROUNDS = 2;
parameter int NUM_PRINCE_ROUNDS_HALF = 3;
parameter int NUM_SP_ROUNDS = 2;
// Create a generic typedef for dynamic array of logic to be able to return these values.
typedef logic state_t[];
@ -97,10 +98,10 @@ package sram_scrambler_pkg;
return state_out;
endfunction : perm_layer
// Performs NUM_ROUNDS full encryption rounds
// Performs NUM_SP_ROUNDS full encryption rounds
function automatic state_t sp_encrypt(state_t data, int width, state_t key);
logic state[] = new[width](data);
for (int i = 0; i < NUM_ROUNDS; i++) begin
for (int i = 0; i < NUM_SP_ROUNDS; i++) begin
// xor the data and key
for (int j = 0; j < width; j++) begin
state[j] = state[j] ^ key[j];
@ -119,10 +120,10 @@ package sram_scrambler_pkg;
return state;
endfunction : sp_encrypt
// Performs NUM_ROUNDS full decryption rounds
// Performs NUM_SP_ROUNDS full decryption rounds
function automatic state_t sp_decrypt(state_t data, int width, state_t key);
logic state[] = new[width](data);
for (int i = 0; i < NUM_ROUNDS; i++) begin
for (int i = 0; i < NUM_SP_ROUNDS; i++) begin
// xor data and key
for (int j = 0; j < width; j++) begin
state[j] = state[j] ^ key[j];
@ -147,7 +148,7 @@ package sram_scrambler_pkg;
// Should not be called directly.
function automatic state_t gen_keystream(logic addr[], int addr_width,
logic key[], logic nonce[]);
logic [NUM_ROUNDS-1:0][SRAM_BLOCK_WIDTH-1:0] prince_result_arr;
logic [NUM_PRINCE_ROUNDS_HALF-1:0][SRAM_BLOCK_WIDTH-1:0] prince_result_arr;
logic [SRAM_BLOCK_WIDTH-1:0] prince_plaintext;
logic [SRAM_KEY_WIDTH-1:0] prince_key;
@ -182,7 +183,7 @@ package sram_scrambler_pkg;
.key(prince_key),
.old_key_schedule(0),
.ciphertext(prince_result_arr));
prince_result = prince_result_arr[NUM_ROUNDS-1];
prince_result = prince_result_arr[NUM_PRINCE_ROUNDS_HALF-1];
key_out = {<< {prince_result}};
@ -234,7 +235,7 @@ package sram_scrambler_pkg;
endfunction : decrypt_sram_addr
// SRAM data encryption is more involved, we need to run 2 rounds of PRINCE on the nonce and key
// SRAM data encryption is more involved, we need to run 3 rounds of PRINCE on the nonce and key
// and then XOR the result with the data.
//
// Optionally, the XORed data can be passed through the S&P network.

View file

@ -1,5 +1,5 @@
CAPI=2:
# Copyright lowRISC contributors.
# Copyright lowRISC contributors (OpenTitan project).
# Licensed under the Apache License, Version 2.0, see LICENSE for details.
# SPDX-License-Identifier: Apache-2.0
name: "lowrisc:dv:mem_model"

View file

@ -1,4 +1,4 @@
// Copyright lowRISC contributors.
// Copyright lowRISC contributors (OpenTitan project).
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0

View file

@ -1,4 +1,4 @@
// Copyright lowRISC contributors.
// Copyright lowRISC contributors (OpenTitan project).
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0

View file

@ -1,5 +1,5 @@
CAPI=2:
# Copyright lowRISC contributors.
# Copyright lowRISC contributors (OpenTitan project).
# Licensed under the Apache License, Version 2.0, see LICENSE for details.
# SPDX-License-Identifier: Apache-2.0
name: "lowrisc:dv:push_pull_agent:0.1"

View file

@ -1,4 +1,4 @@
// Copyright lowRISC contributors.
// Copyright lowRISC contributors (OpenTitan project).
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0

View file

@ -1,4 +1,4 @@
// Copyright lowRISC contributors.
// Copyright lowRISC contributors (OpenTitan project).
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0
@ -142,12 +142,14 @@ class push_pull_agent_cfg #(parameter int HostDataWidth = 32,
// Setter method for the user data queues - must be called externally to place specific user-data
// to be sent by the driver.
function void add_h_user_data(bit [HostDataWidth-1:0] data);
`uvm_info(`gfn, $sformatf("Added h user data %p", data), UVM_HIGH)
h_user_data_q.push_back(data);
endfunction
// Setter method for the user data queues - must be called externally to place specific user-data
// to be sent by the driver.
function void add_d_user_data(bit [DeviceDataWidth-1:0] data);
`uvm_info(`gfn, $sformatf("Added d user data %p", data), UVM_HIGH)
d_user_data_q.push_back(data);
endfunction

View file

@ -1,4 +1,4 @@
// Copyright lowRISC contributors.
// Copyright lowRISC contributors (OpenTitan project).
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0

View file

@ -1,4 +1,4 @@
// Copyright lowRISC contributors.
// Copyright lowRISC contributors (OpenTitan project).
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0

View file

@ -1,4 +1,4 @@
// Copyright lowRISC contributors.
// Copyright lowRISC contributors (OpenTitan project).
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0

View file

@ -1,4 +1,4 @@
// Copyright lowRISC contributors.
// Copyright lowRISC contributors (OpenTitan project).
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0

View file

@ -1,4 +1,4 @@
// Copyright lowRISC contributors.
// Copyright lowRISC contributors (OpenTitan project).
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0

View file

@ -1,4 +1,4 @@
// Copyright lowRISC contributors.
// Copyright lowRISC contributors (OpenTitan project).
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0
@ -21,9 +21,10 @@ class push_pull_monitor #(parameter int HostDataWidth = 32,
task run_phase(uvm_phase phase);
@(posedge cfg.vif.rst_n);
cfg.in_reset = 0;
fork
monitor_reset();
collect_trans(phase);
collect_trans();
// Collect partial pull reqs for the reactive pull device agent.
collect_pull_req();
collect_cov();
@ -49,7 +50,7 @@ class push_pull_monitor #(parameter int HostDataWidth = 32,
// Collect fully-completed transactions.
//
// TODO : sample covergroups
virtual protected task collect_trans(uvm_phase phase);
virtual protected task collect_trans();
if (cfg.agent_type == PushAgent) begin
forever begin
@(cfg.vif.mon_cb);

View file

@ -1,4 +1,4 @@
// Copyright lowRISC contributors.
// Copyright lowRISC contributors (OpenTitan project).
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0

View file

@ -1,4 +1,4 @@
// Copyright lowRISC contributors.
// Copyright lowRISC contributors (OpenTitan project).
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0

View file

@ -1,4 +1,4 @@
// Copyright lowRISC contributors.
// Copyright lowRISC contributors (OpenTitan project).
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0

View file

@ -1,4 +1,4 @@
// Copyright lowRISC contributors.
// Copyright lowRISC contributors (OpenTitan project).
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0

View file

@ -1,4 +1,4 @@
// Copyright lowRISC contributors.
// Copyright lowRISC contributors (OpenTitan project).
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0

View file

@ -1,4 +1,4 @@
// Copyright lowRISC contributors.
// Copyright lowRISC contributors (OpenTitan project).
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0

View file

@ -1,5 +1,5 @@
CAPI=2:
# Copyright lowRISC contributors.
# Copyright lowRISC contributors (OpenTitan project).
# Licensed under the Apache License, Version 2.0, see LICENSE for details.
# SPDX-License-Identifier: Apache-2.0
name: "lowrisc:dv:str_utils"

View file

@ -1,4 +1,4 @@
// Copyright lowRISC contributors.
// Copyright lowRISC contributors (OpenTitan project).
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0

View file

@ -1,4 +1,4 @@
# Copyright lowRISC contributors.
# Copyright lowRISC contributors (OpenTitan project).
# Licensed under the Apache License, Version 2.0, see LICENSE for details.
# SPDX-License-Identifier: Apache-2.0

View file

@ -1,4 +1,4 @@
// Copyright lowRISC contributors.
// Copyright lowRISC contributors (OpenTitan project).
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0
{

View file

@ -1,4 +1,4 @@
// Copyright lowRISC contributors.
// Copyright lowRISC contributors (OpenTitan project).
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0
{
@ -52,14 +52,14 @@
// in two ways. One of them is setting the pre-processor macro `BUILD_SEED` to the seed value,
// which is done below. The SystemVerilog testbench sources can use the `BUILD_SEED` macro
// value to set some design constants (such as parameters) upon instantiation. The `BUILD_SEED`,
// if not set externally (by passing the --build-seed switch) is set to 1 in
// `hw/dv/sv/dv_utils/dv_macros.svh`. The other way is by passing the {seed} value to utility
// scripts that generate packages that contain randomized constants. These utility scripts can
// be invoked as a `pre_build_cmd`, wrapped within the `build_seed` sim mode in the DUT
// if not set externally (by passing the --build-seed switch) is set to 1 in
// `hw/dv/sv/dv_utils/dv_macros.svh`. The other way is by passing the {seed} value to utility
// scripts that generate packages that contain randomized constants. These utility scripts can
// be invoked as a `pre_build_cmd`, wrapped within the `build_seed` sim mode in the DUT
// simulation configuration Hjson file. All forms of build randomization must be wrapped within
// this `build_seed` sim mode. They will all use the same {seed} value, which allows us to
// deterministically reproduce failures. The `--build-seed` switch is expected to be passed
// when running the nightly regressions. The `seed` value set by dvsim is a 32-bit unsigned
// this `build_seed` sim mode. They will all use the same {seed} value, which allows us to
// deterministically reproduce failures. The `--build-seed` switch is expected to be passed
// when running the nightly regressions. The `seed` value set by dvsim is a 32-bit unsigned
// integer (unless specified on the command-line).
{
name: build_seed

View file

@ -1,4 +1,4 @@
// Copyright lowRISC contributors.
// Copyright lowRISC contributors (OpenTitan project).
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0
{

View file

@ -1,4 +1,4 @@
// Copyright lowRISC contributors.
// Copyright lowRISC contributors (OpenTitan project).
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0
{

View file

@ -1,4 +1,4 @@
// Copyright lowRISC contributors.
// Copyright lowRISC contributors (OpenTitan project).
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0
{

View file

@ -1,4 +1,4 @@
// Copyright lowRISC contributors.
// Copyright lowRISC contributors (OpenTitan project).
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0
{

View file

@ -1,4 +1,4 @@
// Copyright lowRISC contributors.
// Copyright lowRISC contributors (OpenTitan project).
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0
{

View file

@ -1,4 +1,4 @@
# Copyright lowRISC contributors.
# Copyright lowRISC contributors (OpenTitan project).
# Licensed under the Apache License, Version 2.0, see LICENSE for details.
# SPDX-License-Identifier: Apache-2.0
@ -124,8 +124,7 @@ ifneq (${sw_images},)
--output=label_kind | cut -f1 -d' '); \
if [[ $${kind} == "opentitan_test" \
|| $${bazel_label} == "//sw/device/lib/testing/test_rom:test_rom_sim_dv" \
|| $${bazel_label} == "//sw/device/silicon_creator/rom:rom_with_real_keys_sim_dv" \
|| $${bazel_label} == "//sw/device/silicon_creator/rom:rom_with_fake_keys_sim_dv" ]]; then \
|| $${bazel_label} == "//sw/device/silicon_creator/rom:mask_rom_sim_dv" ]]; then \
for artifact in $$($${bazel_cmd} cquery $${bazel_airgapped_opts} \
$${bazel_label} \
--ui_event_filters=-info \

View file

@ -1,4 +1,4 @@
// Copyright lowRISC contributors.
// Copyright lowRISC contributors (OpenTitan project).
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0
{

View file

@ -1,4 +1,4 @@
// Copyright lowRISC contributors.
// Copyright lowRISC contributors (OpenTitan project).
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0
{

View file

@ -1,4 +1,4 @@
// Copyright lowRISC contributors.
// Copyright lowRISC contributors (OpenTitan project).
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0
{

View file

@ -1,4 +1,4 @@
// Copyright lowRISC contributors.
// Copyright lowRISC contributors (OpenTitan project).
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0
{

View file

@ -1,4 +1,4 @@
// Copyright lowRISC contributors.
// Copyright lowRISC contributors (OpenTitan project).
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0
{

View file

@ -1,4 +1,4 @@
// Copyright lowRISC contributors.
// Copyright lowRISC contributors (OpenTitan project).
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0
{

View file

@ -1,4 +1,4 @@
// Copyright lowRISC contributors.
// Copyright lowRISC contributors (OpenTitan project).
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0
{

View file

@ -1,4 +1,4 @@
// Copyright lowRISC contributors.
// Copyright lowRISC contributors (OpenTitan project).
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0
{

View file

@ -1,4 +1,4 @@
// Copyright lowRISC contributors.
// Copyright lowRISC contributors (OpenTitan project).
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0
{

Some files were not shown because too many files have changed in this diff Show more