blob: 0a114bc237698e10de6086b571e365962b7fe565 [file] [log] [blame] [edit]
module AXI4LiteCSR( // @[:@3.2]
input clock, // @[:@4.4]
input reset, // @[:@5.4]
input [4:0] io_ctl_aw_awaddr, // @[:@6.4]
input io_ctl_aw_awvalid, // @[:@6.4]
output io_ctl_aw_awready, // @[:@6.4]
input [11:0] io_ctl_aw_awid, // @[:@6.4]
input [31:0] io_ctl_w_wdata, // @[:@6.4]
input io_ctl_w_wvalid, // @[:@6.4]
output io_ctl_w_wready, // @[:@6.4]
output io_ctl_b_bvalid, // @[:@6.4]
input io_ctl_b_bready, // @[:@6.4]
output [11:0] io_ctl_b_bid, // @[:@6.4]
input [4:0] io_ctl_ar_araddr, // @[:@6.4]
input io_ctl_ar_arvalid, // @[:@6.4]
output io_ctl_ar_arready, // @[:@6.4]
input [11:0] io_ctl_ar_arid, // @[:@6.4]
output [31:0] io_ctl_r_rdata, // @[:@6.4]
output io_ctl_r_rvalid, // @[:@6.4]
input io_ctl_r_rready, // @[:@6.4]
output [11:0] io_ctl_r_rid, // @[:@6.4]
output [4:0] io_bus_addr, // @[:@6.4]
output [31:0] io_bus_dataOut, // @[:@6.4]
input [31:0] io_bus_dataIn, // @[:@6.4]
output io_bus_write // @[:@6.4]
);
reg [2:0] state; // @[AXI4LiteCSR.scala 36:22:@8.4]
reg [31:0] _RAND_0;
reg awready; // @[AXI4LiteCSR.scala 38:24:@9.4]
reg [31:0] _RAND_1;
reg wready; // @[AXI4LiteCSR.scala 39:23:@10.4]
reg [31:0] _RAND_2;
reg bvalid; // @[AXI4LiteCSR.scala 40:23:@11.4]
reg [31:0] _RAND_3;
reg arready; // @[AXI4LiteCSR.scala 43:24:@14.4]
reg [31:0] _RAND_4;
reg rvalid; // @[AXI4LiteCSR.scala 44:23:@15.4]
reg [31:0] _RAND_5;
reg [4:0] addr; // @[AXI4LiteCSR.scala 47:21:@18.4]
reg [31:0] _RAND_6;
reg write; // @[AXI4LiteCSR.scala 50:22:@20.4]
reg [31:0] _RAND_7;
reg [31:0] dataOut; // @[AXI4LiteCSR.scala 51:24:@21.4]
reg [31:0] _RAND_8;
reg [11:0] transaction_id; // @[AXI4LiteCSR.scala 53:31:@22.4]
reg [31:0] _RAND_9;
wire _T_138; // @[Conditional.scala 37:30:@37.4]
wire [2:0] _GEN_0; // @[AXI4LiteCSR.scala 83:36:@49.8]
wire [11:0] _GEN_1; // @[AXI4LiteCSR.scala 83:36:@49.8]
wire [2:0] _GEN_2; // @[AXI4LiteCSR.scala 80:30:@44.6]
wire [11:0] _GEN_3; // @[AXI4LiteCSR.scala 80:30:@44.6]
wire _T_144; // @[Conditional.scala 37:30:@55.6]
wire _T_146; // @[AXI4LiteCSR.scala 90:30:@58.8]
wire [2:0] _T_147; // @[AXI4LiteCSR.scala 92:33:@61.10]
wire [2:0] _GEN_4; // @[AXI4LiteCSR.scala 90:41:@59.8]
wire [4:0] _GEN_5; // @[AXI4LiteCSR.scala 90:41:@59.8]
wire _GEN_7; // @[AXI4LiteCSR.scala 90:41:@59.8]
wire _T_150; // @[Conditional.scala 37:30:@68.8]
wire _T_152; // @[AXI4LiteCSR.scala 99:28:@71.10]
wire [2:0] _GEN_8; // @[AXI4LiteCSR.scala 99:38:@72.10]
wire _GEN_9; // @[AXI4LiteCSR.scala 99:38:@72.10]
wire _T_154; // @[Conditional.scala 37:30:@78.10]
wire _T_156; // @[AXI4LiteCSR.scala 106:30:@81.12]
wire [2:0] _T_157; // @[AXI4LiteCSR.scala 107:33:@83.14]
wire [4:0] _GEN_10; // @[AXI4LiteCSR.scala 106:41:@82.12]
wire [2:0] _GEN_11; // @[AXI4LiteCSR.scala 106:41:@82.12]
wire _GEN_12; // @[AXI4LiteCSR.scala 106:41:@82.12]
wire _T_159; // @[Conditional.scala 37:30:@90.12]
wire _T_161; // @[AXI4LiteCSR.scala 114:28:@93.14]
wire [2:0] _GEN_13; // @[AXI4LiteCSR.scala 114:38:@94.14]
wire [31:0] _GEN_14; // @[AXI4LiteCSR.scala 114:38:@94.14]
wire _GEN_15; // @[AXI4LiteCSR.scala 114:38:@94.14]
wire _GEN_16; // @[AXI4LiteCSR.scala 114:38:@94.14]
wire _T_164; // @[Conditional.scala 37:30:@102.14]
wire _T_167; // @[AXI4LiteCSR.scala 124:28:@106.16]
wire [2:0] _GEN_17; // @[AXI4LiteCSR.scala 124:38:@107.16]
wire _GEN_18; // @[AXI4LiteCSR.scala 124:38:@107.16]
wire _GEN_19; // @[Conditional.scala 39:67:@103.14]
wire _GEN_20; // @[Conditional.scala 39:67:@103.14]
wire [2:0] _GEN_21; // @[Conditional.scala 39:67:@103.14]
wire _GEN_22; // @[Conditional.scala 39:67:@91.12]
wire [2:0] _GEN_23; // @[Conditional.scala 39:67:@91.12]
wire [31:0] _GEN_24; // @[Conditional.scala 39:67:@91.12]
wire _GEN_25; // @[Conditional.scala 39:67:@91.12]
wire _GEN_26; // @[Conditional.scala 39:67:@91.12]
wire _GEN_27; // @[Conditional.scala 39:67:@79.10]
wire [4:0] _GEN_28; // @[Conditional.scala 39:67:@79.10]
wire [2:0] _GEN_29; // @[Conditional.scala 39:67:@79.10]
wire _GEN_30; // @[Conditional.scala 39:67:@79.10]
wire [31:0] _GEN_31; // @[Conditional.scala 39:67:@79.10]
wire _GEN_32; // @[Conditional.scala 39:67:@79.10]
wire _GEN_33; // @[Conditional.scala 39:67:@79.10]
wire _GEN_34; // @[Conditional.scala 39:67:@69.8]
wire [2:0] _GEN_35; // @[Conditional.scala 39:67:@69.8]
wire _GEN_36; // @[Conditional.scala 39:67:@69.8]
wire [4:0] _GEN_37; // @[Conditional.scala 39:67:@69.8]
wire _GEN_38; // @[Conditional.scala 39:67:@69.8]
wire [31:0] _GEN_39; // @[Conditional.scala 39:67:@69.8]
wire _GEN_40; // @[Conditional.scala 39:67:@69.8]
wire _GEN_41; // @[Conditional.scala 39:67:@69.8]
wire _GEN_42; // @[Conditional.scala 39:67:@56.6]
wire [2:0] _GEN_43; // @[Conditional.scala 39:67:@56.6]
wire [4:0] _GEN_44; // @[Conditional.scala 39:67:@56.6]
wire _GEN_46; // @[Conditional.scala 39:67:@56.6]
wire _GEN_47; // @[Conditional.scala 39:67:@56.6]
wire _GEN_48; // @[Conditional.scala 39:67:@56.6]
wire [31:0] _GEN_49; // @[Conditional.scala 39:67:@56.6]
wire _GEN_50; // @[Conditional.scala 39:67:@56.6]
wire _GEN_51; // @[Conditional.scala 39:67:@56.6]
wire _GEN_52; // @[Conditional.scala 40:58:@38.4]
wire _GEN_53; // @[Conditional.scala 40:58:@38.4]
wire _GEN_55; // @[Conditional.scala 40:58:@38.4]
wire [11:0] _GEN_56; // @[Conditional.scala 40:58:@38.4]
wire [2:0] _GEN_57; // @[Conditional.scala 40:58:@38.4]
wire _GEN_58; // @[Conditional.scala 40:58:@38.4]
wire [4:0] _GEN_59; // @[Conditional.scala 40:58:@38.4]
wire _GEN_60; // @[Conditional.scala 40:58:@38.4]
wire _GEN_61; // @[Conditional.scala 40:58:@38.4]
wire [31:0] _GEN_62; // @[Conditional.scala 40:58:@38.4]
assign _T_138 = 3'h0 == state; // @[Conditional.scala 37:30:@37.4]
assign _GEN_0 = io_ctl_ar_arvalid ? 3'h1 : state; // @[AXI4LiteCSR.scala 83:36:@49.8]
assign _GEN_1 = io_ctl_ar_arvalid ? io_ctl_ar_arid : 12'h0; // @[AXI4LiteCSR.scala 83:36:@49.8]
assign _GEN_2 = io_ctl_aw_awvalid ? 3'h3 : _GEN_0; // @[AXI4LiteCSR.scala 80:30:@44.6]
assign _GEN_3 = io_ctl_aw_awvalid ? io_ctl_aw_awid : _GEN_1; // @[AXI4LiteCSR.scala 80:30:@44.6]
assign _T_144 = 3'h1 == state; // @[Conditional.scala 37:30:@55.6]
assign _T_146 = io_ctl_ar_arvalid & arready; // @[AXI4LiteCSR.scala 90:30:@58.8]
assign _T_147 = io_ctl_ar_araddr[4:2]; // @[AXI4LiteCSR.scala 92:33:@61.10]
assign _GEN_4 = _T_146 ? 3'h2 : state; // @[AXI4LiteCSR.scala 90:41:@59.8]
assign _GEN_5 = _T_146 ? {{2'd0}, _T_147} : addr; // @[AXI4LiteCSR.scala 90:41:@59.8]
assign _GEN_7 = _T_146 ? 1'h0 : 1'h1; // @[AXI4LiteCSR.scala 90:41:@59.8]
assign _T_150 = 3'h2 == state; // @[Conditional.scala 37:30:@68.8]
assign _T_152 = io_ctl_r_rready & rvalid; // @[AXI4LiteCSR.scala 99:28:@71.10]
assign _GEN_8 = _T_152 ? 3'h0 : state; // @[AXI4LiteCSR.scala 99:38:@72.10]
assign _GEN_9 = _T_152 ? 1'h0 : 1'h1; // @[AXI4LiteCSR.scala 99:38:@72.10]
assign _T_154 = 3'h3 == state; // @[Conditional.scala 37:30:@78.10]
assign _T_156 = io_ctl_aw_awvalid & awready; // @[AXI4LiteCSR.scala 106:30:@81.12]
assign _T_157 = io_ctl_aw_awaddr[4:2]; // @[AXI4LiteCSR.scala 107:33:@83.14]
assign _GEN_10 = _T_156 ? {{2'd0}, _T_157} : addr; // @[AXI4LiteCSR.scala 106:41:@82.12]
assign _GEN_11 = _T_156 ? 3'h4 : state; // @[AXI4LiteCSR.scala 106:41:@82.12]
assign _GEN_12 = _T_156 ? 1'h0 : 1'h1; // @[AXI4LiteCSR.scala 106:41:@82.12]
assign _T_159 = 3'h4 == state; // @[Conditional.scala 37:30:@90.12]
assign _T_161 = io_ctl_w_wvalid & wready; // @[AXI4LiteCSR.scala 114:28:@93.14]
assign _GEN_13 = _T_161 ? 3'h5 : state; // @[AXI4LiteCSR.scala 114:38:@94.14]
assign _GEN_14 = _T_161 ? io_ctl_w_wdata : dataOut; // @[AXI4LiteCSR.scala 114:38:@94.14]
assign _GEN_15 = _T_161 ? 1'h1 : write; // @[AXI4LiteCSR.scala 114:38:@94.14]
assign _GEN_16 = _T_161 ? 1'h0 : 1'h1; // @[AXI4LiteCSR.scala 114:38:@94.14]
assign _T_164 = 3'h5 == state; // @[Conditional.scala 37:30:@102.14]
assign _T_167 = io_ctl_b_bready & bvalid; // @[AXI4LiteCSR.scala 124:28:@106.16]
assign _GEN_17 = _T_167 ? 3'h0 : state; // @[AXI4LiteCSR.scala 124:38:@107.16]
assign _GEN_18 = _T_167 ? 1'h0 : 1'h1; // @[AXI4LiteCSR.scala 124:38:@107.16]
assign _GEN_19 = _T_164 ? 1'h0 : wready; // @[Conditional.scala 39:67:@103.14]
assign _GEN_20 = _T_164 ? _GEN_18 : bvalid; // @[Conditional.scala 39:67:@103.14]
assign _GEN_21 = _T_164 ? _GEN_17 : state; // @[Conditional.scala 39:67:@103.14]
assign _GEN_22 = _T_159 ? _GEN_16 : _GEN_19; // @[Conditional.scala 39:67:@91.12]
assign _GEN_23 = _T_159 ? _GEN_13 : _GEN_21; // @[Conditional.scala 39:67:@91.12]
assign _GEN_24 = _T_159 ? _GEN_14 : dataOut; // @[Conditional.scala 39:67:@91.12]
assign _GEN_25 = _T_159 ? _GEN_15 : write; // @[Conditional.scala 39:67:@91.12]
assign _GEN_26 = _T_159 ? bvalid : _GEN_20; // @[Conditional.scala 39:67:@91.12]
assign _GEN_27 = _T_154 ? _GEN_12 : awready; // @[Conditional.scala 39:67:@79.10]
assign _GEN_28 = _T_154 ? _GEN_10 : addr; // @[Conditional.scala 39:67:@79.10]
assign _GEN_29 = _T_154 ? _GEN_11 : _GEN_23; // @[Conditional.scala 39:67:@79.10]
assign _GEN_30 = _T_154 ? wready : _GEN_22; // @[Conditional.scala 39:67:@79.10]
assign _GEN_31 = _T_154 ? dataOut : _GEN_24; // @[Conditional.scala 39:67:@79.10]
assign _GEN_32 = _T_154 ? write : _GEN_25; // @[Conditional.scala 39:67:@79.10]
assign _GEN_33 = _T_154 ? bvalid : _GEN_26; // @[Conditional.scala 39:67:@79.10]
assign _GEN_34 = _T_150 ? _GEN_9 : rvalid; // @[Conditional.scala 39:67:@69.8]
assign _GEN_35 = _T_150 ? _GEN_8 : _GEN_29; // @[Conditional.scala 39:67:@69.8]
assign _GEN_36 = _T_150 ? awready : _GEN_27; // @[Conditional.scala 39:67:@69.8]
assign _GEN_37 = _T_150 ? addr : _GEN_28; // @[Conditional.scala 39:67:@69.8]
assign _GEN_38 = _T_150 ? wready : _GEN_30; // @[Conditional.scala 39:67:@69.8]
assign _GEN_39 = _T_150 ? dataOut : _GEN_31; // @[Conditional.scala 39:67:@69.8]
assign _GEN_40 = _T_150 ? write : _GEN_32; // @[Conditional.scala 39:67:@69.8]
assign _GEN_41 = _T_150 ? bvalid : _GEN_33; // @[Conditional.scala 39:67:@69.8]
assign _GEN_42 = _T_144 ? _GEN_7 : arready; // @[Conditional.scala 39:67:@56.6]
assign _GEN_43 = _T_144 ? _GEN_4 : _GEN_35; // @[Conditional.scala 39:67:@56.6]
assign _GEN_44 = _T_144 ? _GEN_5 : _GEN_37; // @[Conditional.scala 39:67:@56.6]
assign _GEN_46 = _T_144 ? rvalid : _GEN_34; // @[Conditional.scala 39:67:@56.6]
assign _GEN_47 = _T_144 ? awready : _GEN_36; // @[Conditional.scala 39:67:@56.6]
assign _GEN_48 = _T_144 ? wready : _GEN_38; // @[Conditional.scala 39:67:@56.6]
assign _GEN_49 = _T_144 ? dataOut : _GEN_39; // @[Conditional.scala 39:67:@56.6]
assign _GEN_50 = _T_144 ? write : _GEN_40; // @[Conditional.scala 39:67:@56.6]
assign _GEN_51 = _T_144 ? bvalid : _GEN_41; // @[Conditional.scala 39:67:@56.6]
assign _GEN_52 = _T_138 ? 1'h0 : _GEN_46; // @[Conditional.scala 40:58:@38.4]
assign _GEN_53 = _T_138 ? 1'h0 : _GEN_51; // @[Conditional.scala 40:58:@38.4]
assign _GEN_55 = _T_138 ? 1'h0 : _GEN_50; // @[Conditional.scala 40:58:@38.4]
assign _GEN_56 = _T_138 ? _GEN_3 : transaction_id; // @[Conditional.scala 40:58:@38.4]
assign _GEN_57 = _T_138 ? _GEN_2 : _GEN_43; // @[Conditional.scala 40:58:@38.4]
assign _GEN_58 = _T_138 ? arready : _GEN_42; // @[Conditional.scala 40:58:@38.4]
assign _GEN_59 = _T_138 ? addr : _GEN_44; // @[Conditional.scala 40:58:@38.4]
assign _GEN_60 = _T_138 ? awready : _GEN_47; // @[Conditional.scala 40:58:@38.4]
assign _GEN_61 = _T_138 ? wready : _GEN_48; // @[Conditional.scala 40:58:@38.4]
assign _GEN_62 = _T_138 ? dataOut : _GEN_49; // @[Conditional.scala 40:58:@38.4]
assign io_ctl_aw_awready = awready; // @[AXI4LiteCSR.scala 59:21:@26.4]
assign io_ctl_w_wready = wready; // @[AXI4LiteCSR.scala 60:19:@27.4]
assign io_ctl_b_bvalid = bvalid; // @[AXI4LiteCSR.scala 61:19:@28.4]
assign io_ctl_b_bid = transaction_id; // @[AXI4LiteCSR.scala 63:16:@30.4]
assign io_ctl_ar_arready = arready; // @[AXI4LiteCSR.scala 65:21:@31.4]
assign io_ctl_r_rdata = io_bus_dataIn; // @[AXI4LiteCSR.scala 55:18:@23.4]
assign io_ctl_r_rvalid = rvalid; // @[AXI4LiteCSR.scala 66:19:@32.4]
assign io_ctl_r_rid = transaction_id; // @[AXI4LiteCSR.scala 56:16:@24.4]
assign io_bus_addr = addr; // @[AXI4LiteCSR.scala 71:15:@36.4]
assign io_bus_dataOut = dataOut; // @[AXI4LiteCSR.scala 57:18:@25.4]
assign io_bus_write = write; // @[AXI4LiteCSR.scala 70:16:@35.4]
`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
integer initvar;
initial begin
`ifdef INIT_RANDOM
`INIT_RANDOM
`endif
`ifndef VERILATOR
#0.002 begin end
`endif
`ifdef RANDOMIZE_REG_INIT
_RAND_0 = {1{`RANDOM}};
state = _RAND_0[2:0];
`endif // RANDOMIZE_REG_INIT
`ifdef RANDOMIZE_REG_INIT
_RAND_1 = {1{`RANDOM}};
awready = _RAND_1[0:0];
`endif // RANDOMIZE_REG_INIT
`ifdef RANDOMIZE_REG_INIT
_RAND_2 = {1{`RANDOM}};
wready = _RAND_2[0:0];
`endif // RANDOMIZE_REG_INIT
`ifdef RANDOMIZE_REG_INIT
_RAND_3 = {1{`RANDOM}};
bvalid = _RAND_3[0:0];
`endif // RANDOMIZE_REG_INIT
`ifdef RANDOMIZE_REG_INIT
_RAND_4 = {1{`RANDOM}};
arready = _RAND_4[0:0];
`endif // RANDOMIZE_REG_INIT
`ifdef RANDOMIZE_REG_INIT
_RAND_5 = {1{`RANDOM}};
rvalid = _RAND_5[0:0];
`endif // RANDOMIZE_REG_INIT
`ifdef RANDOMIZE_REG_INIT
_RAND_6 = {1{`RANDOM}};
addr = _RAND_6[4:0];
`endif // RANDOMIZE_REG_INIT
`ifdef RANDOMIZE_REG_INIT
_RAND_7 = {1{`RANDOM}};
write = _RAND_7[0:0];
`endif // RANDOMIZE_REG_INIT
`ifdef RANDOMIZE_REG_INIT
_RAND_8 = {1{`RANDOM}};
dataOut = _RAND_8[31:0];
`endif // RANDOMIZE_REG_INIT
`ifdef RANDOMIZE_REG_INIT
_RAND_9 = {1{`RANDOM}};
transaction_id = _RAND_9[11:0];
`endif // RANDOMIZE_REG_INIT
end
`endif // RANDOMIZE
always @(posedge clock) begin
if (reset) begin
state <= 3'h0;
end else begin
if (_T_138) begin
if (io_ctl_aw_awvalid) begin
state <= 3'h3;
end else begin
if (io_ctl_ar_arvalid) begin
state <= 3'h1;
end
end
end else begin
if (_T_144) begin
if (_T_146) begin
state <= 3'h2;
end
end else begin
if (_T_150) begin
if (_T_152) begin
state <= 3'h0;
end
end else begin
if (_T_154) begin
if (_T_156) begin
state <= 3'h4;
end
end else begin
if (_T_159) begin
if (_T_161) begin
state <= 3'h5;
end
end else begin
if (_T_164) begin
if (_T_167) begin
state <= 3'h0;
end
end
end
end
end
end
end
end
if (reset) begin
awready <= 1'h0;
end else begin
if (!(_T_138)) begin
if (!(_T_144)) begin
if (!(_T_150)) begin
if (_T_154) begin
if (_T_156) begin
awready <= 1'h0;
end else begin
awready <= 1'h1;
end
end
end
end
end
end
if (reset) begin
wready <= 1'h0;
end else begin
if (!(_T_138)) begin
if (!(_T_144)) begin
if (!(_T_150)) begin
if (!(_T_154)) begin
if (_T_159) begin
if (_T_161) begin
wready <= 1'h0;
end else begin
wready <= 1'h1;
end
end else begin
if (_T_164) begin
wready <= 1'h0;
end
end
end
end
end
end
end
if (reset) begin
bvalid <= 1'h0;
end else begin
if (_T_138) begin
bvalid <= 1'h0;
end else begin
if (!(_T_144)) begin
if (!(_T_150)) begin
if (!(_T_154)) begin
if (!(_T_159)) begin
if (_T_164) begin
if (_T_167) begin
bvalid <= 1'h0;
end else begin
bvalid <= 1'h1;
end
end
end
end
end
end
end
end
if (reset) begin
arready <= 1'h0;
end else begin
if (!(_T_138)) begin
if (_T_144) begin
if (_T_146) begin
arready <= 1'h0;
end else begin
arready <= 1'h1;
end
end
end
end
if (reset) begin
rvalid <= 1'h0;
end else begin
if (_T_138) begin
rvalid <= 1'h0;
end else begin
if (!(_T_144)) begin
if (_T_150) begin
if (_T_152) begin
rvalid <= 1'h0;
end else begin
rvalid <= 1'h1;
end
end
end
end
end
if (reset) begin
addr <= 5'h0;
end else begin
if (!(_T_138)) begin
if (_T_144) begin
if (_T_146) begin
addr <= {{2'd0}, _T_147};
end
end else begin
if (!(_T_150)) begin
if (_T_154) begin
if (_T_156) begin
addr <= {{2'd0}, _T_157};
end
end
end
end
end
end
if (reset) begin
write <= 1'h0;
end else begin
if (_T_138) begin
write <= 1'h0;
end else begin
if (!(_T_144)) begin
if (!(_T_150)) begin
if (!(_T_154)) begin
if (_T_159) begin
if (_T_161) begin
write <= 1'h1;
end
end
end
end
end
end
end
if (reset) begin
dataOut <= 32'h0;
end else begin
if (!(_T_138)) begin
if (!(_T_144)) begin
if (!(_T_150)) begin
if (!(_T_154)) begin
if (_T_159) begin
if (_T_161) begin
dataOut <= io_ctl_w_wdata;
end
end
end
end
end
end
end
if (reset) begin
transaction_id <= 12'h0;
end else begin
if (_T_138) begin
if (io_ctl_aw_awvalid) begin
transaction_id <= io_ctl_aw_awid;
end else begin
if (io_ctl_ar_arvalid) begin
transaction_id <= io_ctl_ar_arid;
end else begin
transaction_id <= 12'h0;
end
end
end
end
end
endmodule
module AxiPeriph( // @[:@113.2]
input clock, // @[:@114.4]
input reset, // @[:@115.4]
input [4:0] io_axi_s0_aw_awaddr, // @[:@116.4]
input [2:0] io_axi_s0_aw_awprot, // @[:@116.4]
input io_axi_s0_aw_awvalid, // @[:@116.4]
output io_axi_s0_aw_awready, // @[:@116.4]
input [11:0] io_axi_s0_aw_awid, // @[:@116.4]
input [31:0] io_axi_s0_w_wdata, // @[:@116.4]
input [3:0] io_axi_s0_w_wstrb, // @[:@116.4]
input io_axi_s0_w_wvalid, // @[:@116.4]
output io_axi_s0_w_wready, // @[:@116.4]
input [11:0] io_axi_s0_w_wid, // @[:@116.4]
output [1:0] io_axi_s0_b_bresp, // @[:@116.4]
output io_axi_s0_b_bvalid, // @[:@116.4]
input io_axi_s0_b_bready, // @[:@116.4]
output [11:0] io_axi_s0_b_bid, // @[:@116.4]
input [4:0] io_axi_s0_ar_araddr, // @[:@116.4]
input [2:0] io_axi_s0_ar_arprot, // @[:@116.4]
input io_axi_s0_ar_arvalid, // @[:@116.4]
output io_axi_s0_ar_arready, // @[:@116.4]
input [11:0] io_axi_s0_ar_arid, // @[:@116.4]
output [31:0] io_axi_s0_r_rdata, // @[:@116.4]
output [1:0] io_axi_s0_r_rresp, // @[:@116.4]
output io_axi_s0_r_rvalid, // @[:@116.4]
input io_axi_s0_r_rready, // @[:@116.4]
output [11:0] io_axi_s0_r_rid, // @[:@116.4]
output [1:0] io_leds, // @[:@116.4]
output io_irqOut // @[:@116.4]
);
wire slaveInterface_clock; // @[Axi.scala 37:32:@128.4]
wire slaveInterface_reset; // @[Axi.scala 37:32:@128.4]
wire [4:0] slaveInterface_io_ctl_aw_awaddr; // @[Axi.scala 37:32:@128.4]
wire slaveInterface_io_ctl_aw_awvalid; // @[Axi.scala 37:32:@128.4]
wire slaveInterface_io_ctl_aw_awready; // @[Axi.scala 37:32:@128.4]
wire [11:0] slaveInterface_io_ctl_aw_awid; // @[Axi.scala 37:32:@128.4]
wire [31:0] slaveInterface_io_ctl_w_wdata; // @[Axi.scala 37:32:@128.4]
wire slaveInterface_io_ctl_w_wvalid; // @[Axi.scala 37:32:@128.4]
wire slaveInterface_io_ctl_w_wready; // @[Axi.scala 37:32:@128.4]
wire slaveInterface_io_ctl_b_bvalid; // @[Axi.scala 37:32:@128.4]
wire slaveInterface_io_ctl_b_bready; // @[Axi.scala 37:32:@128.4]
wire [11:0] slaveInterface_io_ctl_b_bid; // @[Axi.scala 37:32:@128.4]
wire [4:0] slaveInterface_io_ctl_ar_araddr; // @[Axi.scala 37:32:@128.4]
wire slaveInterface_io_ctl_ar_arvalid; // @[Axi.scala 37:32:@128.4]
wire slaveInterface_io_ctl_ar_arready; // @[Axi.scala 37:32:@128.4]
wire [11:0] slaveInterface_io_ctl_ar_arid; // @[Axi.scala 37:32:@128.4]
wire [31:0] slaveInterface_io_ctl_r_rdata; // @[Axi.scala 37:32:@128.4]
wire slaveInterface_io_ctl_r_rvalid; // @[Axi.scala 37:32:@128.4]
wire slaveInterface_io_ctl_r_rready; // @[Axi.scala 37:32:@128.4]
wire [11:0] slaveInterface_io_ctl_r_rid; // @[Axi.scala 37:32:@128.4]
wire [4:0] slaveInterface_io_bus_addr; // @[Axi.scala 37:32:@128.4]
wire [31:0] slaveInterface_io_bus_dataOut; // @[Axi.scala 37:32:@128.4]
wire [31:0] slaveInterface_io_bus_dataIn; // @[Axi.scala 37:32:@128.4]
wire slaveInterface_io_bus_write; // @[Axi.scala 37:32:@128.4]
reg [31:0] regs_0; // @[Axi.scala 36:23:@127.4]
reg [31:0] _RAND_0;
reg [31:0] regs_1; // @[Axi.scala 36:23:@127.4]
reg [31:0] _RAND_1;
reg [31:0] regs_2; // @[Axi.scala 36:23:@127.4]
reg [31:0] _RAND_2;
reg [31:0] regs_3; // @[Axi.scala 36:23:@127.4]
reg [31:0] _RAND_3;
reg [31:0] regs_4; // @[Axi.scala 36:23:@127.4]
reg [31:0] _RAND_4;
reg [31:0] regs_5; // @[Axi.scala 36:23:@127.4]
reg [31:0] _RAND_5;
reg [31:0] regs_6; // @[Axi.scala 36:23:@127.4]
reg [31:0] _RAND_6;
reg [31:0] regs_7; // @[Axi.scala 36:23:@127.4]
reg [31:0] _RAND_7;
wire [2:0] _T_182; // @[:@160.6]
wire [31:0] _regs_T_182; // @[Axi.scala 47:40:@161.6 Axi.scala 47:40:@161.6]
wire [31:0] _GEN_0; // @[Axi.scala 47:40:@161.6]
wire [31:0] _GEN_1; // @[Axi.scala 47:40:@161.6]
wire [31:0] _GEN_2; // @[Axi.scala 47:40:@161.6]
wire [31:0] _GEN_3; // @[Axi.scala 47:40:@161.6]
wire [31:0] _GEN_4; // @[Axi.scala 47:40:@161.6]
wire [31:0] _GEN_5; // @[Axi.scala 47:40:@161.6]
wire [31:0] _GEN_6; // @[Axi.scala 47:40:@161.6]
wire [31:0] _GEN_7; // @[Axi.scala 47:40:@161.6]
wire [31:0] _GEN_8; // @[Axi.scala 46:39:@159.4]
wire [31:0] _GEN_9; // @[Axi.scala 46:39:@159.4]
wire [31:0] _GEN_10; // @[Axi.scala 46:39:@159.4]
wire [31:0] _GEN_11; // @[Axi.scala 46:39:@159.4]
wire [31:0] _GEN_12; // @[Axi.scala 46:39:@159.4]
wire [31:0] _GEN_13; // @[Axi.scala 46:39:@159.4]
wire [31:0] _GEN_14; // @[Axi.scala 46:39:@159.4]
wire [31:0] _GEN_15; // @[Axi.scala 46:39:@159.4]
wire [31:0] _GEN_17; // @[Axi.scala 50:34:@164.4]
wire [31:0] _GEN_18; // @[Axi.scala 50:34:@164.4]
wire [31:0] _GEN_19; // @[Axi.scala 50:34:@164.4]
wire [31:0] _GEN_20; // @[Axi.scala 50:34:@164.4]
wire [31:0] _GEN_21; // @[Axi.scala 50:34:@164.4]
wire [31:0] _GEN_22; // @[Axi.scala 50:34:@164.4]
AXI4LiteCSR slaveInterface ( // @[Axi.scala 37:32:@128.4]
.clock(slaveInterface_clock),
.reset(slaveInterface_reset),
.io_ctl_aw_awaddr(slaveInterface_io_ctl_aw_awaddr),
.io_ctl_aw_awvalid(slaveInterface_io_ctl_aw_awvalid),
.io_ctl_aw_awready(slaveInterface_io_ctl_aw_awready),
.io_ctl_aw_awid(slaveInterface_io_ctl_aw_awid),
.io_ctl_w_wdata(slaveInterface_io_ctl_w_wdata),
.io_ctl_w_wvalid(slaveInterface_io_ctl_w_wvalid),
.io_ctl_w_wready(slaveInterface_io_ctl_w_wready),
.io_ctl_b_bvalid(slaveInterface_io_ctl_b_bvalid),
.io_ctl_b_bready(slaveInterface_io_ctl_b_bready),
.io_ctl_b_bid(slaveInterface_io_ctl_b_bid),
.io_ctl_ar_araddr(slaveInterface_io_ctl_ar_araddr),
.io_ctl_ar_arvalid(slaveInterface_io_ctl_ar_arvalid),
.io_ctl_ar_arready(slaveInterface_io_ctl_ar_arready),
.io_ctl_ar_arid(slaveInterface_io_ctl_ar_arid),
.io_ctl_r_rdata(slaveInterface_io_ctl_r_rdata),
.io_ctl_r_rvalid(slaveInterface_io_ctl_r_rvalid),
.io_ctl_r_rready(slaveInterface_io_ctl_r_rready),
.io_ctl_r_rid(slaveInterface_io_ctl_r_rid),
.io_bus_addr(slaveInterface_io_bus_addr),
.io_bus_dataOut(slaveInterface_io_bus_dataOut),
.io_bus_dataIn(slaveInterface_io_bus_dataIn),
.io_bus_write(slaveInterface_io_bus_write)
);
assign _T_182 = slaveInterface_io_bus_addr[2:0]; // @[:@160.6]
assign _regs_T_182 = slaveInterface_io_bus_dataOut; // @[Axi.scala 47:40:@161.6 Axi.scala 47:40:@161.6]
assign _GEN_0 = 3'h0 == _T_182 ? _regs_T_182 : regs_0; // @[Axi.scala 47:40:@161.6]
assign _GEN_1 = 3'h1 == _T_182 ? _regs_T_182 : regs_1; // @[Axi.scala 47:40:@161.6]
assign _GEN_2 = 3'h2 == _T_182 ? _regs_T_182 : regs_2; // @[Axi.scala 47:40:@161.6]
assign _GEN_3 = 3'h3 == _T_182 ? _regs_T_182 : regs_3; // @[Axi.scala 47:40:@161.6]
assign _GEN_4 = 3'h4 == _T_182 ? _regs_T_182 : regs_4; // @[Axi.scala 47:40:@161.6]
assign _GEN_5 = 3'h5 == _T_182 ? _regs_T_182 : regs_5; // @[Axi.scala 47:40:@161.6]
assign _GEN_6 = 3'h6 == _T_182 ? _regs_T_182 : regs_6; // @[Axi.scala 47:40:@161.6]
assign _GEN_7 = 3'h7 == _T_182 ? _regs_T_182 : regs_7; // @[Axi.scala 47:40:@161.6]
assign _GEN_8 = slaveInterface_io_bus_write ? _GEN_0 : regs_0; // @[Axi.scala 46:39:@159.4]
assign _GEN_9 = slaveInterface_io_bus_write ? _GEN_1 : regs_1; // @[Axi.scala 46:39:@159.4]
assign _GEN_10 = slaveInterface_io_bus_write ? _GEN_2 : regs_2; // @[Axi.scala 46:39:@159.4]
assign _GEN_11 = slaveInterface_io_bus_write ? _GEN_3 : regs_3; // @[Axi.scala 46:39:@159.4]
assign _GEN_12 = slaveInterface_io_bus_write ? _GEN_4 : regs_4; // @[Axi.scala 46:39:@159.4]
assign _GEN_13 = slaveInterface_io_bus_write ? _GEN_5 : regs_5; // @[Axi.scala 46:39:@159.4]
assign _GEN_14 = slaveInterface_io_bus_write ? _GEN_6 : regs_6; // @[Axi.scala 46:39:@159.4]
assign _GEN_15 = slaveInterface_io_bus_write ? _GEN_7 : regs_7; // @[Axi.scala 46:39:@159.4]
assign _GEN_17 = 3'h1 == _T_182 ? regs_1 : regs_0; // @[Axi.scala 50:34:@164.4]
assign _GEN_18 = 3'h2 == _T_182 ? regs_2 : _GEN_17; // @[Axi.scala 50:34:@164.4]
assign _GEN_19 = 3'h3 == _T_182 ? regs_3 : _GEN_18; // @[Axi.scala 50:34:@164.4]
assign _GEN_20 = 3'h4 == _T_182 ? regs_4 : _GEN_19; // @[Axi.scala 50:34:@164.4]
assign _GEN_21 = 3'h5 == _T_182 ? regs_5 : _GEN_20; // @[Axi.scala 50:34:@164.4]
assign _GEN_22 = 3'h6 == _T_182 ? regs_6 : _GEN_21; // @[Axi.scala 50:34:@164.4]
assign io_axi_s0_aw_awready = slaveInterface_io_ctl_aw_awready; // @[Axi.scala 42:27:@153.4]
assign io_axi_s0_w_wready = slaveInterface_io_ctl_w_wready; // @[Axi.scala 42:27:@148.4]
assign io_axi_s0_b_bresp = 2'h0; // @[Axi.scala 42:27:@146.4]
assign io_axi_s0_b_bvalid = slaveInterface_io_ctl_b_bvalid; // @[Axi.scala 42:27:@145.4]
assign io_axi_s0_b_bid = slaveInterface_io_ctl_b_bid; // @[Axi.scala 42:27:@143.4]
assign io_axi_s0_ar_arready = slaveInterface_io_ctl_ar_arready; // @[Axi.scala 42:27:@139.4]
assign io_axi_s0_r_rdata = slaveInterface_io_ctl_r_rdata; // @[Axi.scala 42:27:@137.4]
assign io_axi_s0_r_rresp = 2'h0; // @[Axi.scala 42:27:@136.4]
assign io_axi_s0_r_rvalid = slaveInterface_io_ctl_r_rvalid; // @[Axi.scala 42:27:@135.4]
assign io_axi_s0_r_rid = slaveInterface_io_ctl_r_rid; // @[Axi.scala 42:27:@133.4]
assign io_leds = regs_0[1:0]; // @[Axi.scala 43:13:@158.4]
assign io_irqOut = regs_0[4]; // @[Axi.scala 39:15:@132.4]
assign slaveInterface_clock = clock; // @[:@129.4]
assign slaveInterface_reset = reset; // @[:@130.4]
assign slaveInterface_io_ctl_aw_awaddr = io_axi_s0_aw_awaddr; // @[Axi.scala 42:27:@156.4]
assign slaveInterface_io_ctl_aw_awvalid = io_axi_s0_aw_awvalid; // @[Axi.scala 42:27:@154.4]
assign slaveInterface_io_ctl_aw_awid = io_axi_s0_aw_awid; // @[Axi.scala 42:27:@152.4]
assign slaveInterface_io_ctl_w_wdata = io_axi_s0_w_wdata; // @[Axi.scala 42:27:@151.4]
assign slaveInterface_io_ctl_w_wvalid = io_axi_s0_w_wvalid; // @[Axi.scala 42:27:@149.4]
assign slaveInterface_io_ctl_b_bready = io_axi_s0_b_bready; // @[Axi.scala 42:27:@144.4]
assign slaveInterface_io_ctl_ar_araddr = io_axi_s0_ar_araddr; // @[Axi.scala 42:27:@142.4]
assign slaveInterface_io_ctl_ar_arvalid = io_axi_s0_ar_arvalid; // @[Axi.scala 42:27:@140.4]
assign slaveInterface_io_ctl_ar_arid = io_axi_s0_ar_arid; // @[Axi.scala 42:27:@138.4]
assign slaveInterface_io_ctl_r_rready = io_axi_s0_r_rready; // @[Axi.scala 42:27:@134.4]
assign slaveInterface_io_bus_dataIn = 3'h7 == _T_182 ? regs_7 : _GEN_22; // @[Axi.scala 50:34:@164.4]
`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
integer initvar;
initial begin
`ifdef INIT_RANDOM
`INIT_RANDOM
`endif
`ifndef VERILATOR
#0.002 begin end
`endif
`ifdef RANDOMIZE_REG_INIT
_RAND_0 = {1{`RANDOM}};
regs_0 = _RAND_0[31:0];
`endif // RANDOMIZE_REG_INIT
`ifdef RANDOMIZE_REG_INIT
_RAND_1 = {1{`RANDOM}};
regs_1 = _RAND_1[31:0];
`endif // RANDOMIZE_REG_INIT
`ifdef RANDOMIZE_REG_INIT
_RAND_2 = {1{`RANDOM}};
regs_2 = _RAND_2[31:0];
`endif // RANDOMIZE_REG_INIT
`ifdef RANDOMIZE_REG_INIT
_RAND_3 = {1{`RANDOM}};
regs_3 = _RAND_3[31:0];
`endif // RANDOMIZE_REG_INIT
`ifdef RANDOMIZE_REG_INIT
_RAND_4 = {1{`RANDOM}};
regs_4 = _RAND_4[31:0];
`endif // RANDOMIZE_REG_INIT
`ifdef RANDOMIZE_REG_INIT
_RAND_5 = {1{`RANDOM}};
regs_5 = _RAND_5[31:0];
`endif // RANDOMIZE_REG_INIT
`ifdef RANDOMIZE_REG_INIT
_RAND_6 = {1{`RANDOM}};
regs_6 = _RAND_6[31:0];
`endif // RANDOMIZE_REG_INIT
`ifdef RANDOMIZE_REG_INIT
_RAND_7 = {1{`RANDOM}};
regs_7 = _RAND_7[31:0];
`endif // RANDOMIZE_REG_INIT
end
`endif // RANDOMIZE
always @(posedge clock) begin
if (reset) begin
regs_0 <= 32'h0;
end else begin
if (slaveInterface_io_bus_write) begin
if (3'h0 == _T_182) begin
regs_0 <= _regs_T_182;
end
end
end
if (reset) begin
regs_1 <= 32'h0;
end else begin
if (slaveInterface_io_bus_write) begin
if (3'h1 == _T_182) begin
regs_1 <= _regs_T_182;
end
end
end
if (reset) begin
regs_2 <= 32'h0;
end else begin
if (slaveInterface_io_bus_write) begin
if (3'h2 == _T_182) begin
regs_2 <= _regs_T_182;
end
end
end
if (reset) begin
regs_3 <= 32'h0;
end else begin
if (slaveInterface_io_bus_write) begin
if (3'h3 == _T_182) begin
regs_3 <= _regs_T_182;
end
end
end
if (reset) begin
regs_4 <= 32'h0;
end else begin
if (slaveInterface_io_bus_write) begin
if (3'h4 == _T_182) begin
regs_4 <= _regs_T_182;
end
end
end
if (reset) begin
regs_5 <= 32'h0;
end else begin
if (slaveInterface_io_bus_write) begin
if (3'h5 == _T_182) begin
regs_5 <= _regs_T_182;
end
end
end
if (reset) begin
regs_6 <= 32'h0;
end else begin
if (slaveInterface_io_bus_write) begin
if (3'h6 == _T_182) begin
regs_6 <= _regs_T_182;
end
end
end
if (reset) begin
regs_7 <= 32'h0;
end else begin
if (slaveInterface_io_bus_write) begin
if (3'h7 == _T_182) begin
regs_7 <= _regs_T_182;
end
end
end
end
endmodule