[flash_ctrl] Adding second eflash RAL,

adding test V1 Host Direct Read, adding file (xfile) for override

Xcelium XPROP settings (which are currently not working)

Signed-off-by: Nikola Miladinovic <nikola.miladinovic@ensilica.com>
diff --git a/hw/ip/flash_ctrl/dv/tb/tb.sv b/hw/ip/flash_ctrl/dv/tb/tb.sv
index c9b0fdf..6c5d617 100644
--- a/hw/ip/flash_ctrl/dv/tb/tb.sv
+++ b/hw/ip/flash_ctrl/dv/tb/tb.sv
@@ -27,13 +27,25 @@
   wire [NUM_MAX_INTERRUPTS-1:0] interrupts;
 
   // interfaces
-  clk_rst_if clk_rst_if(.clk(clk), .rst_n(rst_n));
-  rst_shadowed_if rst_shadowed_if(.rst_n(rst_n), .rst_shadowed_n(rst_shadowed_n));
-  pins_if #(NUM_MAX_INTERRUPTS) intr_if(interrupts);
-  pins_if #(1) devmode_if(devmode);
-  tl_if tl_if(.clk(clk), .rst_n(rst_n));
-  tl_if eflash_tl_if(.clk(clk), .rst_n(rst_n));
-  flash_ctrl_if flash_ctrl_if();
+  clk_rst_if clk_rst_if (
+    .clk  (clk),
+    .rst_n(rst_n)
+  );
+  rst_shadowed_if rst_shadowed_if (
+    .rst_n(rst_n),
+    .rst_shadowed_n(rst_shadowed_n)
+  );
+  pins_if #(NUM_MAX_INTERRUPTS) intr_if (interrupts);
+  pins_if #(1) devmode_if (devmode);
+  tl_if tl_if (
+    .clk  (clk),
+    .rst_n(rst_n)
+  );
+  tl_if eflash_tl_if (
+    .clk  (clk),
+    .rst_n(rst_n)
+  );
+  flash_ctrl_if flash_ctrl_if ();
 
   `DV_ALERT_IF_CONNECT
 
@@ -47,77 +59,77 @@
   end
 
   wire flash_test_v;
-  assign (pull1,pull0) flash_test_v = 1'b1;
+  assign (pull1, pull0) flash_test_v = 1'b1;
   wire [1:0] flash_test_mode_a;
-  assign (pull1,pull0) flash_test_mode_a = 2'h3;
+  assign (pull1, pull0) flash_test_mode_a = 2'h3;
 
   // dut
   flash_ctrl dut (
-    .clk_i           (clk      ),
-    .rst_ni          (rst_n    ),
-    .rst_shadowed_ni (rst_shadowed_n),
-    .clk_otp_i       (clk      ),
-    .rst_otp_ni      (rst_n    ),
+    .clk_i          (clk),
+    .rst_ni         (rst_n),
+    .rst_shadowed_ni(rst_shadowed_n),
+    .clk_otp_i      (clk),
+    .rst_otp_ni     (rst_n),
 
     // various tlul interfaces
-    .core_tl_i (tl_if.h2d),
-    .core_tl_o (tl_if.d2h),
-    .prim_tl_i ('0),
-    .prim_tl_o (),
-    .mem_tl_i  (eflash_tl_if.h2d),
-    .mem_tl_o  (eflash_tl_if.d2h),
+    .core_tl_i(tl_if.h2d),
+    .core_tl_o(tl_if.d2h),
+    .prim_tl_i('0),
+    .prim_tl_o(),
+    .mem_tl_i (eflash_tl_if.h2d),
+    .mem_tl_o (eflash_tl_if.d2h),
 
     // otp interface
-    .otp_i (otp_rsp),
-    .otp_o (otp_req),
+    .otp_i(otp_rsp),
+    .otp_o(otp_req),
 
     // various life cycle decode signals
-    .lc_creator_seed_sw_rw_en_i (flash_ctrl_if.lc_creator_seed_sw_rw_en),
-    .lc_owner_seed_sw_rw_en_i   (flash_ctrl_if.lc_owner_seed_sw_rw_en),
-    .lc_iso_part_sw_rd_en_i     (flash_ctrl_if.lc_iso_part_sw_rd_en),
-    .lc_iso_part_sw_wr_en_i     (flash_ctrl_if.lc_iso_part_sw_wr_en),
-    .lc_seed_hw_rd_en_i         (flash_ctrl_if.lc_seed_hw_rd_en),
-    .lc_nvm_debug_en_i          (flash_ctrl_if.lc_nvm_debug_en),
-    .lc_escalate_en_i           (flash_ctrl_if.lc_escalate_en),
+    .lc_creator_seed_sw_rw_en_i(flash_ctrl_if.lc_creator_seed_sw_rw_en),
+    .lc_owner_seed_sw_rw_en_i  (flash_ctrl_if.lc_owner_seed_sw_rw_en),
+    .lc_iso_part_sw_rd_en_i    (flash_ctrl_if.lc_iso_part_sw_rd_en),
+    .lc_iso_part_sw_wr_en_i    (flash_ctrl_if.lc_iso_part_sw_wr_en),
+    .lc_seed_hw_rd_en_i        (flash_ctrl_if.lc_seed_hw_rd_en),
+    .lc_nvm_debug_en_i         (flash_ctrl_if.lc_nvm_debug_en),
+    .lc_escalate_en_i          (flash_ctrl_if.lc_escalate_en),
 
     // life cycle rma handling
-    .rma_req_i  (flash_ctrl_if.rma_req),
-    .rma_seed_i (flash_ctrl_if.rma_seed),
-    .rma_ack_o  (flash_ctrl_if.rma_ack),
+    .rma_req_i (flash_ctrl_if.rma_req),
+    .rma_seed_i(flash_ctrl_if.rma_seed),
+    .rma_ack_o (flash_ctrl_if.rma_ack),
 
     // power manager indication
-    .pwrmgr_o (flash_ctrl_if.pwrmgr),
-    .keymgr_o (flash_ctrl_if.keymgr),
+    .pwrmgr_o(flash_ctrl_if.pwrmgr),
+    .keymgr_o(flash_ctrl_if.keymgr),
 
     // flash prim signals
-    .flash_power_ready_h_i  (1'b1  ),
-    .flash_power_down_h_i   (flash_power_down_h  ),
+    .flash_power_ready_h_i  (1'b1),
+    .flash_power_down_h_i   (flash_power_down_h),
     .flash_bist_enable_i    (prim_mubi_pkg::MuBi4False),
-    .flash_test_mode_a_io    (flash_test_mode_a),
-    .flash_test_voltage_h_io (flash_test_v),
+    .flash_test_mode_a_io   (flash_test_mode_a),
+    .flash_test_voltage_h_io(flash_test_v),
 
     // test
-    .scanmode_i              (prim_mubi_pkg::MuBi4False),
-    .scan_rst_ni             ('0),
-    .scan_en_i               ('0),
+    .scanmode_i (prim_mubi_pkg::MuBi4False),
+    .scan_rst_ni('0),
+    .scan_en_i  ('0),
 
     // JTAG
-    .cio_tck_i    (flash_ctrl_if.cio_tck),
-    .cio_tms_i    (flash_ctrl_if.cio_tms),
-    .cio_tdi_i    (flash_ctrl_if.cio_tdi),
-    .cio_tdo_en_o (flash_ctrl_if.cio_tdo_en),
-    .cio_tdo_o    (flash_ctrl_if.cio_tdo),
+    .cio_tck_i   (flash_ctrl_if.cio_tck),
+    .cio_tms_i   (flash_ctrl_if.cio_tms),
+    .cio_tdi_i   (flash_ctrl_if.cio_tdi),
+    .cio_tdo_en_o(flash_ctrl_if.cio_tdo_en),
+    .cio_tdo_o   (flash_ctrl_if.cio_tdo),
 
     // alerts and interrupts
-    .intr_prog_empty_o  (intr_prog_empty),
-    .intr_prog_lvl_o    (intr_prog_lvl  ),
-    .intr_rd_full_o     (intr_rd_full   ),
-    .intr_rd_lvl_o      (intr_rd_lvl    ),
-    .intr_op_done_o     (intr_op_done   ),
-    .intr_corr_err_o    (intr_err       ),
-    .alert_rx_i         (alert_rx       ),
-    .alert_tx_o         (alert_tx       ),
-    .flash_alert_o      (flash_ctrl_if.flash_alert)
+    .intr_prog_empty_o(intr_prog_empty),
+    .intr_prog_lvl_o  (intr_prog_lvl),
+    .intr_rd_full_o   (intr_rd_full),
+    .intr_rd_lvl_o    (intr_rd_lvl),
+    .intr_op_done_o   (intr_op_done),
+    .intr_corr_err_o  (intr_err),
+    .alert_rx_i       (alert_rx),
+    .alert_tx_o       (alert_tx),
+    .flash_alert_o    (flash_ctrl_if.flash_alert)
   );
 
   // -----------------------------------
@@ -179,11 +191,13 @@
 
       initial begin
         mem_bkdr_util m_mem_bkdr_util;
-        m_mem_bkdr_util = new(.name  ($sformatf("mem_bkdr_util[%0s][%0d]", part.name(), i)),
-                              .path  (`FLASH_DATA_MEM_HIER_STR(i)),
-                              .depth ($size(`FLASH_DATA_MEM_HIER(i))),
-                              .n_bits($bits(`FLASH_DATA_MEM_HIER(i))),
-                              .err_detection_scheme(mem_bkdr_util_pkg::EccHamming_76_68));
+        m_mem_bkdr_util = new(
+            .name($sformatf("mem_bkdr_util[%0s][%0d]", part.name(), i)),
+            .path(`FLASH_DATA_MEM_HIER_STR(i)),
+            .depth($size(`FLASH_DATA_MEM_HIER(i))),
+            .n_bits($bits(`FLASH_DATA_MEM_HIER(i))),
+            .err_detection_scheme(mem_bkdr_util_pkg::EccHamming_76_68)
+        );
         uvm_config_db#(mem_bkdr_util)::set(null, "*.env", m_mem_bkdr_util.get_name(),
                                            m_mem_bkdr_util);
         part = part.next();
@@ -192,11 +206,13 @@
       for (genvar j = 0; j < flash_ctrl_pkg::InfoTypes; j++) begin : gen_each_info_type
         initial begin
           mem_bkdr_util m_mem_bkdr_util;
-          m_mem_bkdr_util = new(.name  ($sformatf("mem_bkdr_util[%0s][%0d]", part.name(), i)),
-                                .path  (`FLASH_INFO_MEM_HIER_STR(i, j)),
-                                .depth ($size(`FLASH_INFO_MEM_HIER(i, j))),
-                                .n_bits($bits(`FLASH_INFO_MEM_HIER(i, j))),
-                                .err_detection_scheme(mem_bkdr_util_pkg::EccHamming_76_68));
+          m_mem_bkdr_util = new(
+              .name($sformatf("mem_bkdr_util[%0s][%0d]", part.name(), i)),
+              .path(`FLASH_INFO_MEM_HIER_STR(i, j)),
+              .depth($size(`FLASH_INFO_MEM_HIER(i, j))),
+              .n_bits($bits(`FLASH_INFO_MEM_HIER(i, j))),
+              .err_detection_scheme(mem_bkdr_util_pkg::EccHamming_76_68)
+          );
           uvm_config_db#(mem_bkdr_util)::set(null, "*.env", m_mem_bkdr_util.get_name(),
                                              m_mem_bkdr_util);
           part = part.next();
@@ -221,13 +237,16 @@
     // drive clk and rst_n from clk_if
     clk_rst_if.set_active();
     uvm_config_db#(virtual clk_rst_if)::set(null, "*.env", "clk_rst_vif", clk_rst_if);
+    uvm_config_db#(virtual clk_rst_if)::set(null, "*.env",
+                                            "clk_rst_vif_flash_ctrl_eflash_reg_block", clk_rst_if);
     uvm_config_db#(virtual rst_shadowed_if)::set(null, "*.env", "rst_shadowed_vif",
                                                  rst_shadowed_if);
     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_flash_ctrl_core_reg_block*", "vif",
                                        tl_if);
-    uvm_config_db#(virtual tl_if)::set(null, "*.env.m_eflash_tl_agent*", "vif", eflash_tl_if);
+    uvm_config_db#(virtual tl_if)::set(null, "*.env.m_tl_agent_flash_ctrl_eflash_reg_block*", "vif",
+                                       eflash_tl_if);
     uvm_config_db#(virtual flash_ctrl_if)::set(null, "*.env", "flash_ctrl_vif", flash_ctrl_if);
     $timeformat(-12, 0, " ps", 12);
     run_test();