Get xbar_sram from @kelvin_hw

- The source-of-truth for xbar_sram is the Crossbar module in
  @kelvin_hw. Pull the verilog from the external repository, and update
  the name we reference by from xbar_sram->Crossbar.

Change-Id: I1ef6794487ac9720f92ce3533d285bb0ffc03c56
diff --git a/doc/getting_started/setup_dv.md b/doc/getting_started/setup_dv.md
index f58f008..aa5a209 100644
--- a/doc/getting_started/setup_dv.md
+++ b/doc/getting_started/setup_dv.md
@@ -88,14 +88,3 @@
     $assertoff(0, tb.dut);
   end
   ```
-
-2. Add the following lines:
-  ```
-  `define STOP_COND 0
-  `define PRINTF_COND 0
-  ```
-  at the top of the files:
-  ```
-  hw/top_matcha/ip/ml_top/rtl/xbar_sram.v
-  ```
-  to turn off the $fatal statements and the unwanted debug messages
diff --git a/hw/top_matcha/ip/ml_top/ml_top.core b/hw/top_matcha/ip/ml_top/ml_top.core
index 127344a..21c614e 100644
--- a/hw/top_matcha/ip/ml_top/ml_top.core
+++ b/hw/top_matcha/ip/ml_top/ml_top.core
@@ -11,6 +11,7 @@
       - lowrisc:ip:tlul
       - lowrisc:prim:mubi
       - google:ip:kelvin
+      - google:ip:crossbar
 
     files:
       - rtl/ml_pkg.sv
@@ -18,7 +19,6 @@
       - rtl/ml_top_core_reg_top.sv
       - rtl/ml_dmem.sv
       - rtl/ml_top.sv
-      - rtl/xbar_sram.v
     file_type: systemVerilogSource
 
   files_verilator_waiver:
diff --git a/hw/top_matcha/ip/ml_top/rtl/ml_dmem.sv b/hw/top_matcha/ip/ml_top/rtl/ml_dmem.sv
index 211bdb9..2a294ec 100644
--- a/hw/top_matcha/ip/ml_top/rtl/ml_dmem.sv
+++ b/hw/top_matcha/ip/ml_top/rtl/ml_dmem.sv
@@ -16,7 +16,7 @@
 
 // This module implements the D-Mem inside the Vector Core Top Level
 //
-// This memory can be accessed either by TLUL or ML cores through xbar_sram
+// This memory can be accessed either by TLUL or ML cores through Crossbar
 
 module ml_dmem
   import ml_pkg::*;
@@ -97,7 +97,7 @@
   assign ram_cfg.ram_cfg = { 3'b0, volt_sel_i, 1'b0 };
   assign ram_cfg.rf_cfg = 5'b0;
 
-  // xbar_sram only support Byte-Mask for now. i.e 8 data bits per mask bit.
+  // Crossbar only support Byte-Mask for now. i.e 8 data bits per mask bit.
   assign xbar_wmask_b = {xbar_wmask[248], xbar_wmask[240], xbar_wmask[232], xbar_wmask[224],
                          xbar_wmask[216], xbar_wmask[208], xbar_wmask[200], xbar_wmask[192],
                          xbar_wmask[184], xbar_wmask[176], xbar_wmask[168], xbar_wmask[160],
@@ -168,7 +168,7 @@
 
 
   // crossbar
-  xbar_sram u_xbar_sram(
+  Crossbar u_crossbar(
     .clock            (clk_i),
     .reset            (~rst_ni),
     // In Port 0 -- TLUL-SRAM Adatper
diff --git a/hw/top_matcha/ip/ml_top/rtl/ml_top.sv b/hw/top_matcha/ip/ml_top/rtl/ml_top.sv
index 4d98fec..b70bc3f 100644
--- a/hw/top_matcha/ip/ml_top/rtl/ml_top.sv
+++ b/hw/top_matcha/ip/ml_top/rtl/ml_top.sv
@@ -158,7 +158,7 @@
   );
 
 
-  // Memory Block (inlcude xbar_sram and SRAM banks)
+  // Memory Block (inlcude Crossbar and SRAM banks)
   ml_dmem  u_ml_dmem (
     .rst_ni        ( rst_ni ),
     .clk_i         ( clk_i ),
diff --git a/hw/top_matcha/ip/ml_top/rtl/xbar_sram.v b/hw/top_matcha/ip/ml_top/rtl/xbar_sram.v
deleted file mode 100644
index a39b220..0000000
--- a/hw/top_matcha/ip/ml_top/rtl/xbar_sram.v
+++ /dev/null
@@ -1,405 +0,0 @@
-// Copyright 2023 Google LLC
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-//----------------------------------------------
-// Description: SRAM Crossbar
-// Files: xbar_sram.v
-//   --4 way
-//   --Address Width =22
-//   --Data Width    =256
-//   --ID Width      = 8
-//   --Maintain selection if no activitiy
-
-`define STOP_COND 0
-`define PRINTF_COND 0
-
-// SHA: b07e5a3168f36e80ae0186116e2bc9abef6595c3
-module xbar_sram(
-  input          clock,
-  input          reset,
-  input          io_in_0_cvalid,
-  output         io_in_0_cready,
-  input          io_in_0_cwrite,
-  input  [21:0]  io_in_0_caddr,
-  input  [7:0]   io_in_0_cid,
-  input  [255:0] io_in_0_wdata,
-  input  [31:0]  io_in_0_wmask,
-  output         io_in_0_rvalid,
-  output [7:0]   io_in_0_rid,
-  output [255:0] io_in_0_rdata,
-  input          io_in_1_cvalid,
-  output         io_in_1_cready,
-  input          io_in_1_cwrite,
-  input  [21:0]  io_in_1_caddr,
-  input  [7:0]   io_in_1_cid,
-  input  [255:0] io_in_1_wdata,
-  input  [31:0]  io_in_1_wmask,
-  output         io_in_1_rvalid,
-  output [7:0]   io_in_1_rid,
-  output [255:0] io_in_1_rdata,
-  input          io_in_2_cvalid,
-  output         io_in_2_cready,
-  input          io_in_2_cwrite,
-  input  [21:0]  io_in_2_caddr,
-  input  [7:0]   io_in_2_cid,
-  input  [255:0] io_in_2_wdata,
-  input  [31:0]  io_in_2_wmask,
-  output         io_in_2_rvalid,
-  output [7:0]   io_in_2_rid,
-  output [255:0] io_in_2_rdata,
-  input          io_in_3_cvalid,
-  output         io_in_3_cready,
-  input          io_in_3_cwrite,
-  input  [21:0]  io_in_3_caddr,
-  input  [7:0]   io_in_3_cid,
-  input  [255:0] io_in_3_wdata,
-  input  [31:0]  io_in_3_wmask,
-  output         io_in_3_rvalid,
-  output [7:0]   io_in_3_rid,
-  output [255:0] io_in_3_rdata,
-  output         io_out_valid,
-  output         io_out_write,
-  output [21:0]  io_out_addr,
-  output [255:0] io_out_wdata,
-  output [31:0]  io_out_wmask,
-  input  [255:0] io_out_rdata
-);
-`ifdef RANDOMIZE_REG_INIT
-  reg [31:0] _RAND_0;
-  reg [31:0] _RAND_1;
-  reg [31:0] _RAND_2;
-  reg [31:0] _RAND_3;
-  reg [31:0] _RAND_4;
-  reg [255:0] _RAND_5;
-  reg [31:0] _RAND_6;
-  reg [31:0] _RAND_7;
-  reg [31:0] _RAND_8;
-  reg [31:0] _RAND_9;
-  reg [31:0] _RAND_10;
-  reg [31:0] _RAND_11;
-  reg [31:0] _RAND_12;
-  reg [31:0] _RAND_13;
-  reg [255:0] _RAND_14;
-`endif // RANDOMIZE_REG_INIT
-  reg [3:0] csel0; // @[Crossbar.scala 61:24]
-  wire [1:0] _T_5 = csel0[0] + csel0[1]; // @[Bitwise.scala 48:55]
-  wire [1:0] _T_7 = csel0[2] + csel0[3]; // @[Bitwise.scala 48:55]
-  wire [2:0] _T_9 = _T_5 + _T_7; // @[Bitwise.scala 48:55]
-  wire  _T_13 = ~reset; // @[Crossbar.scala 62:11]
-  wire [3:0] _T_15 = {io_in_3_cvalid,io_in_2_cvalid,io_in_1_cvalid,io_in_0_cvalid}; // @[Crossbar.scala 88:18]
-  wire  _csel0_T = io_in_0_cvalid | io_in_1_cvalid; // @[Crossbar.scala 74:18]
-  wire  _csel0_T_2 = io_in_1_cvalid & ~io_in_0_cvalid; // @[Crossbar.scala 75:31]
-  wire  _csel0_T_5 = io_in_0_cvalid | io_in_1_cvalid | io_in_2_cvalid; // @[Crossbar.scala 74:18]
-  wire  _csel0_T_7 = io_in_2_cvalid & ~_csel0_T; // @[Crossbar.scala 75:31]
-  wire  _csel0_T_12 = io_in_3_cvalid & ~_csel0_T_5; // @[Crossbar.scala 75:31]
-  wire [3:0] _csel0_T_14 = {_csel0_T_12,_csel0_T_7,_csel0_T_2,io_in_0_cvalid}; // @[Cat.scala 31:58]
-  wire  cen0 = io_in_0_cvalid & csel0[0] | io_in_1_cvalid & csel0[1] | io_in_2_cvalid & csel0[2] | io_in_3_cvalid &
-    csel0[3]; // @[Crossbar.scala 102:18]
-  reg  cvalid1; // @[Crossbar.scala 113:26]
-  reg  cwrite1; // @[Crossbar.scala 114:26]
-  reg [16:0] cindex1; // @[Crossbar.scala 115:22]
-  reg [9:0] cid1; // @[Crossbar.scala 116:22]
-  reg [255:0] wdata1; // @[Crossbar.scala 117:22]
-  reg [31:0] wmask1; // @[Crossbar.scala 118:22]
-  wire [16:0] _T_22 = csel0[0] ? io_in_0_caddr[21:5] : 17'h0; // @[Crossbar.scala 128:24]
-  wire [8:0] _T_25 = {1'h0,io_in_0_cid}; // @[Cat.scala 31:58]
-  wire [8:0] _T_26 = csel0[0] ? _T_25 : 9'h0; // @[Crossbar.scala 129:24]
-  wire [9:0] _T_27 = {{1'd0}, _T_26}; // @[Crossbar.scala 129:19]
-  wire [255:0] _T_29 = csel0[0] ? io_in_0_wdata : 256'h0; // @[Crossbar.scala 130:24]
-  wire [31:0] _T_32 = csel0[0] ? io_in_0_wmask : 32'h0; // @[Crossbar.scala 131:24]
-  wire [16:0] _T_39 = csel0[1] ? io_in_1_caddr[21:5] : 17'h0; // @[Crossbar.scala 128:24]
-  wire [16:0] _T_40 = _T_22 | _T_39; // @[Crossbar.scala 128:19]
-  wire [8:0] _T_42 = {1'h1,io_in_1_cid}; // @[Cat.scala 31:58]
-  wire [8:0] _T_43 = csel0[1] ? _T_42 : 9'h0; // @[Crossbar.scala 129:24]
-  wire [9:0] _GEN_10 = {{1'd0}, _T_43}; // @[Crossbar.scala 129:19]
-  wire [9:0] _T_44 = _T_27 | _GEN_10; // @[Crossbar.scala 129:19]
-  wire [255:0] _T_46 = csel0[1] ? io_in_1_wdata : 256'h0; // @[Crossbar.scala 130:24]
-  wire [255:0] _T_47 = _T_29 | _T_46; // @[Crossbar.scala 130:19]
-  wire [31:0] _T_49 = csel0[1] ? io_in_1_wmask : 32'h0; // @[Crossbar.scala 131:24]
-  wire [31:0] _T_50 = _T_32 | _T_49; // @[Crossbar.scala 131:19]
-  wire [16:0] _T_56 = csel0[2] ? io_in_2_caddr[21:5] : 17'h0; // @[Crossbar.scala 128:24]
-  wire [16:0] _T_57 = _T_40 | _T_56; // @[Crossbar.scala 128:19]
-  wire [9:0] _T_59 = {2'h2,io_in_2_cid}; // @[Cat.scala 31:58]
-  wire [9:0] _T_60 = csel0[2] ? _T_59 : 10'h0; // @[Crossbar.scala 129:24]
-  wire [9:0] _T_61 = _T_44 | _T_60; // @[Crossbar.scala 129:19]
-  wire [255:0] _T_63 = csel0[2] ? io_in_2_wdata : 256'h0; // @[Crossbar.scala 130:24]
-  wire [255:0] _T_64 = _T_47 | _T_63; // @[Crossbar.scala 130:19]
-  wire [31:0] _T_66 = csel0[2] ? io_in_2_wmask : 32'h0; // @[Crossbar.scala 131:24]
-  wire [31:0] _T_67 = _T_50 | _T_66; // @[Crossbar.scala 131:19]
-  wire  cwriteNxt = csel0[0] & io_in_0_cwrite | csel0[1] & io_in_1_cwrite | csel0[2] & io_in_2_cwrite | csel0[3] &
-    io_in_3_cwrite; // @[Crossbar.scala 127:18]
-  wire [16:0] _T_72 = csel0[3] ? io_in_3_caddr[21:5] : 17'h0; // @[Crossbar.scala 128:24]
-  wire [16:0] cindexNxt = _T_57 | _T_72; // @[Crossbar.scala 128:19]
-  wire [9:0] _T_74 = {2'h3,io_in_3_cid}; // @[Cat.scala 31:58]
-  wire [9:0] _T_75 = csel0[3] ? _T_74 : 10'h0; // @[Crossbar.scala 129:24]
-  wire [9:0] cidNxt = _T_61 | _T_75; // @[Crossbar.scala 129:19]
-  wire [255:0] _T_77 = csel0[3] ? io_in_3_wdata : 256'h0; // @[Crossbar.scala 130:24]
-  wire [255:0] wdataNxt = _T_64 | _T_77; // @[Crossbar.scala 130:19]
-  wire [31:0] _T_79 = csel0[3] ? io_in_3_wmask : 32'h0; // @[Crossbar.scala 131:24]
-  wire [31:0] wmaskNxt = _T_67 | _T_79; // @[Crossbar.scala 131:19]
-  reg  rvalid2; // @[Crossbar.scala 161:26]
-  reg [9:0] rid2; // @[Crossbar.scala 162:22]
-  reg  rvalid3_0; // @[Crossbar.scala 169:26]
-  reg  rvalid3_1; // @[Crossbar.scala 169:26]
-  reg  rvalid3_2; // @[Crossbar.scala 169:26]
-  reg  rvalid3_3; // @[Crossbar.scala 169:26]
-  reg [7:0] rid3; // @[Crossbar.scala 170:22]
-  reg [255:0] rdata3; // @[Crossbar.scala 171:22]
-  assign io_in_0_cready = csel0[0]; // @[Crossbar.scala 93:31]
-  assign io_in_0_rvalid = rvalid3_0; // @[Crossbar.scala 187:23]
-  assign io_in_0_rid = rvalid3_0 ? rid3 : 8'h0; // @[Crossbar.scala 189:29]
-  assign io_in_0_rdata = rvalid3_0 ? rdata3 : 256'h0; // @[Crossbar.scala 188:29]
-  assign io_in_1_cready = csel0[1]; // @[Crossbar.scala 93:31]
-  assign io_in_1_rvalid = rvalid3_1; // @[Crossbar.scala 187:23]
-  assign io_in_1_rid = rvalid3_1 ? rid3 : 8'h0; // @[Crossbar.scala 189:29]
-  assign io_in_1_rdata = rvalid3_1 ? rdata3 : 256'h0; // @[Crossbar.scala 188:29]
-  assign io_in_2_cready = csel0[2]; // @[Crossbar.scala 93:31]
-  assign io_in_2_rvalid = rvalid3_2; // @[Crossbar.scala 187:23]
-  assign io_in_2_rid = rvalid3_2 ? rid3 : 8'h0; // @[Crossbar.scala 189:29]
-  assign io_in_2_rdata = rvalid3_2 ? rdata3 : 256'h0; // @[Crossbar.scala 188:29]
-  assign io_in_3_cready = csel0[3]; // @[Crossbar.scala 93:31]
-  assign io_in_3_rvalid = rvalid3_3; // @[Crossbar.scala 187:23]
-  assign io_in_3_rid = rvalid3_3 ? rid3 : 8'h0; // @[Crossbar.scala 189:29]
-  assign io_in_3_rdata = rvalid3_3 ? rdata3 : 256'h0; // @[Crossbar.scala 188:29]
-  assign io_out_valid = cvalid1; // @[Crossbar.scala 151:18]
-  assign io_out_write = cwrite1; // @[Crossbar.scala 152:18]
-  assign io_out_addr = {cindex1,5'h0}; // @[Cat.scala 31:58]
-  assign io_out_wdata = wdata1; // @[Crossbar.scala 154:18]
-  assign io_out_wmask = wmask1; // @[Crossbar.scala 155:18]
-  always @(posedge clock) begin
-    if (cen0) begin // @[Crossbar.scala 140:17]
-      cindex1 <= cindexNxt; // @[Crossbar.scala 143:15]
-    end
-    if (cen0) begin // @[Crossbar.scala 140:17]
-      cid1 <= cidNxt; // @[Crossbar.scala 144:15]
-    end
-    if (cen0) begin // @[Crossbar.scala 140:17]
-      if (cwriteNxt) begin // @[Crossbar.scala 145:24]
-        wdata1 <= wdataNxt; // @[Crossbar.scala 146:17]
-      end
-    end
-    if (cen0) begin // @[Crossbar.scala 140:17]
-      if (cwriteNxt) begin // @[Crossbar.scala 145:24]
-        wmask1 <= wmaskNxt; // @[Crossbar.scala 147:17]
-      end
-    end
-    rid2 <= cid1; // @[Crossbar.scala 165:13]
-    if (rvalid2) begin // @[Crossbar.scala 181:20]
-      rid3 <= rid2[7:0]; // @[Crossbar.scala 183:14]
-    end
-    if (rvalid2) begin // @[Crossbar.scala 181:20]
-      rdata3 <= io_out_rdata; // @[Crossbar.scala 182:14]
-    end
-    `ifndef SYNTHESIS
-    `ifdef STOP_COND
-      if (`STOP_COND) begin
-    `endif
-        if (~reset & ~(_T_9 == 3'h1)) begin
-          $fatal; // @[Crossbar.scala 62:11]
-        end
-    `ifdef STOP_COND
-      end
-    `endif
-    `endif // SYNTHESIS
-    `ifndef SYNTHESIS
-    `ifdef PRINTF_COND
-      if (`PRINTF_COND) begin
-    `endif
-        if (~reset & ~(_T_9 == 3'h1)) begin
-          $fwrite(32'h80000002,"Assertion failed\n    at Crossbar.scala:62 assert(PopCount(csel0) === 1.U)\n"); // @[Crossbar.scala 62:11]
-        end
-    `ifdef PRINTF_COND
-      end
-    `endif
-    `endif // SYNTHESIS
-    `ifndef SYNTHESIS
-    `ifdef STOP_COND
-      if (`STOP_COND) begin
-    `endif
-        if (_T_13 & ~(~(io_out_valid & io_out_addr[4:0] != 5'h0))) begin
-          $fatal; // @[Crossbar.scala 157:11]
-        end
-    `ifdef STOP_COND
-      end
-    `endif
-    `endif // SYNTHESIS
-    `ifndef SYNTHESIS
-    `ifdef PRINTF_COND
-      if (`PRINTF_COND) begin
-    `endif
-        if (_T_13 & ~(~(io_out_valid & io_out_addr[4:0] != 5'h0))) begin
-          $fwrite(32'h80000002,
-            "Assertion failed\n    at Crossbar.scala:157 assert(!(io.out.valid && io.out.addr(alsb - 1, 0) =/= 0.U))\n"
-            ); // @[Crossbar.scala 157:11]
-        end
-    `ifdef PRINTF_COND
-      end
-    `endif
-    `endif // SYNTHESIS
-  end
-  always @(posedge clock or posedge reset) begin
-    if (reset) begin // @[Crossbar.scala 88:34]
-      csel0 <= 4'h1; // @[Crossbar.scala 89:13]
-    end else if (_T_15 != 4'h0) begin // @[Crossbar.scala 61:24]
-      csel0 <= _csel0_T_14;
-    end
-  end
-  always @(posedge clock or posedge reset) begin
-    if (reset) begin // @[Crossbar.scala 102:18]
-      cvalid1 <= 1'h0;
-    end else begin
-      cvalid1 <= io_in_0_cvalid & csel0[0] | io_in_1_cvalid & csel0[1] | io_in_2_cvalid & csel0[2] | io_in_3_cvalid &
-        csel0[3];
-    end
-  end
-  always @(posedge clock or posedge reset) begin
-    if (reset) begin // @[Crossbar.scala 140:17]
-      cwrite1 <= 1'h0; // @[Crossbar.scala 142:15]
-    end else if (cen0) begin // @[Crossbar.scala 114:26]
-      cwrite1 <= cwriteNxt;
-    end
-  end
-  always @(posedge clock or posedge reset) begin
-    if (reset) begin // @[Crossbar.scala 164:24]
-      rvalid2 <= 1'h0;
-    end else begin
-      rvalid2 <= cvalid1 & ~cwrite1;
-    end
-  end
-  always @(posedge clock or posedge reset) begin
-    if (reset) begin // @[Crossbar.scala 175:31]
-      rvalid3_0 <= 1'h0;
-    end else begin
-      rvalid3_0 <= rvalid2 & rid2[9:8] == 2'h0;
-    end
-  end
-  always @(posedge clock or posedge reset) begin
-    if (reset) begin // @[Crossbar.scala 175:31]
-      rvalid3_1 <= 1'h0;
-    end else begin
-      rvalid3_1 <= rvalid2 & rid2[9:8] == 2'h1;
-    end
-  end
-  always @(posedge clock or posedge reset) begin
-    if (reset) begin // @[Crossbar.scala 175:31]
-      rvalid3_2 <= 1'h0;
-    end else begin
-      rvalid3_2 <= rvalid2 & rid2[9:8] == 2'h2;
-    end
-  end
-  always @(posedge clock or posedge reset) begin
-    if (reset) begin // @[Crossbar.scala 175:31]
-      rvalid3_3 <= 1'h0;
-    end else begin
-      rvalid3_3 <= rvalid2 & rid2[9:8] == 2'h3;
-    end
-  end
-// Register and memory initialization
-`ifdef RANDOMIZE_GARBAGE_ASSIGN
-`define RANDOMIZE
-`endif
-`ifdef RANDOMIZE_INVALID_ASSIGN
-`define RANDOMIZE
-`endif
-`ifdef RANDOMIZE_REG_INIT
-`define RANDOMIZE
-`endif
-`ifdef RANDOMIZE_MEM_INIT
-`define RANDOMIZE
-`endif
-`ifndef RANDOM
-`define RANDOM $random
-`endif
-`ifdef RANDOMIZE_MEM_INIT
-  integer initvar;
-`endif
-`ifndef SYNTHESIS
-`ifdef FIRRTL_BEFORE_INITIAL
-`FIRRTL_BEFORE_INITIAL
-`endif
-initial begin
-  `ifdef RANDOMIZE
-    `ifdef INIT_RANDOM
-      `INIT_RANDOM
-    `endif
-    `ifndef VERILATOR
-      `ifdef RANDOMIZE_DELAY
-        #`RANDOMIZE_DELAY begin end
-      `else
-        #0.002 begin end
-      `endif
-    `endif
-`ifdef RANDOMIZE_REG_INIT
-  _RAND_0 = {1{`RANDOM}};
-  csel0 = _RAND_0[3:0];
-  _RAND_1 = {1{`RANDOM}};
-  cvalid1 = _RAND_1[0:0];
-  _RAND_2 = {1{`RANDOM}};
-  cwrite1 = _RAND_2[0:0];
-  _RAND_3 = {1{`RANDOM}};
-  cindex1 = _RAND_3[16:0];
-  _RAND_4 = {1{`RANDOM}};
-  cid1 = _RAND_4[9:0];
-  _RAND_5 = {8{`RANDOM}};
-  wdata1 = _RAND_5[255:0];
-  _RAND_6 = {1{`RANDOM}};
-  wmask1 = _RAND_6[31:0];
-  _RAND_7 = {1{`RANDOM}};
-  rvalid2 = _RAND_7[0:0];
-  _RAND_8 = {1{`RANDOM}};
-  rid2 = _RAND_8[9:0];
-  _RAND_9 = {1{`RANDOM}};
-  rvalid3_0 = _RAND_9[0:0];
-  _RAND_10 = {1{`RANDOM}};
-  rvalid3_1 = _RAND_10[0:0];
-  _RAND_11 = {1{`RANDOM}};
-  rvalid3_2 = _RAND_11[0:0];
-  _RAND_12 = {1{`RANDOM}};
-  rvalid3_3 = _RAND_12[0:0];
-  _RAND_13 = {1{`RANDOM}};
-  rid3 = _RAND_13[7:0];
-  _RAND_14 = {8{`RANDOM}};
-  rdata3 = _RAND_14[255:0];
-`endif // RANDOMIZE_REG_INIT
-  if (reset) begin
-    csel0 = 4'h1;
-  end
-  if (reset) begin
-    cvalid1 = 1'h0;
-  end
-  if (reset) begin
-    cwrite1 = 1'h0;
-  end
-  if (reset) begin
-    rvalid2 = 1'h0;
-  end
-  if (reset) begin
-    rvalid3_0 = 1'h0;
-  end
-  if (reset) begin
-    rvalid3_1 = 1'h0;
-  end
-  if (reset) begin
-    rvalid3_2 = 1'h0;
-  end
-  if (reset) begin
-    rvalid3_3 = 1'h0;
-  end
-  `endif // RANDOMIZE
-end // initial
-`ifdef FIRRTL_AFTER_INITIAL
-`FIRRTL_AFTER_INITIAL
-`endif
-`endif // SYNTHESIS
-endmodule