[edn/dv] parameter names/usage, fips bit

Signed-off-by: Steve Nelson <steve.nelson@wdc.com>
diff --git a/hw/ip/edn/dv/env/edn_env.core b/hw/ip/edn/dv/env/edn_env.core
index 89e6f10..7556b46 100644
--- a/hw/ip/edn/dv/env/edn_env.core
+++ b/hw/ip/edn/dv/env/edn_env.core
@@ -10,6 +10,7 @@
       - lowrisc:dv:ralgen
       - lowrisc:dv:cip_lib
       - lowrisc:dv:push_pull_agent
+      - lowrisc:dv:entropy_src_env
     files:
       - edn_env_pkg.sv
       - edn_env_cfg.sv: {is_include_file: true}
diff --git a/hw/ip/edn/dv/env/edn_env.sv b/hw/ip/edn/dv/env/edn_env.sv
index bab94d9..967e6d1 100644
--- a/hw/ip/edn/dv/env/edn_env.sv
+++ b/hw/ip/edn/dv/env/edn_env.sv
@@ -10,28 +10,29 @@
   );
   `uvm_component_utils(edn_env)
 
-  push_pull_agent#(.HostDataWidth(csrng_pkg::GENBITS_BUS_WIDTH))  m_csrng_genbits_agent;
-  push_pull_agent#(.HostDataWidth(edn_pkg::ENDPOINT_BUS_WIDTH))
-                   m_endpoint_agent [NUM_ENDPOINTS-1:0];
+  push_pull_agent#(.HostDataWidth(entropy_src_env_pkg::FIPS_CSRNG_BUS_WIDTH))
+       m_csrng_genbits_agent;
+  push_pull_agent#(.HostDataWidth(edn_env_pkg::FIPS_ENDPOINT_BUS_WIDTH))
+       m_endpoint_agent [NUM_ENDPOINTS-1:0];
 
   `uvm_component_new
 
   function void build_phase(uvm_phase phase);
     super.build_phase(phase);
     // create components
-    m_csrng_genbits_agent = push_pull_agent#(.HostDataWidth(csrng_pkg::GENBITS_BUS_WIDTH))
-                            ::type_id::create("m_csrng_genbits_agent", this);
-    uvm_config_db#(push_pull_agent_cfg#(.HostDataWidth(csrng_pkg::GENBITS_BUS_WIDTH)))::set
-                  (this, "m_csrng_genbits_agent*", "cfg", cfg.m_csrng_genbits_agent_cfg);
+    m_csrng_genbits_agent = push_pull_agent#(.HostDataWidth(entropy_src_env_pkg::
+                            FIPS_CSRNG_BUS_WIDTH))::type_id::create("m_csrng_genbits_agent", this);
+    uvm_config_db#(push_pull_agent_cfg#(.HostDataWidth(entropy_src_env_pkg::FIPS_CSRNG_BUS_WIDTH)))::
+                  set(this, "m_csrng_genbits_agent*", "cfg", cfg.m_csrng_genbits_agent_cfg);
     cfg.m_csrng_genbits_agent_cfg.agent_type = push_pull_agent_pkg::PushAgent;
     cfg.m_csrng_genbits_agent_cfg.if_mode    = dv_utils_pkg::Host;
 
     for (int i = 0; i < NUM_ENDPOINTS; i++) begin
       string endpoint_agent_name = $sformatf("m_endpoint_agent[%0d]", i);
-      m_endpoint_agent[i] = push_pull_agent#(.HostDataWidth(edn_pkg::ENDPOINT_BUS_WIDTH))::type_id::
-                            create(endpoint_agent_name, this);
-      uvm_config_db#(push_pull_agent_cfg#(.HostDataWidth(edn_pkg::ENDPOINT_BUS_WIDTH)))::set
-                    (this, $sformatf("%0s*", endpoint_agent_name),
+      m_endpoint_agent[i] = push_pull_agent#(.HostDataWidth(edn_env_pkg::FIPS_ENDPOINT_BUS_WIDTH))::
+                            type_id::create(endpoint_agent_name, this);
+      uvm_config_db#(push_pull_agent_cfg#(.HostDataWidth(edn_env_pkg::FIPS_ENDPOINT_BUS_WIDTH)))::
+          set(this, $sformatf("%0s*", endpoint_agent_name),
                     "cfg", cfg.m_endpoint_agent_cfg[i]);
       cfg.m_endpoint_agent_cfg[NUM_ENDPOINTS-1].agent_type = push_pull_agent_pkg::PullAgent;
       cfg.m_endpoint_agent_cfg[NUM_ENDPOINTS-1].if_mode    = dv_utils_pkg::Host;
diff --git a/hw/ip/edn/dv/env/edn_env_cfg.sv b/hw/ip/edn/dv/env/edn_env_cfg.sv
index 2cba5e4..6760cd8 100644
--- a/hw/ip/edn/dv/env/edn_env_cfg.sv
+++ b/hw/ip/edn/dv/env/edn_env_cfg.sv
@@ -5,10 +5,10 @@
 class edn_env_cfg extends cip_base_env_cfg #(.RAL_T(edn_reg_block));
 
   // ext component cfgs
-  rand push_pull_agent_cfg#(.HostDataWidth(csrng_pkg::GENBITS_BUS_WIDTH))
-                            m_csrng_genbits_agent_cfg;
-  rand push_pull_agent_cfg#(.HostDataWidth(edn_pkg::ENDPOINT_BUS_WIDTH))
-                            m_endpoint_agent_cfg [NUM_ENDPOINTS:0];
+  rand push_pull_agent_cfg#(.HostDataWidth(entropy_src_env_pkg::FIPS_CSRNG_BUS_WIDTH))
+            m_csrng_genbits_agent_cfg;
+  rand push_pull_agent_cfg#(.HostDataWidth(edn_env_pkg::FIPS_ENDPOINT_BUS_WIDTH))
+            m_endpoint_agent_cfg [NUM_ENDPOINTS:0];
 
   `uvm_object_utils_begin(edn_env_cfg)
     `uvm_field_object(m_csrng_genbits_agent_cfg, UVM_DEFAULT)
@@ -22,12 +22,13 @@
   virtual function void initialize(bit [31:0] csr_base_addr = '1);
     super.initialize(csr_base_addr);
     // create config objects
-    m_csrng_genbits_agent_cfg = push_pull_agent_cfg#(.HostDataWidth(csrng_pkg::GENBITS_BUS_WIDTH))
-                                ::type_id::create("m_csrng_genbits_agent_cfg");
+    m_csrng_genbits_agent_cfg = push_pull_agent_cfg#(.HostDataWidth(entropy_src_env_pkg::
+                                FIPS_CSRNG_BUS_WIDTH))::type_id::create("m_csrng_genbits_agent_cfg");
 
     for (int i = 0; i < NUM_ENDPOINTS; i++) begin
-      m_endpoint_agent_cfg[i] = push_pull_agent_cfg#(.HostDataWidth(edn_pkg::ENDPOINT_BUS_WIDTH))::
-                                type_id::create($sformatf("m_endpoint_agent_cfg[$0d]", i));
+      m_endpoint_agent_cfg[i] = push_pull_agent_cfg#(.HostDataWidth(edn_env_pkg::
+                                FIPS_ENDPOINT_BUS_WIDTH))::type_id::create
+                                ($sformatf("m_endpoint_agent_cfg[$0d]", i));
     end
 
     // set num_interrupts & num_alerts
diff --git a/hw/ip/edn/dv/env/edn_env_pkg.sv b/hw/ip/edn/dv/env/edn_env_pkg.sv
index 1871331..415d1f1 100644
--- a/hw/ip/edn/dv/env/edn_env_pkg.sv
+++ b/hw/ip/edn/dv/env/edn_env_pkg.sv
@@ -14,6 +14,8 @@
   import csr_utils_pkg::*;
   import edn_ral_pkg::*;
 
+  parameter int  FIPS_ENDPOINT_BUS_WIDTH = entropy_src_pkg::FIPS_BUS_WIDTH + edn_pkg::ENDPOINT_BUS_WIDTH;
+
   // macro includes
   `include "uvm_macros.svh"
   `include "dv_macros.svh"
diff --git a/hw/ip/edn/dv/env/edn_scoreboard.sv b/hw/ip/edn/dv/env/edn_scoreboard.sv
index d0e95f8..15956de 100644
--- a/hw/ip/edn/dv/env/edn_scoreboard.sv
+++ b/hw/ip/edn/dv/env/edn_scoreboard.sv
@@ -12,10 +12,12 @@
   // local variables
 
   // TLM agent fifos
-  uvm_tlm_analysis_fifo #(push_pull_item#(.HostDataWidth(edn_pkg::ENDPOINT_BUS_WIDTH))) endpoint_fifo[NUM_ENDPOINTS-1:0];
+  uvm_tlm_analysis_fifo#(push_pull_item#(.HostDataWidth(edn_env_pkg::FIPS_ENDPOINT_BUS_WIDTH)))
+      endpoint_fifo[NUM_ENDPOINTS-1:0];
 
   // local queues to hold incoming packets pending comparison
-  push_pull_item#(.HostDataWidth(edn_pkg::ENDPOINT_BUS_WIDTH)) endpoint_q[$][NUM_ENDPOINTS-1:0];
+  push_pull_item#(.HostDataWidth(edn_env_pkg::FIPS_ENDPOINT_BUS_WIDTH))
+      endpoint_q[$][NUM_ENDPOINTS-1:0];
 
   `uvm_component_new
 
diff --git a/hw/ip/edn/dv/env/edn_virtual_sequencer.sv b/hw/ip/edn/dv/env/edn_virtual_sequencer.sv
index da18e84..b19ee3e 100644
--- a/hw/ip/edn/dv/env/edn_virtual_sequencer.sv
+++ b/hw/ip/edn/dv/env/edn_virtual_sequencer.sv
@@ -8,8 +8,8 @@
   );
   `uvm_component_utils(edn_virtual_sequencer)
 
-  push_pull_sequencer#(.HostDataWidth(edn_pkg::ENDPOINT_BUS_WIDTH))
-                       endpoint_sequencer_h[NUM_ENDPOINTS-1:0];
+  push_pull_sequencer#(.HostDataWidth(edn_env_pkg::FIPS_ENDPOINT_BUS_WIDTH))
+       endpoint_sequencer_h[NUM_ENDPOINTS-1:0];
 
   `uvm_component_new
 
diff --git a/hw/ip/edn/dv/tb.sv b/hw/ip/edn/dv/tb.sv
index 05aceaf..48835d8 100644
--- a/hw/ip/edn/dv/tb.sv
+++ b/hw/ip/edn/dv/tb.sv
@@ -27,8 +27,9 @@
   pins_if #(NUM_MAX_INTERRUPTS) intr_if(interrupts);
   pins_if #(1) devmode_if(devmode);
   tl_if tl_if(.clk(clk), .rst_n(rst_n));
-  push_pull_if#(.HostDataWidth(csrng_pkg::GENBITS_BUS_WIDTH))   csrng_genbits_if();
-  push_pull_if#(.HostDataWidth(edn_pkg::ENDPOINT_BUS_WIDTH))    endpoint_if[NUM_ENDPOINTS-1:0]();
+  push_pull_if#(.HostDataWidth(entropy_src_env_pkg::FIPS_CSRNG_BUS_WIDTH))  csrng_genbits_if();
+  push_pull_if#(.HostDataWidth(edn_env_pkg::FIPS_ENDPOINT_BUS_WIDTH))
+       endpoint_if[NUM_ENDPOINTS-1:0]();
 
   // dut
   edn#(.NumEndPoints(NUM_ENDPOINTS)) dut (
@@ -53,17 +54,18 @@
   assign csrng_rsp.csrng_rsp_ack   = 1'b0;
   assign csrng_rsp.csrng_rsp_sts   = 1'b0;
   assign csrng_rsp.genbits_valid   = csrng_genbits_if.valid;
-  assign csrng_rsp.genbits_fips    = 1'b0;
-  assign csrng_rsp.genbits_bus     = csrng_genbits_if.data;
+  assign csrng_rsp.genbits_fips    = csrng_genbits_if.h_data[entropy_src_pkg::CSRNG_BUS_WIDTH];
+  assign csrng_rsp.genbits_bus     = csrng_genbits_if.h_data[entropy_src_pkg::CSRNG_BUS_WIDTH-1:0];
   assign csrng_genbits_if.ready    = csrng_req.genbits_ready;
 
   for (genvar i = 0; i < NUM_ENDPOINTS; i++) begin : gen_endpoint_if
     assign endpoint_req[i].edn_req = endpoint_if[i].req;
     assign endpoint_if[i].ack      = endpoint_rsp[i].edn_ack;
-    assign endpoint_if[i].data     = endpoint_rsp[i].edn_bus;
+    assign endpoint_if[i].d_data   = {endpoint_rsp[i].edn_fips, endpoint_rsp[i].edn_bus};
     initial begin
-      uvm_config_db#(virtual push_pull_if#(.HostDataWidth(edn_pkg::ENDPOINT_BUS_WIDTH)))::set(null,
-                     $sformatf("*.env.m_endpoint_agent[%0d]*", i), "vif", endpoint_if[i]);
+      uvm_config_db#(virtual push_pull_if#(.HostDataWidth(edn_env_pkg::FIPS_ENDPOINT_BUS_WIDTH)))::
+          set(null, $sformatf("*.env.m_endpoint_agent[%0d]*", i),
+                     "vif", endpoint_if[i]);
     end
   end
 
@@ -77,8 +79,8 @@
     uvm_config_db#(intr_vif)::set(null, "*.env", "intr_vif", intr_if);
     uvm_config_db#(devmode_vif)::set(null, "*.env", "devmode_vif", devmode_if);
     uvm_config_db#(virtual tl_if)::set(null, "*.env.m_tl_agent*", "vif", tl_if);
-    uvm_config_db#(virtual push_pull_if#(.HostDataWidth(csrng_pkg::GENBITS_BUS_WIDTH)))::set
-                  (null, "*.env.m_csrng_genbits_agent*", "vif", csrng_genbits_if);
+    uvm_config_db#(virtual push_pull_if#(.HostDataWidth(entropy_src_env_pkg::FIPS_CSRNG_BUS_WIDTH)))
+                   ::set(null, "*.env.m_csrng_genbits_agent*", "vif", csrng_genbits_if);
     $timeformat(-12, 0, " ps", 12);
     run_test();
   end