fix(gps): make ephemeris flash persistence hardware-safe
Add freestanding S25FL256S read/program/erase/verify support and seed a newly formatted ephemeris store with stale records. Age-gate navigation readiness, persist the continuous Toe week, and regenerate the Genesys2 MAX2771 integration and flash image.
This commit is contained in:
@@ -2,9 +2,7 @@
|
||||
module FixedClockBroadcast_5(
|
||||
input auto_anon_in_clock,
|
||||
auto_anon_in_reset,
|
||||
output auto_anon_out_4_clock,
|
||||
auto_anon_out_4_reset,
|
||||
auto_anon_out_3_clock,
|
||||
output auto_anon_out_3_clock,
|
||||
auto_anon_out_3_reset,
|
||||
auto_anon_out_2_clock,
|
||||
auto_anon_out_2_reset,
|
||||
@@ -14,8 +12,6 @@ module FixedClockBroadcast_5(
|
||||
auto_anon_out_0_reset
|
||||
);
|
||||
|
||||
assign auto_anon_out_4_clock = auto_anon_in_clock;
|
||||
assign auto_anon_out_4_reset = auto_anon_in_reset;
|
||||
assign auto_anon_out_3_clock = auto_anon_in_clock;
|
||||
assign auto_anon_out_3_reset = auto_anon_in_reset;
|
||||
assign auto_anon_out_2_clock = auto_anon_in_clock;
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
// Generated by CIRCT firtool-1.151.0
|
||||
module FixedClockBroadcast_6(
|
||||
input auto_anon_in_clock,
|
||||
auto_anon_in_reset,
|
||||
output auto_anon_out_5_clock,
|
||||
auto_anon_out_5_reset,
|
||||
auto_anon_out_4_clock,
|
||||
auto_anon_out_4_reset,
|
||||
auto_anon_out_3_clock,
|
||||
auto_anon_out_3_reset,
|
||||
auto_anon_out_2_clock,
|
||||
auto_anon_out_2_reset,
|
||||
auto_anon_out_1_clock,
|
||||
auto_anon_out_1_reset,
|
||||
auto_anon_out_0_clock,
|
||||
auto_anon_out_0_reset
|
||||
);
|
||||
|
||||
assign auto_anon_out_5_clock = auto_anon_in_clock;
|
||||
assign auto_anon_out_5_reset = auto_anon_in_reset;
|
||||
assign auto_anon_out_4_clock = auto_anon_in_clock;
|
||||
assign auto_anon_out_4_reset = auto_anon_in_reset;
|
||||
assign auto_anon_out_3_clock = auto_anon_in_clock;
|
||||
assign auto_anon_out_3_reset = auto_anon_in_reset;
|
||||
assign auto_anon_out_2_clock = auto_anon_in_clock;
|
||||
assign auto_anon_out_2_reset = auto_anon_in_reset;
|
||||
assign auto_anon_out_1_clock = auto_anon_in_clock;
|
||||
assign auto_anon_out_1_reset = auto_anon_in_reset;
|
||||
assign auto_anon_out_0_clock = auto_anon_in_clock;
|
||||
assign auto_anon_out_0_reset = auto_anon_in_reset;
|
||||
endmodule
|
||||
@@ -0,0 +1,49 @@
|
||||
// Generated by CIRCT firtool-1.151.0
|
||||
module MAX2771SPIClockSinkDomain(
|
||||
output auto_dev_in_a_ready,
|
||||
input auto_dev_in_a_valid,
|
||||
input [2:0] auto_dev_in_a_bits_opcode,
|
||||
input [1:0] auto_dev_in_a_bits_size,
|
||||
input [5:0] auto_dev_in_a_bits_source,
|
||||
input [28:0] auto_dev_in_a_bits_address,
|
||||
input [7:0] auto_dev_in_a_bits_mask,
|
||||
input [63:0] auto_dev_in_a_bits_data,
|
||||
input auto_dev_in_d_ready,
|
||||
output auto_dev_in_d_valid,
|
||||
output [2:0] auto_dev_in_d_bits_opcode,
|
||||
output [1:0] auto_dev_in_d_bits_size,
|
||||
output [5:0] auto_dev_in_d_bits_source,
|
||||
output [63:0] auto_dev_in_d_bits_data,
|
||||
output auto_dev_sdata_oe_out,
|
||||
auto_dev_sdata_out_out,
|
||||
input auto_dev_sdata_in_in,
|
||||
output auto_dev_csn_out,
|
||||
auto_dev_sclk_out,
|
||||
input auto_clock_in_clock,
|
||||
auto_clock_in_reset
|
||||
);
|
||||
|
||||
TLMAX2771SPI dev (
|
||||
.clock (auto_clock_in_clock),
|
||||
.reset (auto_clock_in_reset),
|
||||
.auto_in_a_ready (auto_dev_in_a_ready),
|
||||
.auto_in_a_valid (auto_dev_in_a_valid),
|
||||
.auto_in_a_bits_opcode (auto_dev_in_a_bits_opcode),
|
||||
.auto_in_a_bits_size (auto_dev_in_a_bits_size),
|
||||
.auto_in_a_bits_source (auto_dev_in_a_bits_source),
|
||||
.auto_in_a_bits_address (auto_dev_in_a_bits_address),
|
||||
.auto_in_a_bits_mask (auto_dev_in_a_bits_mask),
|
||||
.auto_in_a_bits_data (auto_dev_in_a_bits_data),
|
||||
.auto_in_d_ready (auto_dev_in_d_ready),
|
||||
.auto_in_d_valid (auto_dev_in_d_valid),
|
||||
.auto_in_d_bits_opcode (auto_dev_in_d_bits_opcode),
|
||||
.auto_in_d_bits_size (auto_dev_in_d_bits_size),
|
||||
.auto_in_d_bits_source (auto_dev_in_d_bits_source),
|
||||
.auto_in_d_bits_data (auto_dev_in_d_bits_data),
|
||||
.auto_sdata_oe_out (auto_dev_sdata_oe_out),
|
||||
.auto_sdata_out_out (auto_dev_sdata_out_out),
|
||||
.auto_sdata_in_in (auto_dev_sdata_in_in),
|
||||
.auto_csn_out (auto_dev_csn_out),
|
||||
.auto_sclk_out (auto_dev_sclk_out)
|
||||
);
|
||||
endmodule
|
||||
@@ -11,16 +11,18 @@ module PMAChecker(
|
||||
);
|
||||
|
||||
wire [9:0] _GEN = io_paddr[25:16] ^ 10'h200;
|
||||
wire [16:0] _GEN_0 = io_paddr[28:12] ^ 17'h10014;
|
||||
wire [11:0] _GEN_1 = io_paddr[31:20] ^ 12'h800;
|
||||
wire [16:0] _GEN_0 = io_paddr[28:12] ^ 17'h10013;
|
||||
wire [16:0] _GEN_1 = io_paddr[28:12] ^ 17'h10014;
|
||||
wire [16:0] _GEN_2 = io_paddr[28:12] ^ 17'h10016;
|
||||
wire [16:0] _GEN_3 = io_paddr[28:12] ^ 17'h10020;
|
||||
wire [11:0] _GEN_4 = io_paddr[31:20] ^ 12'h800;
|
||||
wire legal_address =
|
||||
io_paddr[33:12] == 22'h0 | {io_paddr[33:14], ~(io_paddr[13:12])} == 22'h0
|
||||
| {io_paddr[33:17], ~(io_paddr[16])} == 18'h0 | {io_paddr[33:26], _GEN} == 18'h0
|
||||
| {io_paddr[33:28], ~(io_paddr[27:26])} == 8'h0
|
||||
| {io_paddr[33:29], io_paddr[28:12] ^ 17'h10013} == 22'h0
|
||||
| {io_paddr[33:29], _GEN_0} == 22'h0
|
||||
| {io_paddr[33:28], ~(io_paddr[27:26])} == 8'h0 | {io_paddr[33:29], _GEN_0} == 22'h0
|
||||
| {io_paddr[33:29], _GEN_1} == 22'h0
|
||||
| {io_paddr[33:29], io_paddr[28:12] ^ 17'h10015} == 22'h0
|
||||
| {io_paddr[33:29], io_paddr[28:12] ^ 17'h10020} == 22'h0
|
||||
| {io_paddr[33:29], _GEN_2} == 22'h0 | {io_paddr[33:29], _GEN_3} == 22'h0
|
||||
| {io_paddr[33:29], io_paddr[28:12] ^ 17'h10021} == 22'h0
|
||||
| {io_paddr[33:29], io_paddr[28:12] ^ 17'h10022} == 22'h0
|
||||
| {io_paddr[33:29], io_paddr[28:12] ^ 17'h10023} == 22'h0
|
||||
@@ -31,36 +33,34 @@ module PMAChecker(
|
||||
| {io_paddr[33:29], io_paddr[28:12] ^ 17'h10028} == 22'h0
|
||||
| {io_paddr[33:29], io_paddr[28:12] ^ 17'h10029} == 22'h0
|
||||
| {io_paddr[33:29], io_paddr[28:12] ^ 17'h1002A} == 22'h0
|
||||
| {io_paddr[33:32], _GEN_1} == 14'h0;
|
||||
wire _GEN_2 = |{io_paddr[31:29], io_paddr[27], io_paddr[16]};
|
||||
wire _GEN_3 = |{io_paddr[31:27], io_paddr[16], io_paddr[14]};
|
||||
wire _GEN_4 = |{io_paddr[31:28], ~(io_paddr[27])};
|
||||
wire [16:0] _GEN_5 = io_paddr[28:12] ^ 17'h10011;
|
||||
wire _GEN_6 =
|
||||
|{io_paddr[31:29], _GEN_5[16:15], _GEN_5[4], io_paddr[14], _GEN_5[0]};
|
||||
wire _GEN_7 = |{io_paddr[31:29], _GEN_0[16:15], _GEN_0[4], _GEN_0[2]};
|
||||
wire _GEN_8 = |(_GEN_1[11:7]);
|
||||
wire [14:0] _GEN_9 = io_paddr[28:14] ^ 15'h4002;
|
||||
| {io_paddr[33:32], _GEN_4} == 14'h0;
|
||||
wire _GEN_5 = |{io_paddr[31:27], io_paddr[19:16]};
|
||||
wire _GEN_6 = |{io_paddr[31:27], io_paddr[19:15]};
|
||||
wire _GEN_7 = |{io_paddr[31:28], ~(io_paddr[27])};
|
||||
wire [13:0] _GEN_8 = io_paddr[28:15] ^ 14'h2002;
|
||||
wire _GEN_9 = |{io_paddr[31:29], _GEN_8[13:12], _GEN_8[4:0]};
|
||||
wire _GEN_10 = |{io_paddr[31:29], _GEN_3[16:15], _GEN_3[7:4]};
|
||||
wire _GEN_11 = |(_GEN_4[11:7]);
|
||||
assign io_resp_r = legal_address;
|
||||
assign io_resp_w =
|
||||
legal_address & (~_GEN_2 | ~_GEN_3 | ~_GEN_4 | ~_GEN_6 | ~_GEN_7 | ~_GEN_8);
|
||||
legal_address & (~_GEN_5 | ~_GEN_6 | ~_GEN_7 | ~_GEN_9 | ~_GEN_10 | ~_GEN_11);
|
||||
assign io_resp_pp =
|
||||
legal_address & (~_GEN_2 | ~_GEN_3 | ~_GEN_4 | ~_GEN_6 | ~_GEN_7 | ~_GEN_8);
|
||||
legal_address & (~_GEN_5 | ~_GEN_6 | ~_GEN_7 | ~_GEN_9 | ~_GEN_10 | ~_GEN_11);
|
||||
assign io_resp_al =
|
||||
legal_address & (~_GEN_2 | ~_GEN_3 | ~_GEN_4 | ~_GEN_6 | ~_GEN_7 | ~_GEN_8);
|
||||
legal_address & (~_GEN_5 | ~_GEN_6 | ~_GEN_7 | ~_GEN_9 | ~_GEN_10 | ~_GEN_11);
|
||||
assign io_resp_aa =
|
||||
legal_address & (~_GEN_2 | ~_GEN_3 | ~_GEN_4 | ~_GEN_6 | ~_GEN_7 | ~_GEN_8);
|
||||
legal_address & (~_GEN_5 | ~_GEN_6 | ~_GEN_7 | ~_GEN_9 | ~_GEN_10 | ~_GEN_11);
|
||||
assign io_resp_x =
|
||||
legal_address
|
||||
& ({io_paddr[30:27], io_paddr[25]} == 5'h0
|
||||
| {io_paddr[31:27], io_paddr[25], io_paddr[14]} == 7'h0);
|
||||
assign io_resp_eff =
|
||||
legal_address
|
||||
& ({io_paddr[31:27], io_paddr[25], io_paddr[16:14], io_paddr[12]} == 10'h0
|
||||
| {io_paddr[31:27], _GEN[9], io_paddr[16]} == 7'h0 | ~_GEN_4
|
||||
| {io_paddr[31:29], io_paddr[28:27] ^ 2'h2, io_paddr[25], io_paddr[16:15]} == 8'h0
|
||||
| {io_paddr[31:29], _GEN_9[14:13], io_paddr[25], _GEN_9[2:0]} == 9'h0
|
||||
| {io_paddr[31:29], _GEN_5[16:15], io_paddr[25], _GEN_5[4:2], _GEN_5[0]} == 10'h0
|
||||
| {io_paddr[31:29], _GEN_0[16:15], io_paddr[25], _GEN_0[4:2]} == 9'h0);
|
||||
& ({io_paddr[31:27], io_paddr[25], io_paddr[16], io_paddr[14:12]} == 10'h0
|
||||
| {io_paddr[31:27], _GEN[9], io_paddr[16]} == 7'h0 | ~_GEN_7
|
||||
| {io_paddr[31:29], io_paddr[28:27] ^ 2'h2, io_paddr[25], io_paddr[16]} == 7'h0
|
||||
| {io_paddr[31:29], _GEN_0[16:15], io_paddr[25], _GEN_0[4], _GEN_0[2:0]} == 10'h0
|
||||
| {io_paddr[31:29], _GEN_1[16:15], io_paddr[25], _GEN_1[4], _GEN_1[2:1]} == 9'h0
|
||||
| {io_paddr[31:29], _GEN_2[16:15], io_paddr[25], _GEN_2[4], _GEN_2[2:0]} == 10'h0);
|
||||
endmodule
|
||||
|
||||
|
||||
@@ -420,8 +420,6 @@ module PeripheryBus_cbus(
|
||||
FixedClockBroadcast_5 fixedClockNode (
|
||||
.auto_anon_in_clock (_clockGroup_auto_out_clock),
|
||||
.auto_anon_in_reset (_clockGroup_auto_out_reset),
|
||||
.auto_anon_out_4_clock (/* unused */),
|
||||
.auto_anon_out_4_reset (/* unused */),
|
||||
.auto_anon_out_3_clock (auto_fixedClockNode_anon_out_2_clock),
|
||||
.auto_anon_out_3_reset (auto_fixedClockNode_anon_out_2_reset),
|
||||
.auto_anon_out_2_clock (auto_fixedClockNode_anon_out_1_clock),
|
||||
|
||||
@@ -27,7 +27,21 @@ module PeripheryBus_pbus(
|
||||
auto_coupler_to_gps_fragmenter_anon_out_d_bits_denied,
|
||||
input [31:0] auto_coupler_to_gps_fragmenter_anon_out_d_bits_data,
|
||||
input auto_coupler_to_gps_fragmenter_anon_out_d_bits_corrupt,
|
||||
auto_coupler_to_fpga_pmod_spi_fragmenter_anon_out_a_ready,
|
||||
auto_coupler_to_max2771_spi_fragmenter_anon_out_a_ready,
|
||||
output auto_coupler_to_max2771_spi_fragmenter_anon_out_a_valid,
|
||||
output [2:0] auto_coupler_to_max2771_spi_fragmenter_anon_out_a_bits_opcode,
|
||||
output [1:0] auto_coupler_to_max2771_spi_fragmenter_anon_out_a_bits_size,
|
||||
output [5:0] auto_coupler_to_max2771_spi_fragmenter_anon_out_a_bits_source,
|
||||
output [28:0] auto_coupler_to_max2771_spi_fragmenter_anon_out_a_bits_address,
|
||||
output [7:0] auto_coupler_to_max2771_spi_fragmenter_anon_out_a_bits_mask,
|
||||
output [63:0] auto_coupler_to_max2771_spi_fragmenter_anon_out_a_bits_data,
|
||||
output auto_coupler_to_max2771_spi_fragmenter_anon_out_d_ready,
|
||||
input auto_coupler_to_max2771_spi_fragmenter_anon_out_d_valid,
|
||||
input [2:0] auto_coupler_to_max2771_spi_fragmenter_anon_out_d_bits_opcode,
|
||||
input [1:0] auto_coupler_to_max2771_spi_fragmenter_anon_out_d_bits_size,
|
||||
input [5:0] auto_coupler_to_max2771_spi_fragmenter_anon_out_d_bits_source,
|
||||
input [63:0] auto_coupler_to_max2771_spi_fragmenter_anon_out_d_bits_data,
|
||||
input auto_coupler_to_fpga_pmod_spi_fragmenter_anon_out_a_ready,
|
||||
output auto_coupler_to_fpga_pmod_spi_fragmenter_anon_out_a_valid,
|
||||
output [2:0] auto_coupler_to_fpga_pmod_spi_fragmenter_anon_out_a_bits_opcode,
|
||||
output [1:0] auto_coupler_to_fpga_pmod_spi_fragmenter_anon_out_a_bits_size,
|
||||
@@ -69,7 +83,9 @@ module PeripheryBus_pbus(
|
||||
input [1:0] auto_coupler_to_fpga_uart_fragmenter_anon_out_d_bits_size,
|
||||
input [5:0] auto_coupler_to_fpga_uart_fragmenter_anon_out_d_bits_source,
|
||||
input [63:0] auto_coupler_to_fpga_uart_fragmenter_anon_out_d_bits_data,
|
||||
output auto_fixedClockNode_anon_out_3_clock,
|
||||
output auto_fixedClockNode_anon_out_4_clock,
|
||||
auto_fixedClockNode_anon_out_4_reset,
|
||||
auto_fixedClockNode_anon_out_3_clock,
|
||||
auto_fixedClockNode_anon_out_3_reset,
|
||||
auto_fixedClockNode_anon_out_2_clock,
|
||||
auto_fixedClockNode_anon_out_2_reset,
|
||||
@@ -118,6 +134,12 @@ module PeripheryBus_pbus(
|
||||
wire _coupler_to_gps_auto_tl_in_d_bits_denied;
|
||||
wire [63:0] _coupler_to_gps_auto_tl_in_d_bits_data;
|
||||
wire _coupler_to_gps_auto_tl_in_d_bits_corrupt;
|
||||
wire _coupler_to_max2771_spi_auto_tl_in_a_ready;
|
||||
wire _coupler_to_max2771_spi_auto_tl_in_d_valid;
|
||||
wire [2:0] _coupler_to_max2771_spi_auto_tl_in_d_bits_opcode;
|
||||
wire [2:0] _coupler_to_max2771_spi_auto_tl_in_d_bits_size;
|
||||
wire [1:0] _coupler_to_max2771_spi_auto_tl_in_d_bits_source;
|
||||
wire [63:0] _coupler_to_max2771_spi_auto_tl_in_d_bits_data;
|
||||
wire _coupler_to_fpga_pmod_spi_auto_tl_in_a_ready;
|
||||
wire _coupler_to_fpga_pmod_spi_auto_tl_in_d_valid;
|
||||
wire [2:0] _coupler_to_fpga_pmod_spi_auto_tl_in_d_bits_opcode;
|
||||
@@ -217,22 +239,30 @@ module PeripheryBus_pbus(
|
||||
wire _out_xbar_auto_anon_in_d_bits_denied;
|
||||
wire [63:0] _out_xbar_auto_anon_in_d_bits_data;
|
||||
wire _out_xbar_auto_anon_in_d_bits_corrupt;
|
||||
wire _out_xbar_auto_anon_out_4_a_valid;
|
||||
wire [2:0] _out_xbar_auto_anon_out_4_a_bits_opcode;
|
||||
wire [2:0] _out_xbar_auto_anon_out_4_a_bits_param;
|
||||
wire [2:0] _out_xbar_auto_anon_out_4_a_bits_size;
|
||||
wire [1:0] _out_xbar_auto_anon_out_4_a_bits_source;
|
||||
wire [28:0] _out_xbar_auto_anon_out_4_a_bits_address;
|
||||
wire _out_xbar_auto_anon_out_4_a_bits_user_amba_prot_bufferable;
|
||||
wire _out_xbar_auto_anon_out_4_a_bits_user_amba_prot_modifiable;
|
||||
wire _out_xbar_auto_anon_out_4_a_bits_user_amba_prot_readalloc;
|
||||
wire _out_xbar_auto_anon_out_4_a_bits_user_amba_prot_writealloc;
|
||||
wire _out_xbar_auto_anon_out_4_a_bits_user_amba_prot_privileged;
|
||||
wire _out_xbar_auto_anon_out_4_a_bits_user_amba_prot_secure;
|
||||
wire _out_xbar_auto_anon_out_4_a_bits_user_amba_prot_fetch;
|
||||
wire [7:0] _out_xbar_auto_anon_out_4_a_bits_mask;
|
||||
wire [63:0] _out_xbar_auto_anon_out_4_a_bits_data;
|
||||
wire _out_xbar_auto_anon_out_4_a_bits_corrupt;
|
||||
wire _out_xbar_auto_anon_out_4_d_ready;
|
||||
wire _out_xbar_auto_anon_out_3_a_valid;
|
||||
wire [2:0] _out_xbar_auto_anon_out_3_a_bits_opcode;
|
||||
wire [2:0] _out_xbar_auto_anon_out_3_a_bits_param;
|
||||
wire [2:0] _out_xbar_auto_anon_out_3_a_bits_size;
|
||||
wire [1:0] _out_xbar_auto_anon_out_3_a_bits_source;
|
||||
wire [28:0] _out_xbar_auto_anon_out_3_a_bits_address;
|
||||
wire _out_xbar_auto_anon_out_3_a_bits_user_amba_prot_bufferable;
|
||||
wire _out_xbar_auto_anon_out_3_a_bits_user_amba_prot_modifiable;
|
||||
wire _out_xbar_auto_anon_out_3_a_bits_user_amba_prot_readalloc;
|
||||
wire _out_xbar_auto_anon_out_3_a_bits_user_amba_prot_writealloc;
|
||||
wire _out_xbar_auto_anon_out_3_a_bits_user_amba_prot_privileged;
|
||||
wire _out_xbar_auto_anon_out_3_a_bits_user_amba_prot_secure;
|
||||
wire _out_xbar_auto_anon_out_3_a_bits_user_amba_prot_fetch;
|
||||
wire [7:0] _out_xbar_auto_anon_out_3_a_bits_mask;
|
||||
wire [63:0] _out_xbar_auto_anon_out_3_a_bits_data;
|
||||
wire _out_xbar_auto_anon_out_3_a_bits_corrupt;
|
||||
wire _out_xbar_auto_anon_out_3_d_ready;
|
||||
wire _out_xbar_auto_anon_out_2_a_valid;
|
||||
wire [2:0] _out_xbar_auto_anon_out_2_a_bits_opcode;
|
||||
@@ -330,9 +360,11 @@ module PeripheryBus_pbus(
|
||||
.auto_out_clock (_clockGroup_auto_out_clock),
|
||||
.auto_out_reset (_clockGroup_auto_out_reset)
|
||||
);
|
||||
FixedClockBroadcast_5 fixedClockNode (
|
||||
FixedClockBroadcast_6 fixedClockNode (
|
||||
.auto_anon_in_clock (_clockGroup_auto_out_clock),
|
||||
.auto_anon_in_reset (_clockGroup_auto_out_reset),
|
||||
.auto_anon_out_5_clock (auto_fixedClockNode_anon_out_4_clock),
|
||||
.auto_anon_out_5_reset (auto_fixedClockNode_anon_out_4_reset),
|
||||
.auto_anon_out_4_clock (auto_fixedClockNode_anon_out_3_clock),
|
||||
.auto_anon_out_4_reset (auto_fixedClockNode_anon_out_3_reset),
|
||||
.auto_anon_out_3_clock (auto_fixedClockNode_anon_out_2_clock),
|
||||
@@ -493,7 +525,7 @@ module PeripheryBus_pbus(
|
||||
.auto_anon_out_d_bits_data (_atomics_auto_in_d_bits_data),
|
||||
.auto_anon_out_d_bits_corrupt (_atomics_auto_in_d_bits_corrupt)
|
||||
);
|
||||
TLXbar_pbus_out_i1_o4_a29d64s2k1z3u out_xbar (
|
||||
TLXbar_pbus_out_i1_o5_a29d64s2k1z3u out_xbar (
|
||||
.clock
|
||||
(_fixedClockNode_auto_anon_out_0_clock),
|
||||
.reset
|
||||
@@ -544,58 +576,84 @@ module PeripheryBus_pbus(
|
||||
(_out_xbar_auto_anon_in_d_bits_data),
|
||||
.auto_anon_in_d_bits_corrupt
|
||||
(_out_xbar_auto_anon_in_d_bits_corrupt),
|
||||
.auto_anon_out_3_a_ready
|
||||
.auto_anon_out_4_a_ready
|
||||
(_coupler_to_gps_auto_tl_in_a_ready),
|
||||
.auto_anon_out_4_a_valid (_out_xbar_auto_anon_out_4_a_valid),
|
||||
.auto_anon_out_4_a_bits_opcode
|
||||
(_out_xbar_auto_anon_out_4_a_bits_opcode),
|
||||
.auto_anon_out_4_a_bits_param
|
||||
(_out_xbar_auto_anon_out_4_a_bits_param),
|
||||
.auto_anon_out_4_a_bits_size
|
||||
(_out_xbar_auto_anon_out_4_a_bits_size),
|
||||
.auto_anon_out_4_a_bits_source
|
||||
(_out_xbar_auto_anon_out_4_a_bits_source),
|
||||
.auto_anon_out_4_a_bits_address
|
||||
(_out_xbar_auto_anon_out_4_a_bits_address),
|
||||
.auto_anon_out_4_a_bits_user_amba_prot_bufferable
|
||||
(_out_xbar_auto_anon_out_4_a_bits_user_amba_prot_bufferable),
|
||||
.auto_anon_out_4_a_bits_user_amba_prot_modifiable
|
||||
(_out_xbar_auto_anon_out_4_a_bits_user_amba_prot_modifiable),
|
||||
.auto_anon_out_4_a_bits_user_amba_prot_readalloc
|
||||
(_out_xbar_auto_anon_out_4_a_bits_user_amba_prot_readalloc),
|
||||
.auto_anon_out_4_a_bits_user_amba_prot_writealloc
|
||||
(_out_xbar_auto_anon_out_4_a_bits_user_amba_prot_writealloc),
|
||||
.auto_anon_out_4_a_bits_user_amba_prot_privileged
|
||||
(_out_xbar_auto_anon_out_4_a_bits_user_amba_prot_privileged),
|
||||
.auto_anon_out_4_a_bits_user_amba_prot_secure
|
||||
(_out_xbar_auto_anon_out_4_a_bits_user_amba_prot_secure),
|
||||
.auto_anon_out_4_a_bits_user_amba_prot_fetch
|
||||
(_out_xbar_auto_anon_out_4_a_bits_user_amba_prot_fetch),
|
||||
.auto_anon_out_4_a_bits_mask
|
||||
(_out_xbar_auto_anon_out_4_a_bits_mask),
|
||||
.auto_anon_out_4_a_bits_data
|
||||
(_out_xbar_auto_anon_out_4_a_bits_data),
|
||||
.auto_anon_out_4_a_bits_corrupt
|
||||
(_out_xbar_auto_anon_out_4_a_bits_corrupt),
|
||||
.auto_anon_out_4_d_ready (_out_xbar_auto_anon_out_4_d_ready),
|
||||
.auto_anon_out_4_d_valid
|
||||
(_coupler_to_gps_auto_tl_in_d_valid),
|
||||
.auto_anon_out_4_d_bits_opcode
|
||||
(_coupler_to_gps_auto_tl_in_d_bits_opcode),
|
||||
.auto_anon_out_4_d_bits_param
|
||||
(_coupler_to_gps_auto_tl_in_d_bits_param),
|
||||
.auto_anon_out_4_d_bits_size
|
||||
(_coupler_to_gps_auto_tl_in_d_bits_size),
|
||||
.auto_anon_out_4_d_bits_source
|
||||
(_coupler_to_gps_auto_tl_in_d_bits_source),
|
||||
.auto_anon_out_4_d_bits_sink
|
||||
(_coupler_to_gps_auto_tl_in_d_bits_sink),
|
||||
.auto_anon_out_4_d_bits_denied
|
||||
(_coupler_to_gps_auto_tl_in_d_bits_denied),
|
||||
.auto_anon_out_4_d_bits_data
|
||||
(_coupler_to_gps_auto_tl_in_d_bits_data),
|
||||
.auto_anon_out_4_d_bits_corrupt
|
||||
(_coupler_to_gps_auto_tl_in_d_bits_corrupt),
|
||||
.auto_anon_out_3_a_ready
|
||||
(_coupler_to_max2771_spi_auto_tl_in_a_ready),
|
||||
.auto_anon_out_3_a_valid (_out_xbar_auto_anon_out_3_a_valid),
|
||||
.auto_anon_out_3_a_bits_opcode
|
||||
(_out_xbar_auto_anon_out_3_a_bits_opcode),
|
||||
.auto_anon_out_3_a_bits_param
|
||||
(_out_xbar_auto_anon_out_3_a_bits_param),
|
||||
.auto_anon_out_3_a_bits_size
|
||||
(_out_xbar_auto_anon_out_3_a_bits_size),
|
||||
.auto_anon_out_3_a_bits_source
|
||||
(_out_xbar_auto_anon_out_3_a_bits_source),
|
||||
.auto_anon_out_3_a_bits_address
|
||||
(_out_xbar_auto_anon_out_3_a_bits_address),
|
||||
.auto_anon_out_3_a_bits_user_amba_prot_bufferable
|
||||
(_out_xbar_auto_anon_out_3_a_bits_user_amba_prot_bufferable),
|
||||
.auto_anon_out_3_a_bits_user_amba_prot_modifiable
|
||||
(_out_xbar_auto_anon_out_3_a_bits_user_amba_prot_modifiable),
|
||||
.auto_anon_out_3_a_bits_user_amba_prot_readalloc
|
||||
(_out_xbar_auto_anon_out_3_a_bits_user_amba_prot_readalloc),
|
||||
.auto_anon_out_3_a_bits_user_amba_prot_writealloc
|
||||
(_out_xbar_auto_anon_out_3_a_bits_user_amba_prot_writealloc),
|
||||
.auto_anon_out_3_a_bits_user_amba_prot_privileged
|
||||
(_out_xbar_auto_anon_out_3_a_bits_user_amba_prot_privileged),
|
||||
.auto_anon_out_3_a_bits_user_amba_prot_secure
|
||||
(_out_xbar_auto_anon_out_3_a_bits_user_amba_prot_secure),
|
||||
.auto_anon_out_3_a_bits_user_amba_prot_fetch
|
||||
(_out_xbar_auto_anon_out_3_a_bits_user_amba_prot_fetch),
|
||||
.auto_anon_out_3_a_bits_mask
|
||||
(_out_xbar_auto_anon_out_3_a_bits_mask),
|
||||
.auto_anon_out_3_a_bits_data
|
||||
(_out_xbar_auto_anon_out_3_a_bits_data),
|
||||
.auto_anon_out_3_a_bits_corrupt
|
||||
(_out_xbar_auto_anon_out_3_a_bits_corrupt),
|
||||
.auto_anon_out_3_d_ready (_out_xbar_auto_anon_out_3_d_ready),
|
||||
.auto_anon_out_3_d_valid
|
||||
(_coupler_to_gps_auto_tl_in_d_valid),
|
||||
(_coupler_to_max2771_spi_auto_tl_in_d_valid),
|
||||
.auto_anon_out_3_d_bits_opcode
|
||||
(_coupler_to_gps_auto_tl_in_d_bits_opcode),
|
||||
.auto_anon_out_3_d_bits_param
|
||||
(_coupler_to_gps_auto_tl_in_d_bits_param),
|
||||
(_coupler_to_max2771_spi_auto_tl_in_d_bits_opcode),
|
||||
.auto_anon_out_3_d_bits_size
|
||||
(_coupler_to_gps_auto_tl_in_d_bits_size),
|
||||
(_coupler_to_max2771_spi_auto_tl_in_d_bits_size),
|
||||
.auto_anon_out_3_d_bits_source
|
||||
(_coupler_to_gps_auto_tl_in_d_bits_source),
|
||||
.auto_anon_out_3_d_bits_sink
|
||||
(_coupler_to_gps_auto_tl_in_d_bits_sink),
|
||||
.auto_anon_out_3_d_bits_denied
|
||||
(_coupler_to_gps_auto_tl_in_d_bits_denied),
|
||||
(_coupler_to_max2771_spi_auto_tl_in_d_bits_source),
|
||||
.auto_anon_out_3_d_bits_data
|
||||
(_coupler_to_gps_auto_tl_in_d_bits_data),
|
||||
.auto_anon_out_3_d_bits_corrupt
|
||||
(_coupler_to_gps_auto_tl_in_d_bits_corrupt),
|
||||
(_coupler_to_max2771_spi_auto_tl_in_d_bits_data),
|
||||
.auto_anon_out_2_a_ready
|
||||
(_coupler_to_fpga_pmod_spi_auto_tl_in_a_ready),
|
||||
.auto_anon_out_2_a_valid (_out_xbar_auto_anon_out_2_a_valid),
|
||||
@@ -1042,6 +1100,56 @@ module PeripheryBus_pbus(
|
||||
.auto_tl_in_d_bits_data
|
||||
(_coupler_to_fpga_pmod_spi_auto_tl_in_d_bits_data)
|
||||
);
|
||||
TLInterconnectCoupler_pbus_to_fpga_uart coupler_to_max2771_spi (
|
||||
.clock (_fixedClockNode_auto_anon_out_0_clock),
|
||||
.reset (_fixedClockNode_auto_anon_out_0_reset),
|
||||
.auto_fragmenter_anon_out_a_ready
|
||||
(auto_coupler_to_max2771_spi_fragmenter_anon_out_a_ready),
|
||||
.auto_fragmenter_anon_out_a_valid
|
||||
(auto_coupler_to_max2771_spi_fragmenter_anon_out_a_valid),
|
||||
.auto_fragmenter_anon_out_a_bits_opcode
|
||||
(auto_coupler_to_max2771_spi_fragmenter_anon_out_a_bits_opcode),
|
||||
.auto_fragmenter_anon_out_a_bits_size
|
||||
(auto_coupler_to_max2771_spi_fragmenter_anon_out_a_bits_size),
|
||||
.auto_fragmenter_anon_out_a_bits_source
|
||||
(auto_coupler_to_max2771_spi_fragmenter_anon_out_a_bits_source),
|
||||
.auto_fragmenter_anon_out_a_bits_address
|
||||
(auto_coupler_to_max2771_spi_fragmenter_anon_out_a_bits_address),
|
||||
.auto_fragmenter_anon_out_a_bits_mask
|
||||
(auto_coupler_to_max2771_spi_fragmenter_anon_out_a_bits_mask),
|
||||
.auto_fragmenter_anon_out_a_bits_data
|
||||
(auto_coupler_to_max2771_spi_fragmenter_anon_out_a_bits_data),
|
||||
.auto_fragmenter_anon_out_d_ready
|
||||
(auto_coupler_to_max2771_spi_fragmenter_anon_out_d_ready),
|
||||
.auto_fragmenter_anon_out_d_valid
|
||||
(auto_coupler_to_max2771_spi_fragmenter_anon_out_d_valid),
|
||||
.auto_fragmenter_anon_out_d_bits_opcode
|
||||
(auto_coupler_to_max2771_spi_fragmenter_anon_out_d_bits_opcode),
|
||||
.auto_fragmenter_anon_out_d_bits_size
|
||||
(auto_coupler_to_max2771_spi_fragmenter_anon_out_d_bits_size),
|
||||
.auto_fragmenter_anon_out_d_bits_source
|
||||
(auto_coupler_to_max2771_spi_fragmenter_anon_out_d_bits_source),
|
||||
.auto_fragmenter_anon_out_d_bits_data
|
||||
(auto_coupler_to_max2771_spi_fragmenter_anon_out_d_bits_data),
|
||||
.auto_tl_in_a_ready (_coupler_to_max2771_spi_auto_tl_in_a_ready),
|
||||
.auto_tl_in_a_valid (_out_xbar_auto_anon_out_3_a_valid),
|
||||
.auto_tl_in_a_bits_opcode (_out_xbar_auto_anon_out_3_a_bits_opcode),
|
||||
.auto_tl_in_a_bits_size (_out_xbar_auto_anon_out_3_a_bits_size),
|
||||
.auto_tl_in_a_bits_source (_out_xbar_auto_anon_out_3_a_bits_source),
|
||||
.auto_tl_in_a_bits_address (_out_xbar_auto_anon_out_3_a_bits_address),
|
||||
.auto_tl_in_a_bits_mask (_out_xbar_auto_anon_out_3_a_bits_mask),
|
||||
.auto_tl_in_a_bits_data (_out_xbar_auto_anon_out_3_a_bits_data),
|
||||
.auto_tl_in_d_ready (_out_xbar_auto_anon_out_3_d_ready),
|
||||
.auto_tl_in_d_valid (_coupler_to_max2771_spi_auto_tl_in_d_valid),
|
||||
.auto_tl_in_d_bits_opcode
|
||||
(_coupler_to_max2771_spi_auto_tl_in_d_bits_opcode),
|
||||
.auto_tl_in_d_bits_size
|
||||
(_coupler_to_max2771_spi_auto_tl_in_d_bits_size),
|
||||
.auto_tl_in_d_bits_source
|
||||
(_coupler_to_max2771_spi_auto_tl_in_d_bits_source),
|
||||
.auto_tl_in_d_bits_data
|
||||
(_coupler_to_max2771_spi_auto_tl_in_d_bits_data)
|
||||
);
|
||||
TLInterconnectCoupler_pbus_to_gps coupler_to_gps (
|
||||
.clock
|
||||
(_fixedClockNode_auto_anon_out_0_clock),
|
||||
@@ -1104,39 +1212,39 @@ module PeripheryBus_pbus(
|
||||
.auto_tl_in_a_ready
|
||||
(_coupler_to_gps_auto_tl_in_a_ready),
|
||||
.auto_tl_in_a_valid
|
||||
(_out_xbar_auto_anon_out_3_a_valid),
|
||||
(_out_xbar_auto_anon_out_4_a_valid),
|
||||
.auto_tl_in_a_bits_opcode
|
||||
(_out_xbar_auto_anon_out_3_a_bits_opcode),
|
||||
(_out_xbar_auto_anon_out_4_a_bits_opcode),
|
||||
.auto_tl_in_a_bits_param
|
||||
(_out_xbar_auto_anon_out_3_a_bits_param),
|
||||
(_out_xbar_auto_anon_out_4_a_bits_param),
|
||||
.auto_tl_in_a_bits_size
|
||||
(_out_xbar_auto_anon_out_3_a_bits_size),
|
||||
(_out_xbar_auto_anon_out_4_a_bits_size),
|
||||
.auto_tl_in_a_bits_source
|
||||
(_out_xbar_auto_anon_out_3_a_bits_source),
|
||||
(_out_xbar_auto_anon_out_4_a_bits_source),
|
||||
.auto_tl_in_a_bits_address
|
||||
(_out_xbar_auto_anon_out_3_a_bits_address),
|
||||
(_out_xbar_auto_anon_out_4_a_bits_address),
|
||||
.auto_tl_in_a_bits_user_amba_prot_bufferable
|
||||
(_out_xbar_auto_anon_out_3_a_bits_user_amba_prot_bufferable),
|
||||
(_out_xbar_auto_anon_out_4_a_bits_user_amba_prot_bufferable),
|
||||
.auto_tl_in_a_bits_user_amba_prot_modifiable
|
||||
(_out_xbar_auto_anon_out_3_a_bits_user_amba_prot_modifiable),
|
||||
(_out_xbar_auto_anon_out_4_a_bits_user_amba_prot_modifiable),
|
||||
.auto_tl_in_a_bits_user_amba_prot_readalloc
|
||||
(_out_xbar_auto_anon_out_3_a_bits_user_amba_prot_readalloc),
|
||||
(_out_xbar_auto_anon_out_4_a_bits_user_amba_prot_readalloc),
|
||||
.auto_tl_in_a_bits_user_amba_prot_writealloc
|
||||
(_out_xbar_auto_anon_out_3_a_bits_user_amba_prot_writealloc),
|
||||
(_out_xbar_auto_anon_out_4_a_bits_user_amba_prot_writealloc),
|
||||
.auto_tl_in_a_bits_user_amba_prot_privileged
|
||||
(_out_xbar_auto_anon_out_3_a_bits_user_amba_prot_privileged),
|
||||
(_out_xbar_auto_anon_out_4_a_bits_user_amba_prot_privileged),
|
||||
.auto_tl_in_a_bits_user_amba_prot_secure
|
||||
(_out_xbar_auto_anon_out_3_a_bits_user_amba_prot_secure),
|
||||
(_out_xbar_auto_anon_out_4_a_bits_user_amba_prot_secure),
|
||||
.auto_tl_in_a_bits_user_amba_prot_fetch
|
||||
(_out_xbar_auto_anon_out_3_a_bits_user_amba_prot_fetch),
|
||||
(_out_xbar_auto_anon_out_4_a_bits_user_amba_prot_fetch),
|
||||
.auto_tl_in_a_bits_mask
|
||||
(_out_xbar_auto_anon_out_3_a_bits_mask),
|
||||
(_out_xbar_auto_anon_out_4_a_bits_mask),
|
||||
.auto_tl_in_a_bits_data
|
||||
(_out_xbar_auto_anon_out_3_a_bits_data),
|
||||
(_out_xbar_auto_anon_out_4_a_bits_data),
|
||||
.auto_tl_in_a_bits_corrupt
|
||||
(_out_xbar_auto_anon_out_3_a_bits_corrupt),
|
||||
(_out_xbar_auto_anon_out_4_a_bits_corrupt),
|
||||
.auto_tl_in_d_ready
|
||||
(_out_xbar_auto_anon_out_3_d_ready),
|
||||
(_out_xbar_auto_anon_out_4_d_ready),
|
||||
.auto_tl_in_d_valid
|
||||
(_coupler_to_gps_auto_tl_in_d_valid),
|
||||
.auto_tl_in_d_bits_opcode
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
// Generated by CIRCT firtool-1.151.0
|
||||
module Repeater_TLBundleA_a29d64s2k1z3u_3(
|
||||
module Repeater_TLBundleA_a29d64s2k1z3u_4(
|
||||
input clock,
|
||||
reset,
|
||||
io_repeat,
|
||||
@@ -71,27 +71,28 @@ module SBToTL(
|
||||
wire _GEN_3 = |{io_addrIn[127:28], ~(io_addrIn[27:26])};
|
||||
wire _GEN_4 = |{io_addrIn[127:29], io_addrIn[28:12] ^ 17'h10013};
|
||||
wire _GEN_5 = |{io_addrIn[127:29], io_addrIn[28:13] ^ 16'h800A};
|
||||
wire _GEN_6 = |{io_addrIn[127:29], io_addrIn[28:15] ^ 14'h2004};
|
||||
wire _GEN_7 = |{io_addrIn[127:29], io_addrIn[28:13] ^ 16'h8014};
|
||||
wire _GEN_8 = |{io_addrIn[127:29], io_addrIn[28:12] ^ 17'h1002A};
|
||||
wire _GEN_9 = |{io_addrIn[127:32], io_addrIn[31:20] ^ 12'h800};
|
||||
wire _GEN_6 = |{io_addrIn[127:29], io_addrIn[28:12] ^ 17'h10016};
|
||||
wire _GEN_7 = |{io_addrIn[127:29], io_addrIn[28:15] ^ 14'h2004};
|
||||
wire _GEN_8 = |{io_addrIn[127:29], io_addrIn[28:13] ^ 16'h8014};
|
||||
wire _GEN_9 = |{io_addrIn[127:29], io_addrIn[28:12] ^ 17'h1002A};
|
||||
wire _GEN_10 = |{io_addrIn[127:32], io_addrIn[31:20] ^ 12'h800};
|
||||
wire io_rdLegal_0 =
|
||||
~_GEN_0 | ~_GEN_1 | {io_addrIn[127:17], ~(io_addrIn[16])} == 112'h0 | ~_GEN_2
|
||||
| ~_GEN_3 | ~_GEN_4 | ~_GEN_5 | ~_GEN_6 | ~_GEN_7 | ~_GEN_8 | ~_GEN_9;
|
||||
| ~_GEN_3 | ~_GEN_4 | ~_GEN_5 | ~_GEN_6 | ~_GEN_7 | ~_GEN_8 | ~_GEN_9 | ~_GEN_10;
|
||||
wire io_wrLegal_0 =
|
||||
~_GEN_0 | ~_GEN_1 | ~_GEN_2 | ~_GEN_3 | ~_GEN_4 | ~_GEN_5 | ~_GEN_6 | ~_GEN_7
|
||||
| ~_GEN_8 | ~_GEN_9;
|
||||
| ~_GEN_8 | ~_GEN_9 | ~_GEN_10;
|
||||
wire _nodeOut_a_valid_T = sbState == 3'h1;
|
||||
wire _nodeOut_a_valid_T_1 = sbState == 3'h2;
|
||||
wire rdTxValid = _rdTxValid_T & _d_q_io_deq_valid & d_q_io_deq_ready;
|
||||
wire txLast = {4'h0, counter} == (8'h1 << io_sizeIn) - 8'h1;
|
||||
wire _GEN_10 = sbState == 3'h0;
|
||||
wire _GEN_11 = sbState == 3'h0;
|
||||
wire nodeOut_a_valid = _nodeOut_a_valid_T | _nodeOut_a_valid_T_1;
|
||||
wire _GEN_11 =
|
||||
_GEN_10 | _nodeOut_a_valid_T | _nodeOut_a_valid_T_1 | _rdTxValid_T | _io_wrDone_T;
|
||||
wire _GEN_12 =
|
||||
_GEN_11 | _nodeOut_a_valid_T | _nodeOut_a_valid_T_1 | _rdTxValid_T | _io_wrDone_T;
|
||||
`ifndef SYNTHESIS
|
||||
always @(posedge clock) begin
|
||||
if ((`PRINTF_COND_) & ~reset & ~_GEN_11)
|
||||
if ((`PRINTF_COND_) & ~reset & ~_GEN_12)
|
||||
$fwrite(32'h80000002,
|
||||
"Assertion failed: SBA state machine in undefined state\n at SBA.scala:373 assert (sbState === Idle.id.U ||\n");
|
||||
end // always @(posedge)
|
||||
@@ -106,7 +107,7 @@ module SBToTL(
|
||||
automatic logic _counter_T_2;
|
||||
wrTxValid = _nodeOut_a_valid_T_1 & nodeOut_a_valid & auto_out_a_ready;
|
||||
_counter_T_2 = wrTxValid | rdTxValid;
|
||||
if (_GEN_10) begin
|
||||
if (_GEN_11) begin
|
||||
if (io_rdEn & io_rdLegal_0)
|
||||
sbState <= 3'h1;
|
||||
else if (io_wrEn & io_wrLegal_0)
|
||||
|
||||
@@ -94,42 +94,42 @@ module TLAtomicAutomata_cbus(
|
||||
wire _GEN =
|
||||
|{auto_in_a_bits_address[31:27],
|
||||
auto_in_a_bits_address[25],
|
||||
auto_in_a_bits_address[16:14],
|
||||
~(auto_in_a_bits_address[12])};
|
||||
wire _GEN_0 =
|
||||
auto_in_a_bits_address[17:14],
|
||||
~(auto_in_a_bits_address[13])};
|
||||
wire [15:0] _GEN_0 = auto_in_a_bits_address[28:13] ^ 16'h8009;
|
||||
wire _GEN_1 =
|
||||
|{auto_in_a_bits_address[31:29],
|
||||
auto_in_a_bits_address[28:27] ^ 2'h2,
|
||||
_GEN_0[15:14],
|
||||
auto_in_a_bits_address[25],
|
||||
auto_in_a_bits_address[16:15]};
|
||||
wire [14:0] _GEN_1 = auto_in_a_bits_address[28:14] ^ 15'h4002;
|
||||
wire _GEN_2 =
|
||||
_GEN_0[4:0]};
|
||||
wire [14:0] _GEN_2 = auto_in_a_bits_address[28:14] ^ 15'h4005;
|
||||
wire _GEN_3 =
|
||||
|{auto_in_a_bits_address[31:29],
|
||||
_GEN_1[14:13],
|
||||
_GEN_2[14:13],
|
||||
auto_in_a_bits_address[25],
|
||||
_GEN_1[2:0]};
|
||||
wire [16:0] _GEN_3 = auto_in_a_bits_address[28:12] ^ 17'h10011;
|
||||
wire _GEN_4 =
|
||||
_GEN_2[3:0]};
|
||||
wire [13:0] _GEN_4 = auto_in_a_bits_address[28:15] ^ 14'h2004;
|
||||
wire _GEN_5 =
|
||||
|{auto_in_a_bits_address[31:29],
|
||||
_GEN_3[16:15],
|
||||
_GEN_4[13:12],
|
||||
auto_in_a_bits_address[25],
|
||||
_GEN_3[4:2],
|
||||
_GEN_3[0]};
|
||||
wire [14:0] _GEN_5 = auto_in_a_bits_address[28:14] ^ 15'h4005;
|
||||
wire _GEN_6 =
|
||||
|{auto_in_a_bits_address[31:29],
|
||||
_GEN_5[14:13],
|
||||
auto_in_a_bits_address[25],
|
||||
_GEN_5[2:0]};
|
||||
wire _a_canArithmetic_T_59 = |(auto_in_a_bits_size[3:1]);
|
||||
_GEN_4[2:0]};
|
||||
wire [14:0] _GEN_6 = auto_in_a_bits_address[28:14] ^ 15'h400A;
|
||||
wire _GEN_7 =
|
||||
|{auto_in_a_bits_address[31:29],
|
||||
_GEN_6[14:13],
|
||||
auto_in_a_bits_address[25],
|
||||
_GEN_6[3:0]};
|
||||
wire _a_canArithmetic_T_59 = |(auto_in_a_bits_size[3:1]);
|
||||
wire _GEN_8 =
|
||||
|{auto_in_a_bits_address[31:27] ^ 5'h10, auto_in_a_bits_address[25]};
|
||||
wire a_isSupported =
|
||||
auto_in_a_bits_opcode == 3'h3
|
||||
? _a_canArithmetic_T_60 & (~_GEN | ~_GEN_0 | ~_GEN_2 | ~_GEN_4 | ~_GEN_6)
|
||||
| _a_canArithmetic_T_59 & _a_canArithmetic_T_60 & ~_GEN_7
|
||||
? _a_canArithmetic_T_60 & (~_GEN | ~_GEN_1 | ~_GEN_3 | ~_GEN_5 | ~_GEN_7)
|
||||
| _a_canArithmetic_T_59 & _a_canArithmetic_T_60 & ~_GEN_8
|
||||
: auto_in_a_bits_opcode != 3'h2 | _a_canArithmetic_T_60
|
||||
& (~_GEN | ~_GEN_0 | ~_GEN_2 | ~_GEN_4 | ~_GEN_6) | _a_canArithmetic_T_59
|
||||
& _a_canArithmetic_T_60 & ~_GEN_7;
|
||||
& (~_GEN | ~_GEN_1 | ~_GEN_3 | ~_GEN_5 | ~_GEN_7) | _a_canArithmetic_T_59
|
||||
& _a_canArithmetic_T_60 & ~_GEN_8;
|
||||
wire [3:0] _logic_out_T = cam_a_0_lut >> {2'h0, cam_a_0_bits_data[0], cam_d_0_data[0]};
|
||||
wire [3:0] _logic_out_T_2 =
|
||||
cam_a_0_lut >> {2'h0, cam_a_0_bits_data[1], cam_d_0_data[1]};
|
||||
@@ -257,7 +257,7 @@ module TLAtomicAutomata_cbus(
|
||||
cam_a_0_lut >> {2'h0, cam_a_0_bits_data[62], cam_d_0_data[62]};
|
||||
wire [3:0] _logic_out_T_126 =
|
||||
cam_a_0_lut >> {2'h0, cam_a_0_bits_data[63], cam_d_0_data[63]};
|
||||
wire [6:0] _GEN_8 = ~(cam_a_0_bits_mask[6:0]) | cam_a_0_bits_mask[7:1];
|
||||
wire [6:0] _GEN_9 = ~(cam_a_0_bits_mask[6:0]) | cam_a_0_bits_mask[7:1];
|
||||
wire [6:0] _signbit_a_T =
|
||||
{cam_a_0_bits_data[55],
|
||||
cam_a_0_bits_data[47],
|
||||
@@ -265,7 +265,7 @@ module TLAtomicAutomata_cbus(
|
||||
cam_a_0_bits_data[31],
|
||||
cam_a_0_bits_data[23],
|
||||
cam_a_0_bits_data[15],
|
||||
cam_a_0_bits_data[7]} & ~_GEN_8;
|
||||
cam_a_0_bits_data[7]} & ~_GEN_9;
|
||||
wire [6:0] _signbit_d_T =
|
||||
{cam_d_0_data[55],
|
||||
cam_d_0_data[47],
|
||||
@@ -273,7 +273,7 @@ module TLAtomicAutomata_cbus(
|
||||
cam_d_0_data[31],
|
||||
cam_d_0_data[23],
|
||||
cam_d_0_data[15],
|
||||
cam_d_0_data[7]} & ~_GEN_8;
|
||||
cam_d_0_data[7]} & ~_GEN_9;
|
||||
wire [7:0] _signext_a_T_2 = {_signbit_a_T, 1'h0} | {_signbit_a_T[5:0], 2'h0};
|
||||
wire [7:0] _signext_a_T_5 = _signext_a_T_2 | {_signext_a_T_2[5:0], 2'h0};
|
||||
wire [7:0] _signext_a_T_9 = _signext_a_T_5 | {_signext_a_T_5[3:0], 4'h0};
|
||||
@@ -343,15 +343,15 @@ module TLAtomicAutomata_cbus(
|
||||
reg [8:0] beatsLeft;
|
||||
wire idle = beatsLeft == 9'h0;
|
||||
wire winner_1 = ~cam_amo_0 & source_i_valid;
|
||||
wire _GEN_9 = ~cam_amo_0 | ~winner_1;
|
||||
wire _GEN_10 = ~cam_amo_0 | ~winner_1;
|
||||
wire _nodeOut_a_valid_T = cam_amo_0 | source_i_valid;
|
||||
wire _GEN_10 = ~_nodeOut_a_valid_T | cam_amo_0 | winner_1;
|
||||
wire _GEN_11 = ~_nodeOut_a_valid_T | cam_amo_0 | winner_1;
|
||||
`ifndef SYNTHESIS
|
||||
always @(posedge clock) begin
|
||||
if ((`PRINTF_COND_) & ~reset & ~_GEN_9)
|
||||
if ((`PRINTF_COND_) & ~reset & ~_GEN_10)
|
||||
$fwrite(32'h80000002,
|
||||
"Assertion failed\n at Arbiter.scala:77 assert((prefixOR zip winner) map { case (p,w) => !p || !w } reduce {_ && _})\n");
|
||||
if ((`PRINTF_COND_) & ~reset & ~_GEN_10)
|
||||
if ((`PRINTF_COND_) & ~reset & ~_GEN_11)
|
||||
$fwrite(32'h80000002,
|
||||
"Assertion failed\n at Arbiter.scala:79 assert (!valids.reduce(_||_) || winner.reduce(_||_))\n");
|
||||
end // always @(posedge)
|
||||
@@ -372,12 +372,12 @@ module TLAtomicAutomata_cbus(
|
||||
wire d_replace = d_first & auto_out_d_bits_opcode == 3'h0 & d_cam_sel_0;
|
||||
wire nodeOut_d_ready = auto_in_d_ready | d_drop;
|
||||
always @(posedge clock) begin
|
||||
automatic logic _GEN_11;
|
||||
automatic logic _d_first_T;
|
||||
automatic logic _GEN_12;
|
||||
_GEN_11 = source_i_ready & source_i_valid & ~a_isSupported & cam_free_0;
|
||||
automatic logic _d_first_T;
|
||||
automatic logic _GEN_13;
|
||||
_GEN_12 = source_i_ready & source_i_valid & ~a_isSupported & cam_free_0;
|
||||
_d_first_T = nodeOut_d_ready & auto_out_d_valid;
|
||||
_GEN_12 = _d_first_T & d_first;
|
||||
_GEN_13 = _d_first_T & d_first;
|
||||
if (~reset) begin
|
||||
end
|
||||
if (reset) begin
|
||||
@@ -389,11 +389,11 @@ module TLAtomicAutomata_cbus(
|
||||
end
|
||||
else begin
|
||||
automatic logic [26:0] _decode_T = 27'hFFF << auto_in_a_bits_size;
|
||||
if (_GEN_12 & d_cam_sel_0)
|
||||
if (_GEN_13 & d_cam_sel_0)
|
||||
cam_s_0_state <= {d_ackd, 1'h0};
|
||||
else if (auto_out_a_ready & (idle | state_0) & cam_amo_0)
|
||||
cam_s_0_state <= 2'h1;
|
||||
else if (_GEN_11)
|
||||
else if (_GEN_12)
|
||||
cam_s_0_state <= 2'h3;
|
||||
beatsLeft <=
|
||||
idle & auto_out_a_ready
|
||||
@@ -411,8 +411,8 @@ module TLAtomicAutomata_cbus(
|
||||
: d_first_counter - 9'h1;
|
||||
end
|
||||
end
|
||||
if (_GEN_11) begin
|
||||
automatic logic [3:0][3:0] _GEN_13 = '{4'hC, 4'h8, 4'hE, 4'h6};
|
||||
if (_GEN_12) begin
|
||||
automatic logic [3:0][3:0] _GEN_14 = '{4'hC, 4'h8, 4'hE, 4'h6};
|
||||
cam_a_0_bits_opcode <= auto_in_a_bits_opcode;
|
||||
cam_a_0_bits_param <= auto_in_a_bits_param;
|
||||
cam_a_0_bits_size <= auto_in_a_bits_size;
|
||||
@@ -428,9 +428,9 @@ module TLAtomicAutomata_cbus(
|
||||
cam_a_0_bits_mask <= auto_in_a_bits_mask;
|
||||
cam_a_0_bits_data <= auto_in_a_bits_data;
|
||||
cam_a_0_bits_corrupt <= auto_in_a_bits_corrupt;
|
||||
cam_a_0_lut <= _GEN_13[auto_in_a_bits_param[1:0]];
|
||||
cam_a_0_lut <= _GEN_14[auto_in_a_bits_param[1:0]];
|
||||
end
|
||||
if (_GEN_12 & d_cam_sel_0 & d_ackd) begin
|
||||
if (_GEN_13 & d_cam_sel_0 & d_ackd) begin
|
||||
cam_d_0_data <= auto_out_d_bits_data;
|
||||
cam_d_0_denied <= auto_out_d_bits_denied;
|
||||
cam_d_0_corrupt <= auto_out_d_bits_corrupt;
|
||||
|
||||
@@ -0,0 +1,115 @@
|
||||
// Generated by CIRCT firtool-1.151.0
|
||||
module TLMAX2771SPI(
|
||||
input clock,
|
||||
reset,
|
||||
output auto_in_a_ready,
|
||||
input auto_in_a_valid,
|
||||
input [2:0] auto_in_a_bits_opcode,
|
||||
input [1:0] auto_in_a_bits_size,
|
||||
input [5:0] auto_in_a_bits_source,
|
||||
input [28:0] auto_in_a_bits_address,
|
||||
input [7:0] auto_in_a_bits_mask,
|
||||
input [63:0] auto_in_a_bits_data,
|
||||
input auto_in_d_ready,
|
||||
output auto_in_d_valid,
|
||||
output [2:0] auto_in_d_bits_opcode,
|
||||
output [1:0] auto_in_d_bits_size,
|
||||
output [5:0] auto_in_d_bits_source,
|
||||
output [63:0] auto_in_d_bits_data,
|
||||
output auto_sdata_oe_out,
|
||||
auto_sdata_out_out,
|
||||
input auto_sdata_in_in,
|
||||
output auto_csn_out,
|
||||
auto_sclk_out
|
||||
);
|
||||
|
||||
wire _out_wofireMux_T_4;
|
||||
wire _out_T_26;
|
||||
wire _out_back_front_q_io_deq_valid;
|
||||
wire _out_back_front_q_io_deq_bits_read;
|
||||
wire [8:0] _out_back_front_q_io_deq_bits_index;
|
||||
wire [63:0] _out_back_front_q_io_deq_bits_data;
|
||||
wire [7:0] _out_back_front_q_io_deq_bits_mask;
|
||||
wire [31:0] _engine_read_data;
|
||||
wire _engine_busy;
|
||||
wire _engine_ready;
|
||||
reg [31:0] writeData;
|
||||
wire _out_out_bits_data_T_1 =
|
||||
_out_back_front_q_io_deq_bits_index[8:2] == 7'h0;
|
||||
wire out_womask =
|
||||
&{{8{_out_back_front_q_io_deq_bits_mask[3]}},
|
||||
{8{_out_back_front_q_io_deq_bits_mask[2]}},
|
||||
{8{_out_back_front_q_io_deq_bits_mask[1]}},
|
||||
{8{_out_back_front_q_io_deq_bits_mask[0]}}};
|
||||
wire _out_T_15 = _engine_ready | ~out_womask;
|
||||
wire out_womask_1 =
|
||||
&{{8{_out_back_front_q_io_deq_bits_mask[7]}},
|
||||
{8{_out_back_front_q_io_deq_bits_mask[6]}},
|
||||
{8{_out_back_front_q_io_deq_bits_mask[5]}},
|
||||
{8{_out_back_front_q_io_deq_bits_mask[4]}}};
|
||||
assign _out_T_26 = _engine_ready | ~out_womask_1;
|
||||
assign _out_wofireMux_T_4 =
|
||||
_out_back_front_q_io_deq_valid & auto_in_d_ready & ~_out_back_front_q_io_deq_bits_read
|
||||
& _out_back_front_q_io_deq_bits_index[1:0] == 2'h0 & _out_out_bits_data_T_1;
|
||||
wire [3:0] _GEN =
|
||||
{{1'h1},
|
||||
{1'h1},
|
||||
{1'h1},
|
||||
{|{_out_T_26 & _out_T_15, _out_back_front_q_io_deq_bits_index[8:2]}}};
|
||||
wire out_oready =
|
||||
_out_back_front_q_io_deq_bits_read | _GEN[_out_back_front_q_io_deq_bits_index[1:0]];
|
||||
wire [3:0][63:0] _GEN_0 =
|
||||
{{64'h4D41583100000007},
|
||||
{64'h367EE402FAF080},
|
||||
{{30'h0, _engine_busy, _engine_ready, _engine_read_data}},
|
||||
{64'h0}};
|
||||
always @(posedge clock) begin
|
||||
if (reset)
|
||||
writeData <= 32'h0;
|
||||
else if (_out_wofireMux_T_4 & _out_T_15 & out_womask_1 & _engine_ready)
|
||||
writeData <= _out_back_front_q_io_deq_bits_data[63:32];
|
||||
end // always @(posedge)
|
||||
max2771_spi_engine #(
|
||||
.CLOCK_HZ(50000000),
|
||||
.MAX_SCLK_HZ(4000000)
|
||||
) engine (
|
||||
.clk (clock),
|
||||
.rst_n (~reset),
|
||||
.start (_out_wofireMux_T_4 & _out_T_26 & out_womask & _engine_ready),
|
||||
.read_not_write (_out_back_front_q_io_deq_bits_data[8]),
|
||||
.address (_out_back_front_q_io_deq_bits_data[3:0]),
|
||||
.write_data (writeData),
|
||||
.read_data (_engine_read_data),
|
||||
.busy (_engine_busy),
|
||||
.ready (_engine_ready),
|
||||
.sclk (auto_sclk_out),
|
||||
.csn (auto_csn_out),
|
||||
.sdata_i (auto_sdata_in_in),
|
||||
.sdata_o (auto_sdata_out_out),
|
||||
.sdata_oe (auto_sdata_oe_out)
|
||||
);
|
||||
Queue1_RegMapperInput_i9_m8 out_back_front_q (
|
||||
.clock (clock),
|
||||
.reset (reset),
|
||||
.io_enq_ready (auto_in_a_ready),
|
||||
.io_enq_valid (auto_in_a_valid),
|
||||
.io_enq_bits_read (auto_in_a_bits_opcode == 3'h4),
|
||||
.io_enq_bits_index (auto_in_a_bits_address[11:3]),
|
||||
.io_enq_bits_data (auto_in_a_bits_data),
|
||||
.io_enq_bits_mask (auto_in_a_bits_mask),
|
||||
.io_enq_bits_extra_tlrr_extra_source (auto_in_a_bits_source),
|
||||
.io_enq_bits_extra_tlrr_extra_size (auto_in_a_bits_size),
|
||||
.io_deq_ready (auto_in_d_ready & out_oready),
|
||||
.io_deq_valid (_out_back_front_q_io_deq_valid),
|
||||
.io_deq_bits_read (_out_back_front_q_io_deq_bits_read),
|
||||
.io_deq_bits_index (_out_back_front_q_io_deq_bits_index),
|
||||
.io_deq_bits_data (_out_back_front_q_io_deq_bits_data),
|
||||
.io_deq_bits_mask (_out_back_front_q_io_deq_bits_mask),
|
||||
.io_deq_bits_extra_tlrr_extra_source (auto_in_d_bits_source),
|
||||
.io_deq_bits_extra_tlrr_extra_size (auto_in_d_bits_size)
|
||||
);
|
||||
assign auto_in_d_valid = _out_back_front_q_io_deq_valid & out_oready;
|
||||
assign auto_in_d_bits_opcode = {2'h0, _out_back_front_q_io_deq_bits_read};
|
||||
assign auto_in_d_bits_data =
|
||||
_out_out_bits_data_T_1 ? _GEN_0[_out_back_front_q_io_deq_bits_index[1:0]] : 64'h0;
|
||||
endmodule
|
||||
@@ -12,8 +12,168 @@ module TLROM(
|
||||
output [63:0] auto_in_d_bits_data
|
||||
);
|
||||
|
||||
wire [255:0][63:0] _GEN =
|
||||
wire [511:0][63:0] _GEN =
|
||||
'{64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
64'h0,
|
||||
@@ -112,58 +272,154 @@ module TLROM(
|
||||
64'h52524520544F4F42,
|
||||
64'h80000000,
|
||||
64'h80000000,
|
||||
64'hBFC1,
|
||||
64'h40500A780230084,
|
||||
64'h87B3EABFF0EF4501,
|
||||
64'h80826105690264A2,
|
||||
64'hC3984709100147B7,
|
||||
64'h644260E2EADFF0EF,
|
||||
64'h127EE630004079B,
|
||||
64'h4401ED3FF0EF0FF4,
|
||||
64'h7513EDBFF0EF0FF5,
|
||||
64'h75130084551BEE7F,
|
||||
64'hF0EF0FF575130104,
|
||||
64'h551BEF3FF0EF0184,
|
||||
64'h551BEFBFF0EF454D,
|
||||
64'h8082,
|
||||
64'h4505BFC9F03D99CA,
|
||||
64'h9904BB4124043B,
|
||||
64'hDD61E07FF0EF8526,
|
||||
64'h85CE864A80826161,
|
||||
64'h6BA26B426AE27A02,
|
||||
64'h79A2794274E26406,
|
||||
64'h60A64501BE9FF0EF,
|
||||
64'h4511E105D3FFF0EF,
|
||||
64'h6A050513017AA023,
|
||||
64'h6561BBDFF0EFFF27,
|
||||
64'hE7E3000A079BBE1F,
|
||||
64'hF0EF0A050007C503,
|
||||
64'h14987B34A01C45F,
|
||||
64'hF0EF8526BF7FF0EF,
|
||||
64'hAA0234549BE9F,
|
||||
64'hF0EF0004091B00F4,
|
||||
64'h74630007891B40FB,
|
||||
64'h7BB0FF4F793CD39,
|
||||
64'hD6DFF0EFC135D99F,
|
||||
64'hF0EF6A0505136561,
|
||||
64'h4B8910014AB71000,
|
||||
64'hB1306E7ED638432,
|
||||
64'h8F85930102061713,
|
||||
64'hC54189AE8D79E45E,
|
||||
64'hE85AEC56F052F84A,
|
||||
64'hE0A2E486F44E00B0,
|
||||
64'h3733001535130095,
|
||||
64'h3533FFF7851384AA,
|
||||
64'hFC26020007B7715D,
|
||||
64'hE060563B7BDCA3F,
|
||||
64'hF0EF4511BF9D842A,
|
||||
64'hEEDFF0EF9D25F005,
|
||||
64'h51B6541D159080C,
|
||||
64'h842A6622F01FF0EF,
|
||||
64'hE4328526FEF61BE3,
|
||||
64'h60500D7002300C5,
|
||||
64'h87331000079356FD,
|
||||
64'h80CCD054601842A,
|
||||
64'hE33FF0EF6C050513,
|
||||
64'hC01C002DC5374789,
|
||||
64'hCB3FF0EFD23FF0EF,
|
||||
64'h8526CD5FF0EF0DC0,
|
||||
64'h513000420231001,
|
||||
64'h4437CCDFF0EFD165,
|
||||
64'h842AE3FFF0EFD565,
|
||||
64'h842AE6DFF0EF6A05,
|
||||
64'h513656180826155,
|
||||
64'h64F27412852270B2,
|
||||
64'h4401C9018911EC7F,
|
||||
64'hF0EF00F56D6384AA,
|
||||
64'h1FE07B7EB918FE9,
|
||||
64'hEE26F222F60617FD,
|
||||
64'h7169FE0107B7BFCD,
|
||||
64'h4501808261556952,
|
||||
64'h64F2741270B24505,
|
||||
64'hFC5D94B29D319C11,
|
||||
64'hFEC763E30007871B,
|
||||
64'h78502E692630007,
|
||||
64'h47030006C68300F4,
|
||||
64'h873300F586B3080C,
|
||||
64'h478165026622F5BF,
|
||||
64'hF0EFE02AE4320007,
|
||||
64'h861B100007930089,
|
||||
64'h746387A2080C1000,
|
||||
64'h9138432F60684AE,
|
||||
64'hEA4AEE26F2227169,
|
||||
64'h8082808261056902,
|
||||
64'h64A2C39847091001,
|
||||
64'h47B7644260E2D99F,
|
||||
64'hF0EFFE87E6E30004,
|
||||
64'h879B00A780230485,
|
||||
64'h9907B3DC7FF0EF,
|
||||
64'h45014481E23FF0EF,
|
||||
64'h8526DD5FF0EF454D,
|
||||
64'h7A023100147B7,
|
||||
64'hEF1FF0EF8932E04A,
|
||||
64'h84AE842AE426E822,
|
||||
64'hEC06110180826145,
|
||||
64'h694264E265227402,
|
||||
64'hC01C70A24789F17F,
|
||||
64'hF0EFE42A25018D5D,
|
||||
64'h8FD90104979B0089,
|
||||
64'h171BF43FF0EF4501,
|
||||
64'h892AF4BFF0EF4501,
|
||||
64'h84AAF53FF0EF4501,
|
||||
64'hF59FF0EF00042023,
|
||||
64'h9F00513F4DFF0EF,
|
||||
64'h10014437E84AEC26,
|
||||
64'hF022F4067179B799,
|
||||
64'h6105D40505130003,
|
||||
64'h153764A260E26442,
|
||||
64'hC004F73FF0EFF8FF,
|
||||
64'hF0EF000420230990,
|
||||
64'h513F83FF0EFF71F,
|
||||
64'hF0EFC0043E800513,
|
||||
64'hF91FF0EFFADFF0EF,
|
||||
64'h4202306600513,
|
||||
64'hFA1FF0EFC004FA7F,
|
||||
64'hF0EFEC0644891001,
|
||||
64'h4437E426E8221101,
|
||||
64'hDCBFF0EF892EE04A,
|
||||
64'h84AA8432E426E822,
|
||||
64'hEC06110104E7EF63,
|
||||
64'h8F89930102061713,
|
||||
64'h6A76563FFF78713,
|
||||
64'h20007B7EBB58FD9,
|
||||
64'h15B71300163793,
|
||||
64'h8082610565226442,
|
||||
64'hC01C60E24789E11F,
|
||||
64'hF0EFE42AE2FFF0EF,
|
||||
64'h4501E35FF0EF0350,
|
||||
64'h513000420231001,
|
||||
64'h4437E2DFF0EFE822,
|
||||
64'hEC061101B7ED4501,
|
||||
64'hFD27EFE38F85601C,
|
||||
64'h80826105690264A2,
|
||||
64'h644260E200153513,
|
||||
64'h6057513EB990015,
|
||||
64'h7793F95FF0EF892A,
|
||||
64'hEC06E04A6004E426,
|
||||
64'h14610200C437E822,
|
||||
64'h1101808201410015,
|
||||
64'h3513157906357513,
|
||||
64'h60A2FBDFF0EFECBF,
|
||||
64'hF0EF4519ED1FF0EF,
|
||||
64'hE406030005131141,
|
||||
64'h8082610565226442,
|
||||
64'hC01C60E24789EA9F,
|
||||
64'hF0EFE42AEC7FF0EF,
|
||||
64'h4501ECDFF0EF4515,
|
||||
64'h4202310014437,
|
||||
64'hEC3FF0EFE822EC06,
|
||||
64'h1101808261456942,
|
||||
64'h64E265227402C01C,
|
||||
64'h70A24789EDFFF0EF,
|
||||
64'hE42A25018D5D8FD9,
|
||||
64'h104979B0089171B,
|
||||
64'hF0BFF0EF4501892A,
|
||||
64'hF13FF0EF450184AA,
|
||||
64'hF1BFF0EF4501F21F,
|
||||
64'hF0EF0004202309F0,
|
||||
64'h513F15FF0EF1001,
|
||||
64'h4437E84AEC26F022,
|
||||
64'hF406717980820141,
|
||||
64'h60A2FEE6FEE38F11,
|
||||
64'h639812B0069317E1,
|
||||
64'hFF87B6030200C7B7,
|
||||
64'hF85FF0EF0F000513,
|
||||
64'hC3984709100147B7,
|
||||
64'hF53FF0EFE4061141,
|
||||
64'h8082C39847091001,
|
||||
64'h47B7808261050FF5,
|
||||
64'h751360E247881001,
|
||||
64'h47B7FD3FF0EFC3C8,
|
||||
64'h185151B100147B7,
|
||||
64'h6522FE3FF0EFE42A,
|
||||
64'hEC0611018082FFF5,
|
||||
64'h8B85431C10014737,
|
||||
64'hDFF58B85431C0731,
|
||||
64'h10014737BFC5C63E,
|
||||
64'h278547B280820141,
|
||||
64'hA7E46347B2C602,
|
||||
64'h114180824F881001,
|
||||
64'h47B7BFAD014160A2,
|
||||
64'h64020FF47513F89F,
|
||||
64'hF0EF0FF575130084,
|
||||
64'h551BF95FF0EF0FF5,
|
||||
64'h75130104551BFA1F,
|
||||
64'hF0EFE4060185551B,
|
||||
64'h842AE02211418082,
|
||||
64'h61056442C01C60E2,
|
||||
64'h4789FA5FF0EFFC1F,
|
||||
64'hF0EF000420231001,
|
||||
64'h44376522FB7FF0EF,
|
||||
64'hE42AE822EC061101,
|
||||
64'h808261050FF57513,
|
||||
64'h60E24788100147B7,
|
||||
64'hFD3FF0EFC3C80185,
|
||||
64'h151B100147B76522,
|
||||
64'hFE3FF0EFE42AEC06,
|
||||
64'h11018082FFF58B85,
|
||||
64'h431C10014737DFF5,
|
||||
64'h8B85431C07311001,
|
||||
64'h473780824F881001,
|
||||
64'h37B780824BC81001,
|
||||
64'h37B780824B881001,
|
||||
64'h37B7808280826105,
|
||||
@@ -194,58 +450,58 @@ module TLROM(
|
||||
64'h8082616145016406,
|
||||
64'h60A6978201816783,
|
||||
64'h100FE39FF0EF,
|
||||
64'h2E05051300000517,
|
||||
64'h5E05051300000517,
|
||||
64'hE07FF0EF4562E4BF,
|
||||
64'hF0EF3C2505130000,
|
||||
64'h517F4B798E33BE5,
|
||||
64'hF0EF6C2505130000,
|
||||
64'h517F4B798E36BE5,
|
||||
64'h51300000517FFF5,
|
||||
64'hC593578204A6E463,
|
||||
64'h40C786BB32070713,
|
||||
64'h55FD938102061793,
|
||||
64'hEDB8873745724652,
|
||||
64'h258000EF45420141,
|
||||
64'h344000EF45420141,
|
||||
64'h65834672E91FF0EF,
|
||||
64'h3385051300000517,
|
||||
64'h6385051300000517,
|
||||
64'hE5FFF0EF4572EA3F,
|
||||
64'hF0EF3FA505130000,
|
||||
64'hF0EF6FA505130000,
|
||||
64'h517E71FF0EF4552,
|
||||
64'hEB5FF0EF3FC50513,
|
||||
64'hEB5FF0EF6FC50513,
|
||||
64'h517E83FF0EF,
|
||||
64'h4542EC7FF0EF3FE5,
|
||||
64'h4542EC7FF0EF6FE5,
|
||||
64'h51300000517B7E9,
|
||||
64'h3F05051300000517,
|
||||
64'h6F05051300000517,
|
||||
64'hF7776380100737,
|
||||
64'h9FAD0005D76345D2,
|
||||
64'hB7D53FA505130000,
|
||||
64'hB7D56FA505130000,
|
||||
64'h51785BE00E6E863,
|
||||
64'hFFF7869B000F0737,
|
||||
64'h47F2F25FF0EF3F65,
|
||||
64'h47F2F25FF0EF6F65,
|
||||
64'h5130000051700F7,
|
||||
64'h863040007934722,
|
||||
64'hF5976347854592,
|
||||
64'hF59F6340450513,
|
||||
64'hF59F6370450513,
|
||||
64'h51765278793,
|
||||
64'h544257B7458230E0,
|
||||
64'h544257B745823FA0,
|
||||
64'hEF040006130180,
|
||||
64'h537858AF49FF0EF,
|
||||
64'h3F05051300000517,
|
||||
64'h6F05051300000517,
|
||||
64'hF17FF0EF8522F5BF,
|
||||
64'hF0EF422505130000,
|
||||
64'h517842A2E2000EF,
|
||||
64'h28C000EF286000EF,
|
||||
64'hF75FF0EF41C50513,
|
||||
64'hF0EF722505130000,
|
||||
64'h517842A304000EF,
|
||||
64'h2D4000EF2CE000EF,
|
||||
64'hF75FF0EF71C50513,
|
||||
64'h517F43FF0EF,
|
||||
64'h1800537F89FF0EF,
|
||||
64'h4385051300000517,
|
||||
64'h7385051300000517,
|
||||
64'hF95FF0EFE0A2E486,
|
||||
64'h4285051300000517,
|
||||
64'h7285051300000517,
|
||||
64'h715DBFF510500073,
|
||||
64'hFADFF0EF45450513,
|
||||
64'hFADFF0EF75450513,
|
||||
64'h517F7BFF0EF,
|
||||
64'h6522FBFFF0EF4465,
|
||||
64'h6522FBFFF0EF7465,
|
||||
64'h51300000517FCBF,
|
||||
64'hF0EF8522FD1FF0EF,
|
||||
64'hE42EEC0644450513,
|
||||
64'hE42EEC0674450513,
|
||||
64'h517842AE822,
|
||||
64'h1101B7F51FC000EF,
|
||||
64'h405808201416402,
|
||||
@@ -255,8 +511,8 @@ module TLROM(
|
||||
64'h64E2740270A2FE94,
|
||||
64'h17E322A000EF3471,
|
||||
64'h7C50397CA8BBD,
|
||||
64'h89D7BB54F15B69,
|
||||
64'h913000009174471,
|
||||
64'h89D7BB54F18B69,
|
||||
64'h913000019174471,
|
||||
64'h89AAF406E44EE84A,
|
||||
64'hEC26F0227179BFF5,
|
||||
64'h105000730FF0000F,
|
||||
@@ -265,15 +521,15 @@ module TLROM(
|
||||
64'h25E000EFBFDD02A1,
|
||||
64'h2B0230062F663,
|
||||
64'h83B3030003B283,
|
||||
64'h4D03839300000397,
|
||||
64'h7D03839300000397,
|
||||
64'h1528011011B0000,
|
||||
64'h11373002A0736299,
|
||||
64'hE301819300001197};
|
||||
64'h1301819300001197};
|
||||
assign auto_in_a_ready = auto_in_d_ready;
|
||||
assign auto_in_d_valid = auto_in_a_valid;
|
||||
assign auto_in_d_bits_size = auto_in_a_bits_size;
|
||||
assign auto_in_d_bits_source = auto_in_a_bits_source;
|
||||
assign auto_in_d_bits_data =
|
||||
(|(auto_in_a_bits_address[15:11])) ? 64'h0 : _GEN[auto_in_a_bits_address[10:3]];
|
||||
(|(auto_in_a_bits_address[15:12])) ? 64'h0 : _GEN[auto_in_a_bits_address[11:3]];
|
||||
endmodule
|
||||
|
||||
|
||||
@@ -103,7 +103,7 @@ module TLWidthWidget8_2(
|
||||
if (_anonIn_d_bits_data_T_2 & anonIn_d_bits_data_masked_enable_0)
|
||||
anonIn_d_bits_data_rdata_0 <= auto_anon_out_d_bits_data;
|
||||
end // always @(posedge)
|
||||
Repeater_TLBundleA_a29d64s2k1z3u_3 repeated_repeater (
|
||||
Repeater_TLBundleA_a29d64s2k1z3u_4 repeated_repeater (
|
||||
.clock (clock),
|
||||
.reset (reset),
|
||||
.io_repeat (~repeat_last),
|
||||
|
||||
@@ -165,7 +165,7 @@ module TLXbar_cbus_out_i1_o7_a32d64s2k1z4u(
|
||||
auto_anon_in_a_bits_address[28:27],
|
||||
auto_anon_in_a_bits_address[25],
|
||||
auto_anon_in_a_bits_address[16],
|
||||
~(auto_anon_in_a_bits_address[12])} == 6'h0;
|
||||
~(auto_anon_in_a_bits_address[13])} == 6'h0;
|
||||
wire requestAIO_0_1 =
|
||||
{auto_anon_in_a_bits_address[31],
|
||||
auto_anon_in_a_bits_address[28:27] ^ 2'h2,
|
||||
@@ -184,7 +184,7 @@ module TLXbar_cbus_out_i1_o7_a32d64s2k1z4u(
|
||||
auto_anon_in_a_bits_address[28:27],
|
||||
auto_anon_in_a_bits_address[25],
|
||||
auto_anon_in_a_bits_address[16],
|
||||
auto_anon_in_a_bits_address[12]} == 6'h0;
|
||||
auto_anon_in_a_bits_address[13]} == 6'h0;
|
||||
wire requestAIO_0_5 =
|
||||
{~(auto_anon_in_a_bits_address[31]),
|
||||
auto_anon_in_a_bits_address[28:27],
|
||||
|
||||
+121
-71
@@ -8,7 +8,7 @@
|
||||
`define PRINTF_COND_ 1
|
||||
`endif // PRINTF_COND
|
||||
`endif // not def PRINTF_COND_
|
||||
module TLXbar_pbus_out_i1_o4_a29d64s2k1z3u(
|
||||
module TLXbar_pbus_out_i1_o5_a29d64s2k1z3u(
|
||||
input clock,
|
||||
reset,
|
||||
output auto_anon_in_a_ready,
|
||||
@@ -38,34 +38,48 @@ module TLXbar_pbus_out_i1_o4_a29d64s2k1z3u(
|
||||
auto_anon_in_d_bits_denied,
|
||||
output [63:0] auto_anon_in_d_bits_data,
|
||||
output auto_anon_in_d_bits_corrupt,
|
||||
input auto_anon_out_3_a_ready,
|
||||
input auto_anon_out_4_a_ready,
|
||||
output auto_anon_out_4_a_valid,
|
||||
output [2:0] auto_anon_out_4_a_bits_opcode,
|
||||
auto_anon_out_4_a_bits_param,
|
||||
auto_anon_out_4_a_bits_size,
|
||||
output [1:0] auto_anon_out_4_a_bits_source,
|
||||
output [28:0] auto_anon_out_4_a_bits_address,
|
||||
output auto_anon_out_4_a_bits_user_amba_prot_bufferable,
|
||||
auto_anon_out_4_a_bits_user_amba_prot_modifiable,
|
||||
auto_anon_out_4_a_bits_user_amba_prot_readalloc,
|
||||
auto_anon_out_4_a_bits_user_amba_prot_writealloc,
|
||||
auto_anon_out_4_a_bits_user_amba_prot_privileged,
|
||||
auto_anon_out_4_a_bits_user_amba_prot_secure,
|
||||
auto_anon_out_4_a_bits_user_amba_prot_fetch,
|
||||
output [7:0] auto_anon_out_4_a_bits_mask,
|
||||
output [63:0] auto_anon_out_4_a_bits_data,
|
||||
output auto_anon_out_4_a_bits_corrupt,
|
||||
auto_anon_out_4_d_ready,
|
||||
input auto_anon_out_4_d_valid,
|
||||
input [2:0] auto_anon_out_4_d_bits_opcode,
|
||||
input [1:0] auto_anon_out_4_d_bits_param,
|
||||
input [2:0] auto_anon_out_4_d_bits_size,
|
||||
input [1:0] auto_anon_out_4_d_bits_source,
|
||||
input auto_anon_out_4_d_bits_sink,
|
||||
auto_anon_out_4_d_bits_denied,
|
||||
input [63:0] auto_anon_out_4_d_bits_data,
|
||||
input auto_anon_out_4_d_bits_corrupt,
|
||||
auto_anon_out_3_a_ready,
|
||||
output auto_anon_out_3_a_valid,
|
||||
output [2:0] auto_anon_out_3_a_bits_opcode,
|
||||
auto_anon_out_3_a_bits_param,
|
||||
auto_anon_out_3_a_bits_size,
|
||||
output [1:0] auto_anon_out_3_a_bits_source,
|
||||
output [28:0] auto_anon_out_3_a_bits_address,
|
||||
output auto_anon_out_3_a_bits_user_amba_prot_bufferable,
|
||||
auto_anon_out_3_a_bits_user_amba_prot_modifiable,
|
||||
auto_anon_out_3_a_bits_user_amba_prot_readalloc,
|
||||
auto_anon_out_3_a_bits_user_amba_prot_writealloc,
|
||||
auto_anon_out_3_a_bits_user_amba_prot_privileged,
|
||||
auto_anon_out_3_a_bits_user_amba_prot_secure,
|
||||
auto_anon_out_3_a_bits_user_amba_prot_fetch,
|
||||
output [7:0] auto_anon_out_3_a_bits_mask,
|
||||
output [63:0] auto_anon_out_3_a_bits_data,
|
||||
output auto_anon_out_3_a_bits_corrupt,
|
||||
auto_anon_out_3_d_ready,
|
||||
output auto_anon_out_3_d_ready,
|
||||
input auto_anon_out_3_d_valid,
|
||||
input [2:0] auto_anon_out_3_d_bits_opcode,
|
||||
input [1:0] auto_anon_out_3_d_bits_param,
|
||||
input [2:0] auto_anon_out_3_d_bits_size,
|
||||
auto_anon_out_3_d_bits_size,
|
||||
input [1:0] auto_anon_out_3_d_bits_source,
|
||||
input auto_anon_out_3_d_bits_sink,
|
||||
auto_anon_out_3_d_bits_denied,
|
||||
input [63:0] auto_anon_out_3_d_bits_data,
|
||||
input auto_anon_out_3_d_bits_corrupt,
|
||||
auto_anon_out_2_a_ready,
|
||||
input auto_anon_out_2_a_ready,
|
||||
output auto_anon_out_2_a_valid,
|
||||
output [2:0] auto_anon_out_2_a_bits_opcode,
|
||||
auto_anon_out_2_a_bits_size,
|
||||
@@ -117,44 +131,55 @@ module TLXbar_pbus_out_i1_o4_a29d64s2k1z3u(
|
||||
{auto_anon_in_a_bits_address[17],
|
||||
auto_anon_in_a_bits_address[13],
|
||||
~(auto_anon_in_a_bits_address[12])} == 3'h0;
|
||||
wire requestAIO_0_3 =
|
||||
{auto_anon_in_a_bits_address[17], auto_anon_in_a_bits_address[13:12] ^ 2'h2} == 3'h0;
|
||||
reg [2:0] beatsLeft;
|
||||
wire idle = beatsLeft == 3'h0;
|
||||
wire [3:0] readys_valid =
|
||||
{auto_anon_out_3_d_valid,
|
||||
wire [4:0] readys_valid =
|
||||
{auto_anon_out_4_d_valid,
|
||||
auto_anon_out_3_d_valid,
|
||||
auto_anon_out_2_d_valid,
|
||||
auto_anon_out_1_d_valid,
|
||||
auto_anon_out_0_d_valid};
|
||||
reg [3:0] readys_mask;
|
||||
wire [3:0] _readys_filter_T = ~readys_mask;
|
||||
wire [3:0] _readys_filter_T_1 = readys_valid & _readys_filter_T;
|
||||
wire _GEN = auto_anon_out_3_d_valid & _readys_filter_T[3];
|
||||
wire [5:0] _GEN_0 =
|
||||
{_readys_filter_T_1[2:0],
|
||||
reg [4:0] readys_mask;
|
||||
wire [4:0] _readys_filter_T = ~readys_mask;
|
||||
wire [4:0] _readys_filter_T_1 = readys_valid & _readys_filter_T;
|
||||
wire _GEN = auto_anon_out_4_d_valid & _readys_filter_T[4];
|
||||
wire [7:0] _GEN_0 =
|
||||
{_readys_filter_T_1[3:0],
|
||||
auto_anon_out_4_d_valid,
|
||||
auto_anon_out_3_d_valid,
|
||||
auto_anon_out_2_d_valid,
|
||||
auto_anon_out_1_d_valid}
|
||||
| {_readys_filter_T_1, auto_anon_out_3_d_valid, auto_anon_out_2_d_valid};
|
||||
wire [7:0] readys_unready =
|
||||
{1'h0, _GEN, _GEN_0[5], _GEN_0[4:0] | {_GEN, _GEN_0[5:2]}} | {readys_mask, 4'h0};
|
||||
wire [3:0] readys_readys = ~(readys_unready[7:4] & readys_unready[3:0]);
|
||||
| {_readys_filter_T_1,
|
||||
auto_anon_out_4_d_valid,
|
||||
auto_anon_out_3_d_valid,
|
||||
auto_anon_out_2_d_valid};
|
||||
wire [6:0] _GEN_1 = _GEN_0[6:0] | {_GEN, _GEN_0[7:2]};
|
||||
wire [9:0] readys_unready =
|
||||
{1'h0, _GEN, _GEN_0[7], _GEN_1[6:5], _GEN_1[4:0] | {_GEN, _GEN_0[7], _GEN_1[6:4]}}
|
||||
| {readys_mask, 5'h0};
|
||||
wire [4:0] readys_readys = ~(readys_unready[9:5] & readys_unready[4:0]);
|
||||
wire winner_0 = readys_readys[0] & auto_anon_out_0_d_valid;
|
||||
wire winner_1 = readys_readys[1] & auto_anon_out_1_d_valid;
|
||||
wire winner_2 = readys_readys[2] & auto_anon_out_2_d_valid;
|
||||
wire winner_3 = readys_readys[3] & auto_anon_out_3_d_valid;
|
||||
wire winner_4 = readys_readys[4] & auto_anon_out_4_d_valid;
|
||||
wire prefixOR_2 = winner_0 | winner_1;
|
||||
wire _GEN_1 =
|
||||
(~winner_0 | ~winner_1) & (~prefixOR_2 | ~winner_2)
|
||||
& (~(prefixOR_2 | winner_2) | ~winner_3);
|
||||
wire _in_0_d_valid_T = auto_anon_out_0_d_valid | auto_anon_out_1_d_valid;
|
||||
wire prefixOR_3 = prefixOR_2 | winner_2;
|
||||
wire _GEN_2 =
|
||||
~(_in_0_d_valid_T | auto_anon_out_2_d_valid | auto_anon_out_3_d_valid) | winner_0
|
||||
| winner_1 | winner_2 | winner_3;
|
||||
(~winner_0 | ~winner_1) & (~prefixOR_2 | ~winner_2) & (~prefixOR_3 | ~winner_3)
|
||||
& (~(prefixOR_3 | winner_3) | ~winner_4);
|
||||
wire _in_0_d_valid_T = auto_anon_out_0_d_valid | auto_anon_out_1_d_valid;
|
||||
wire _GEN_3 =
|
||||
~(_in_0_d_valid_T | auto_anon_out_2_d_valid | auto_anon_out_3_d_valid
|
||||
| auto_anon_out_4_d_valid) | winner_0 | winner_1 | winner_2 | winner_3 | winner_4;
|
||||
`ifndef SYNTHESIS
|
||||
always @(posedge clock) begin
|
||||
if ((`PRINTF_COND_) & ~reset & ~_GEN_1)
|
||||
if ((`PRINTF_COND_) & ~reset & ~_GEN_2)
|
||||
$fwrite(32'h80000002,
|
||||
"Assertion failed\n at Arbiter.scala:77 assert((prefixOR zip winner) map { case (p,w) => !p || !w } reduce {_ && _})\n");
|
||||
if ((`PRINTF_COND_) & ~reset & ~_GEN_2)
|
||||
if ((`PRINTF_COND_) & ~reset & ~_GEN_3)
|
||||
$fwrite(32'h80000002,
|
||||
"Assertion failed\n at Arbiter.scala:79 assert (!valids.reduce(_||_) || winner.reduce(_||_))\n");
|
||||
end // always @(posedge)
|
||||
@@ -163,28 +188,34 @@ module TLXbar_pbus_out_i1_o4_a29d64s2k1z3u(
|
||||
reg state_1;
|
||||
reg state_2;
|
||||
reg state_3;
|
||||
reg state_4;
|
||||
wire muxState_0 = idle ? winner_0 : state_0;
|
||||
wire muxState_1 = idle ? winner_1 : state_1;
|
||||
wire muxState_2 = idle ? winner_2 : state_2;
|
||||
wire muxState_3 = idle ? winner_3 : state_3;
|
||||
wire muxState_4 = idle ? winner_4 : state_4;
|
||||
wire in_0_d_valid =
|
||||
idle
|
||||
? _in_0_d_valid_T | auto_anon_out_2_d_valid | auto_anon_out_3_d_valid
|
||||
| auto_anon_out_4_d_valid
|
||||
: state_0 & auto_anon_out_0_d_valid | state_1 & auto_anon_out_1_d_valid | state_2
|
||||
& auto_anon_out_2_d_valid | state_3 & auto_anon_out_3_d_valid;
|
||||
& auto_anon_out_2_d_valid | state_3 & auto_anon_out_3_d_valid | state_4
|
||||
& auto_anon_out_4_d_valid;
|
||||
always @(posedge clock) begin
|
||||
if (~reset) begin
|
||||
end
|
||||
if (reset) begin
|
||||
beatsLeft <= 3'h0;
|
||||
readys_mask <= 4'hF;
|
||||
readys_mask <= 5'h1F;
|
||||
state_0 <= 1'h0;
|
||||
state_1 <= 1'h0;
|
||||
state_2 <= 1'h0;
|
||||
state_3 <= 1'h0;
|
||||
state_4 <= 1'h0;
|
||||
end
|
||||
else begin
|
||||
automatic logic latch = idle & auto_anon_in_d_ready;
|
||||
automatic logic [12:0] _beatsDO_decode_T_12 = 13'h3F << auto_anon_out_4_d_bits_size;
|
||||
automatic logic [12:0] _beatsDO_decode_T_9 = 13'h3F << auto_anon_out_3_d_bits_size;
|
||||
automatic logic [12:0] _beatsDO_decode_T_6 = 13'h3F << auto_anon_out_2_d_bits_size;
|
||||
automatic logic [12:0] _beatsDO_decode_T_3 = 13'h3F << auto_anon_out_1_d_bits_size;
|
||||
@@ -203,73 +234,92 @@ module TLXbar_pbus_out_i1_o4_a29d64s2k1z3u(
|
||||
| (winner_3 & auto_anon_out_3_d_bits_opcode[0]
|
||||
? ~(_beatsDO_decode_T_9[5:3])
|
||||
: 3'h0)
|
||||
| (winner_4 & auto_anon_out_4_d_bits_opcode[0]
|
||||
? ~(_beatsDO_decode_T_12[5:3])
|
||||
: 3'h0)
|
||||
: beatsLeft - {2'h0, auto_anon_in_d_ready & in_0_d_valid};
|
||||
if (latch & (|readys_valid)) begin
|
||||
automatic logic [3:0] _readys_mask_T = readys_readys & readys_valid;
|
||||
automatic logic [3:0] _readys_mask_T_3 =
|
||||
_readys_mask_T | {_readys_mask_T[2:0], 1'h0};
|
||||
readys_mask <= _readys_mask_T_3 | {_readys_mask_T_3[1:0], 2'h0};
|
||||
automatic logic [4:0] _readys_mask_T = readys_readys & readys_valid;
|
||||
automatic logic [4:0] _readys_mask_T_3 =
|
||||
_readys_mask_T | {_readys_mask_T[3:0], 1'h0};
|
||||
automatic logic [4:0] _readys_mask_T_6 =
|
||||
_readys_mask_T_3 | {_readys_mask_T_3[2:0], 2'h0};
|
||||
readys_mask <= _readys_mask_T_6 | {_readys_mask_T_6[0], 4'h0};
|
||||
end
|
||||
if (idle) begin
|
||||
state_0 <= winner_0;
|
||||
state_1 <= winner_1;
|
||||
state_2 <= winner_2;
|
||||
state_3 <= winner_3;
|
||||
state_4 <= winner_4;
|
||||
end
|
||||
end
|
||||
end // always @(posedge)
|
||||
assign auto_anon_in_a_ready =
|
||||
requestAIO_0_0 & auto_anon_out_0_a_ready | requestAIO_0_1 & auto_anon_out_1_a_ready
|
||||
| requestAIO_0_2 & auto_anon_out_2_a_ready | auto_anon_in_a_bits_address[17]
|
||||
& auto_anon_out_3_a_ready;
|
||||
| requestAIO_0_2 & auto_anon_out_2_a_ready | requestAIO_0_3 & auto_anon_out_3_a_ready
|
||||
| auto_anon_in_a_bits_address[17] & auto_anon_out_4_a_ready;
|
||||
assign auto_anon_in_d_valid = in_0_d_valid;
|
||||
assign auto_anon_in_d_bits_opcode =
|
||||
(muxState_0 ? auto_anon_out_0_d_bits_opcode : 3'h0)
|
||||
| (muxState_1 ? auto_anon_out_1_d_bits_opcode : 3'h0)
|
||||
| (muxState_2 ? auto_anon_out_2_d_bits_opcode : 3'h0)
|
||||
| (muxState_3 ? auto_anon_out_3_d_bits_opcode : 3'h0);
|
||||
assign auto_anon_in_d_bits_param = muxState_3 ? auto_anon_out_3_d_bits_param : 2'h0;
|
||||
| (muxState_3 ? auto_anon_out_3_d_bits_opcode : 3'h0)
|
||||
| (muxState_4 ? auto_anon_out_4_d_bits_opcode : 3'h0);
|
||||
assign auto_anon_in_d_bits_param = muxState_4 ? auto_anon_out_4_d_bits_param : 2'h0;
|
||||
assign auto_anon_in_d_bits_size =
|
||||
(muxState_0 ? auto_anon_out_0_d_bits_size : 3'h0)
|
||||
| (muxState_1 ? auto_anon_out_1_d_bits_size : 3'h0)
|
||||
| (muxState_2 ? auto_anon_out_2_d_bits_size : 3'h0)
|
||||
| (muxState_3 ? auto_anon_out_3_d_bits_size : 3'h0);
|
||||
| (muxState_3 ? auto_anon_out_3_d_bits_size : 3'h0)
|
||||
| (muxState_4 ? auto_anon_out_4_d_bits_size : 3'h0);
|
||||
assign auto_anon_in_d_bits_source =
|
||||
(muxState_0 ? auto_anon_out_0_d_bits_source : 2'h0)
|
||||
| (muxState_1 ? auto_anon_out_1_d_bits_source : 2'h0)
|
||||
| (muxState_2 ? auto_anon_out_2_d_bits_source : 2'h0)
|
||||
| (muxState_3 ? auto_anon_out_3_d_bits_source : 2'h0);
|
||||
assign auto_anon_in_d_bits_sink = muxState_3 & auto_anon_out_3_d_bits_sink;
|
||||
assign auto_anon_in_d_bits_denied = muxState_3 & auto_anon_out_3_d_bits_denied;
|
||||
| (muxState_3 ? auto_anon_out_3_d_bits_source : 2'h0)
|
||||
| (muxState_4 ? auto_anon_out_4_d_bits_source : 2'h0);
|
||||
assign auto_anon_in_d_bits_sink = muxState_4 & auto_anon_out_4_d_bits_sink;
|
||||
assign auto_anon_in_d_bits_denied = muxState_4 & auto_anon_out_4_d_bits_denied;
|
||||
assign auto_anon_in_d_bits_data =
|
||||
(muxState_0 ? auto_anon_out_0_d_bits_data : 64'h0)
|
||||
| (muxState_1 ? auto_anon_out_1_d_bits_data : 64'h0)
|
||||
| (muxState_2 ? auto_anon_out_2_d_bits_data : 64'h0)
|
||||
| (muxState_3 ? auto_anon_out_3_d_bits_data : 64'h0);
|
||||
assign auto_anon_in_d_bits_corrupt = muxState_3 & auto_anon_out_3_d_bits_corrupt;
|
||||
assign auto_anon_out_3_a_valid = auto_anon_in_a_valid & auto_anon_in_a_bits_address[17];
|
||||
| (muxState_3 ? auto_anon_out_3_d_bits_data : 64'h0)
|
||||
| (muxState_4 ? auto_anon_out_4_d_bits_data : 64'h0);
|
||||
assign auto_anon_in_d_bits_corrupt = muxState_4 & auto_anon_out_4_d_bits_corrupt;
|
||||
assign auto_anon_out_4_a_valid = auto_anon_in_a_valid & auto_anon_in_a_bits_address[17];
|
||||
assign auto_anon_out_4_a_bits_opcode = auto_anon_in_a_bits_opcode;
|
||||
assign auto_anon_out_4_a_bits_param = auto_anon_in_a_bits_param;
|
||||
assign auto_anon_out_4_a_bits_size = auto_anon_in_a_bits_size;
|
||||
assign auto_anon_out_4_a_bits_source = auto_anon_in_a_bits_source;
|
||||
assign auto_anon_out_4_a_bits_address = auto_anon_in_a_bits_address;
|
||||
assign auto_anon_out_4_a_bits_user_amba_prot_bufferable =
|
||||
auto_anon_in_a_bits_user_amba_prot_bufferable;
|
||||
assign auto_anon_out_4_a_bits_user_amba_prot_modifiable =
|
||||
auto_anon_in_a_bits_user_amba_prot_modifiable;
|
||||
assign auto_anon_out_4_a_bits_user_amba_prot_readalloc =
|
||||
auto_anon_in_a_bits_user_amba_prot_readalloc;
|
||||
assign auto_anon_out_4_a_bits_user_amba_prot_writealloc =
|
||||
auto_anon_in_a_bits_user_amba_prot_writealloc;
|
||||
assign auto_anon_out_4_a_bits_user_amba_prot_privileged =
|
||||
auto_anon_in_a_bits_user_amba_prot_privileged;
|
||||
assign auto_anon_out_4_a_bits_user_amba_prot_secure =
|
||||
auto_anon_in_a_bits_user_amba_prot_secure;
|
||||
assign auto_anon_out_4_a_bits_user_amba_prot_fetch =
|
||||
auto_anon_in_a_bits_user_amba_prot_fetch;
|
||||
assign auto_anon_out_4_a_bits_mask = auto_anon_in_a_bits_mask;
|
||||
assign auto_anon_out_4_a_bits_data = auto_anon_in_a_bits_data;
|
||||
assign auto_anon_out_4_a_bits_corrupt = auto_anon_in_a_bits_corrupt;
|
||||
assign auto_anon_out_4_d_ready =
|
||||
auto_anon_in_d_ready & (idle ? readys_readys[4] : state_4);
|
||||
assign auto_anon_out_3_a_valid = auto_anon_in_a_valid & requestAIO_0_3;
|
||||
assign auto_anon_out_3_a_bits_opcode = auto_anon_in_a_bits_opcode;
|
||||
assign auto_anon_out_3_a_bits_param = auto_anon_in_a_bits_param;
|
||||
assign auto_anon_out_3_a_bits_size = auto_anon_in_a_bits_size;
|
||||
assign auto_anon_out_3_a_bits_source = auto_anon_in_a_bits_source;
|
||||
assign auto_anon_out_3_a_bits_address = auto_anon_in_a_bits_address;
|
||||
assign auto_anon_out_3_a_bits_user_amba_prot_bufferable =
|
||||
auto_anon_in_a_bits_user_amba_prot_bufferable;
|
||||
assign auto_anon_out_3_a_bits_user_amba_prot_modifiable =
|
||||
auto_anon_in_a_bits_user_amba_prot_modifiable;
|
||||
assign auto_anon_out_3_a_bits_user_amba_prot_readalloc =
|
||||
auto_anon_in_a_bits_user_amba_prot_readalloc;
|
||||
assign auto_anon_out_3_a_bits_user_amba_prot_writealloc =
|
||||
auto_anon_in_a_bits_user_amba_prot_writealloc;
|
||||
assign auto_anon_out_3_a_bits_user_amba_prot_privileged =
|
||||
auto_anon_in_a_bits_user_amba_prot_privileged;
|
||||
assign auto_anon_out_3_a_bits_user_amba_prot_secure =
|
||||
auto_anon_in_a_bits_user_amba_prot_secure;
|
||||
assign auto_anon_out_3_a_bits_user_amba_prot_fetch =
|
||||
auto_anon_in_a_bits_user_amba_prot_fetch;
|
||||
assign auto_anon_out_3_a_bits_mask = auto_anon_in_a_bits_mask;
|
||||
assign auto_anon_out_3_a_bits_data = auto_anon_in_a_bits_data;
|
||||
assign auto_anon_out_3_a_bits_corrupt = auto_anon_in_a_bits_corrupt;
|
||||
assign auto_anon_out_3_d_ready =
|
||||
auto_anon_in_d_ready & (idle ? readys_readys[3] : state_3);
|
||||
assign auto_anon_out_2_a_valid = auto_anon_in_a_valid & requestAIO_0_2;
|
||||
@@ -37,6 +37,11 @@ module VCU118RocketSystem(
|
||||
input [3:0] pmod_spi_dq_i,
|
||||
output [3:0] pmod_spi_dq_o,
|
||||
pmod_spi_dq_oe,
|
||||
output max2771_spi_sclk,
|
||||
max2771_spi_csn,
|
||||
input max2771_spi_sdata_i,
|
||||
output max2771_spi_sdata_o,
|
||||
max2771_spi_sdata_oe,
|
||||
input pmod_irq,
|
||||
gps_acq_clk,
|
||||
gps_trck_clk,
|
||||
@@ -65,6 +70,12 @@ module VCU118RocketSystem(
|
||||
wire _fpga_gps_domain_auto_dev_int_out_7;
|
||||
wire _fpga_gps_domain_auto_dev_int_out_8;
|
||||
wire _fpga_gps_domain_auto_dev_int_out_9;
|
||||
wire _max2771_spi_domain_auto_dev_in_a_ready;
|
||||
wire _max2771_spi_domain_auto_dev_in_d_valid;
|
||||
wire [2:0] _max2771_spi_domain_auto_dev_in_d_bits_opcode;
|
||||
wire [1:0] _max2771_spi_domain_auto_dev_in_d_bits_size;
|
||||
wire [5:0] _max2771_spi_domain_auto_dev_in_d_bits_source;
|
||||
wire [63:0] _max2771_spi_domain_auto_dev_in_d_bits_data;
|
||||
wire _fpga_pmod_spi_domain_auto_dev_in_a_ready;
|
||||
wire _fpga_pmod_spi_domain_auto_dev_in_d_valid;
|
||||
wire [2:0] _fpga_pmod_spi_domain_auto_dev_in_d_bits_opcode;
|
||||
@@ -280,6 +291,14 @@ module VCU118RocketSystem(
|
||||
wire [31:0] _pbus_auto_coupler_to_gps_fragmenter_anon_out_a_bits_data;
|
||||
wire _pbus_auto_coupler_to_gps_fragmenter_anon_out_a_bits_corrupt;
|
||||
wire _pbus_auto_coupler_to_gps_fragmenter_anon_out_d_ready;
|
||||
wire _pbus_auto_coupler_to_max2771_spi_fragmenter_anon_out_a_valid;
|
||||
wire [2:0] _pbus_auto_coupler_to_max2771_spi_fragmenter_anon_out_a_bits_opcode;
|
||||
wire [1:0] _pbus_auto_coupler_to_max2771_spi_fragmenter_anon_out_a_bits_size;
|
||||
wire [5:0] _pbus_auto_coupler_to_max2771_spi_fragmenter_anon_out_a_bits_source;
|
||||
wire [28:0] _pbus_auto_coupler_to_max2771_spi_fragmenter_anon_out_a_bits_address;
|
||||
wire [7:0] _pbus_auto_coupler_to_max2771_spi_fragmenter_anon_out_a_bits_mask;
|
||||
wire [63:0] _pbus_auto_coupler_to_max2771_spi_fragmenter_anon_out_a_bits_data;
|
||||
wire _pbus_auto_coupler_to_max2771_spi_fragmenter_anon_out_d_ready;
|
||||
wire _pbus_auto_coupler_to_fpga_pmod_spi_fragmenter_anon_out_a_valid;
|
||||
wire [2:0] _pbus_auto_coupler_to_fpga_pmod_spi_fragmenter_anon_out_a_bits_opcode;
|
||||
wire [1:0] _pbus_auto_coupler_to_fpga_pmod_spi_fragmenter_anon_out_a_bits_size;
|
||||
@@ -304,6 +323,8 @@ module VCU118RocketSystem(
|
||||
wire [7:0] _pbus_auto_coupler_to_fpga_uart_fragmenter_anon_out_a_bits_mask;
|
||||
wire [63:0] _pbus_auto_coupler_to_fpga_uart_fragmenter_anon_out_a_bits_data;
|
||||
wire _pbus_auto_coupler_to_fpga_uart_fragmenter_anon_out_d_ready;
|
||||
wire _pbus_auto_fixedClockNode_anon_out_4_clock;
|
||||
wire _pbus_auto_fixedClockNode_anon_out_4_reset;
|
||||
wire _pbus_auto_fixedClockNode_anon_out_3_clock;
|
||||
wire _pbus_auto_fixedClockNode_anon_out_3_reset;
|
||||
wire _pbus_auto_fixedClockNode_anon_out_2_clock;
|
||||
@@ -699,6 +720,34 @@ module VCU118RocketSystem(
|
||||
(_fpga_gps_domain_auto_tl2apb_in_d_bits_data),
|
||||
.auto_coupler_to_gps_fragmenter_anon_out_d_bits_corrupt
|
||||
(_fpga_gps_domain_auto_tl2apb_in_d_bits_corrupt),
|
||||
.auto_coupler_to_max2771_spi_fragmenter_anon_out_a_ready
|
||||
(_max2771_spi_domain_auto_dev_in_a_ready),
|
||||
.auto_coupler_to_max2771_spi_fragmenter_anon_out_a_valid
|
||||
(_pbus_auto_coupler_to_max2771_spi_fragmenter_anon_out_a_valid),
|
||||
.auto_coupler_to_max2771_spi_fragmenter_anon_out_a_bits_opcode
|
||||
(_pbus_auto_coupler_to_max2771_spi_fragmenter_anon_out_a_bits_opcode),
|
||||
.auto_coupler_to_max2771_spi_fragmenter_anon_out_a_bits_size
|
||||
(_pbus_auto_coupler_to_max2771_spi_fragmenter_anon_out_a_bits_size),
|
||||
.auto_coupler_to_max2771_spi_fragmenter_anon_out_a_bits_source
|
||||
(_pbus_auto_coupler_to_max2771_spi_fragmenter_anon_out_a_bits_source),
|
||||
.auto_coupler_to_max2771_spi_fragmenter_anon_out_a_bits_address
|
||||
(_pbus_auto_coupler_to_max2771_spi_fragmenter_anon_out_a_bits_address),
|
||||
.auto_coupler_to_max2771_spi_fragmenter_anon_out_a_bits_mask
|
||||
(_pbus_auto_coupler_to_max2771_spi_fragmenter_anon_out_a_bits_mask),
|
||||
.auto_coupler_to_max2771_spi_fragmenter_anon_out_a_bits_data
|
||||
(_pbus_auto_coupler_to_max2771_spi_fragmenter_anon_out_a_bits_data),
|
||||
.auto_coupler_to_max2771_spi_fragmenter_anon_out_d_ready
|
||||
(_pbus_auto_coupler_to_max2771_spi_fragmenter_anon_out_d_ready),
|
||||
.auto_coupler_to_max2771_spi_fragmenter_anon_out_d_valid
|
||||
(_max2771_spi_domain_auto_dev_in_d_valid),
|
||||
.auto_coupler_to_max2771_spi_fragmenter_anon_out_d_bits_opcode
|
||||
(_max2771_spi_domain_auto_dev_in_d_bits_opcode),
|
||||
.auto_coupler_to_max2771_spi_fragmenter_anon_out_d_bits_size
|
||||
(_max2771_spi_domain_auto_dev_in_d_bits_size),
|
||||
.auto_coupler_to_max2771_spi_fragmenter_anon_out_d_bits_source
|
||||
(_max2771_spi_domain_auto_dev_in_d_bits_source),
|
||||
.auto_coupler_to_max2771_spi_fragmenter_anon_out_d_bits_data
|
||||
(_max2771_spi_domain_auto_dev_in_d_bits_data),
|
||||
.auto_coupler_to_fpga_pmod_spi_fragmenter_anon_out_a_ready
|
||||
(_fpga_pmod_spi_domain_auto_dev_in_a_ready),
|
||||
.auto_coupler_to_fpga_pmod_spi_fragmenter_anon_out_a_valid
|
||||
@@ -783,6 +832,10 @@ module VCU118RocketSystem(
|
||||
(_fpga_uart_domain_auto_dev_in_d_bits_source),
|
||||
.auto_coupler_to_fpga_uart_fragmenter_anon_out_d_bits_data
|
||||
(_fpga_uart_domain_auto_dev_in_d_bits_data),
|
||||
.auto_fixedClockNode_anon_out_4_clock
|
||||
(_pbus_auto_fixedClockNode_anon_out_4_clock),
|
||||
.auto_fixedClockNode_anon_out_4_reset
|
||||
(_pbus_auto_fixedClockNode_anon_out_4_reset),
|
||||
.auto_fixedClockNode_anon_out_3_clock
|
||||
(_pbus_auto_fixedClockNode_anon_out_3_clock),
|
||||
.auto_fixedClockNode_anon_out_3_reset
|
||||
@@ -1594,6 +1647,37 @@ module VCU118RocketSystem(
|
||||
.auto_clock_in_clock (_pbus_auto_fixedClockNode_anon_out_2_clock),
|
||||
.auto_clock_in_reset (_pbus_auto_fixedClockNode_anon_out_2_reset)
|
||||
);
|
||||
MAX2771SPIClockSinkDomain max2771_spi_domain (
|
||||
.auto_dev_in_a_ready (_max2771_spi_domain_auto_dev_in_a_ready),
|
||||
.auto_dev_in_a_valid
|
||||
(_pbus_auto_coupler_to_max2771_spi_fragmenter_anon_out_a_valid),
|
||||
.auto_dev_in_a_bits_opcode
|
||||
(_pbus_auto_coupler_to_max2771_spi_fragmenter_anon_out_a_bits_opcode),
|
||||
.auto_dev_in_a_bits_size
|
||||
(_pbus_auto_coupler_to_max2771_spi_fragmenter_anon_out_a_bits_size),
|
||||
.auto_dev_in_a_bits_source
|
||||
(_pbus_auto_coupler_to_max2771_spi_fragmenter_anon_out_a_bits_source),
|
||||
.auto_dev_in_a_bits_address
|
||||
(_pbus_auto_coupler_to_max2771_spi_fragmenter_anon_out_a_bits_address),
|
||||
.auto_dev_in_a_bits_mask
|
||||
(_pbus_auto_coupler_to_max2771_spi_fragmenter_anon_out_a_bits_mask),
|
||||
.auto_dev_in_a_bits_data
|
||||
(_pbus_auto_coupler_to_max2771_spi_fragmenter_anon_out_a_bits_data),
|
||||
.auto_dev_in_d_ready
|
||||
(_pbus_auto_coupler_to_max2771_spi_fragmenter_anon_out_d_ready),
|
||||
.auto_dev_in_d_valid (_max2771_spi_domain_auto_dev_in_d_valid),
|
||||
.auto_dev_in_d_bits_opcode (_max2771_spi_domain_auto_dev_in_d_bits_opcode),
|
||||
.auto_dev_in_d_bits_size (_max2771_spi_domain_auto_dev_in_d_bits_size),
|
||||
.auto_dev_in_d_bits_source (_max2771_spi_domain_auto_dev_in_d_bits_source),
|
||||
.auto_dev_in_d_bits_data (_max2771_spi_domain_auto_dev_in_d_bits_data),
|
||||
.auto_dev_sdata_oe_out (max2771_spi_sdata_oe),
|
||||
.auto_dev_sdata_out_out (max2771_spi_sdata_o),
|
||||
.auto_dev_sdata_in_in (max2771_spi_sdata_i),
|
||||
.auto_dev_csn_out (max2771_spi_csn),
|
||||
.auto_dev_sclk_out (max2771_spi_sclk),
|
||||
.auto_clock_in_clock (_pbus_auto_fixedClockNode_anon_out_3_clock),
|
||||
.auto_clock_in_reset (_pbus_auto_fixedClockNode_anon_out_3_reset)
|
||||
);
|
||||
FPGAGPSClockSinkDomain fpga_gps_domain (
|
||||
.auto_tl2apb_in_a_ready
|
||||
(_fpga_gps_domain_auto_tl2apb_in_a_ready),
|
||||
@@ -1675,9 +1759,9 @@ module VCU118RocketSystem(
|
||||
.auto_dev_int_out_9
|
||||
(_fpga_gps_domain_auto_dev_int_out_9),
|
||||
.auto_clock_in_clock
|
||||
(_pbus_auto_fixedClockNode_anon_out_3_clock),
|
||||
(_pbus_auto_fixedClockNode_anon_out_4_clock),
|
||||
.auto_clock_in_reset
|
||||
(_pbus_auto_fixedClockNode_anon_out_3_reset)
|
||||
(_pbus_auto_fixedClockNode_anon_out_4_reset)
|
||||
);
|
||||
endmodule
|
||||
|
||||
|
||||
@@ -44,6 +44,7 @@
|
||||
./FixedClockBroadcast_1.sv
|
||||
./FixedClockBroadcast_3.sv
|
||||
./FixedClockBroadcast_5.sv
|
||||
./FixedClockBroadcast_6.sv
|
||||
./FPGAGPSClockSinkDomain.sv
|
||||
./FPGASPIClockSinkDomain.sv
|
||||
./FPGAUARTClockSinkDomain.sv
|
||||
@@ -72,6 +73,7 @@
|
||||
./IntXbar_i3_o1.sv
|
||||
./ITLB.sv
|
||||
./LevelGateway.sv
|
||||
./MAX2771SPIClockSinkDomain.sv
|
||||
./MulAddRecFNPipe_l2_e11_s53.sv
|
||||
./MulAddRecFNPipe_l2_e8_s24.sv
|
||||
./MulAddRecFNToRaw_postMul_1.sv
|
||||
@@ -121,7 +123,7 @@
|
||||
./Repeater_TLBundleA_a26d64s2k1z3u.sv
|
||||
./Repeater_TLBundleA_a28d64s2k1z3u.sv
|
||||
./Repeater_TLBundleA_a29d32s2k1z3u.sv
|
||||
./Repeater_TLBundleA_a29d64s2k1z3u_3.sv
|
||||
./Repeater_TLBundleA_a29d64s2k1z3u_4.sv
|
||||
./Repeater_TLBundleA_a29d64s2k1z3u.sv
|
||||
./Repeater_TLBundleA_a32d64s2k1z3u.sv
|
||||
./Repeater_TLBundleD_a32d64s1k1z4u.sv
|
||||
@@ -192,6 +194,7 @@
|
||||
./TLInterconnectCoupler_sbus_from_bus_named_fbus.sv
|
||||
./TLInterconnectCoupler_sbus_from_rockettile.sv
|
||||
./TLInterconnectCoupler_sbus_to_bus_named_cbus.sv
|
||||
./TLMAX2771SPI.sv
|
||||
./TLPLIC.sv
|
||||
./TLROM.sv
|
||||
./TLToAPB.sv
|
||||
@@ -207,7 +210,7 @@
|
||||
./TLXbar_fbus_i1_o1_a32d64s1k1z4u.sv
|
||||
./TLXbar_MasterXbar_RocketTile_i2_o1_a32d64s1k1z4u.sv
|
||||
./TLXbar_pbus_in_i1_o1_a29d64s2k1z3u.sv
|
||||
./TLXbar_pbus_out_i1_o4_a29d64s2k1z3u.sv
|
||||
./TLXbar_pbus_out_i1_o5_a29d64s2k1z3u.sv
|
||||
./TLXbar_sbus_i2_o1_a32d64s2k1z4u.sv
|
||||
./TLXbar_SlaveXbar_RocketTile_i1_o1_a32d64s2k1z3u.sv
|
||||
./VCU118RocketSystem.sv
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
[
|
||||
{
|
||||
"class":"firrtl.options.TargetDirAnnotation",
|
||||
"directory":"/home/ankaoc/Desktop/tmp/gps/hardware/generated/genesys2-soc"
|
||||
"directory":"/home/ankaoc/Desktop/gps_tdk_new/gps/hardware/generated/genesys2-soc"
|
||||
},
|
||||
{
|
||||
"class":"chisel3.experimental.EnumAnnotations$EnumVecAnnotation",
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
+79
@@ -0,0 +1,79 @@
|
||||
{
|
||||
"peripheral" : {
|
||||
"displayName" : "max2771-spi.At0x10016000",
|
||||
"baseAddress" : "0x10016000",
|
||||
"regfields" : [ {
|
||||
"command" : {
|
||||
"byteOffset" : "0x0",
|
||||
"bitOffset" : 0,
|
||||
"bitWidth" : 32,
|
||||
"name" : "command",
|
||||
"description" : "bits[3:0] register address, bit8 read; write starts one 48-clock frame",
|
||||
"accessType" : "W"
|
||||
}
|
||||
}, {
|
||||
"write_data" : {
|
||||
"byteOffset" : "0x4",
|
||||
"bitOffset" : 0,
|
||||
"bitWidth" : 32,
|
||||
"name" : "write_data",
|
||||
"description" : "32-bit MAX2771 register write data",
|
||||
"accessType" : "W"
|
||||
}
|
||||
}, {
|
||||
"read_data" : {
|
||||
"byteOffset" : "0x8",
|
||||
"bitOffset" : 0,
|
||||
"bitWidth" : 32,
|
||||
"name" : "read_data",
|
||||
"description" : "last 32-bit MAX2771 register read data",
|
||||
"accessType" : "R"
|
||||
}
|
||||
}, {
|
||||
"status" : {
|
||||
"byteOffset" : "0xc",
|
||||
"bitOffset" : 0,
|
||||
"bitWidth" : 32,
|
||||
"name" : "status",
|
||||
"description" : "bit0 ready, bit1 busy",
|
||||
"accessType" : "R"
|
||||
}
|
||||
}, {
|
||||
"input_clock_hz" : {
|
||||
"byteOffset" : "0x10",
|
||||
"bitOffset" : 0,
|
||||
"bitWidth" : 32,
|
||||
"name" : "input_clock_hz",
|
||||
"description" : "peripheral input clock frequency",
|
||||
"accessType" : "R"
|
||||
}
|
||||
}, {
|
||||
"sclk_hz" : {
|
||||
"byteOffset" : "0x14",
|
||||
"bitOffset" : 0,
|
||||
"bitWidth" : 32,
|
||||
"name" : "sclk_hz",
|
||||
"description" : "actual integer MAX2771 serial clock frequency",
|
||||
"accessType" : "R"
|
||||
}
|
||||
}, {
|
||||
"half_period_cycles" : {
|
||||
"byteOffset" : "0x18",
|
||||
"bitOffset" : 0,
|
||||
"bitWidth" : 32,
|
||||
"name" : "half_period_cycles",
|
||||
"description" : "input-clock cycles per SCLK half-period",
|
||||
"accessType" : "R"
|
||||
}
|
||||
}, {
|
||||
"identification" : {
|
||||
"byteOffset" : "0x1c",
|
||||
"bitOffset" : 0,
|
||||
"bitWidth" : 32,
|
||||
"name" : "identification",
|
||||
"description" : "ASCII MAX1 peripheral identification",
|
||||
"accessType" : "R"
|
||||
}
|
||||
} ]
|
||||
}
|
||||
}
|
||||
@@ -5,7 +5,7 @@
|
||||
#size-cells = <1>;
|
||||
compatible = "freechips,rocketchip-unknown-dev";
|
||||
model = "freechips,rocketchip-unknown";
|
||||
L30: cpus {
|
||||
L31: cpus {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
timebase-frequency = <1000000>;
|
||||
@@ -31,7 +31,7 @@
|
||||
};
|
||||
};
|
||||
};
|
||||
L29: soc {
|
||||
L30: soc {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
compatible = "freechips,rocketchip-unknown-soc", "simple-bus";
|
||||
@@ -64,65 +64,65 @@
|
||||
compatible = "sifive,error0";
|
||||
reg = <0x3000 0x1000>;
|
||||
};
|
||||
L17: gps-acq@10020000 {
|
||||
L18: gps-acq@10020000 {
|
||||
compatible = "anka,gps-acq-apb";
|
||||
interrupt-parent = <&L8>;
|
||||
interrupts = <1>;
|
||||
reg = <0x10020000 0x1000>;
|
||||
};
|
||||
L27: gps-pps@1002a000 {
|
||||
L28: gps-pps@1002a000 {
|
||||
compatible = "anka,gps-pps-apb";
|
||||
reg = <0x1002a000 0x1000>;
|
||||
};
|
||||
L18: gps-tracking0@10021000 {
|
||||
L19: gps-tracking0@10021000 {
|
||||
compatible = "anka,gps-tracking-apb";
|
||||
interrupt-parent = <&L8>;
|
||||
interrupts = <2>;
|
||||
reg = <0x10021000 0x1000>;
|
||||
};
|
||||
L19: gps-tracking1@10022000 {
|
||||
L20: gps-tracking1@10022000 {
|
||||
compatible = "anka,gps-tracking-apb";
|
||||
interrupt-parent = <&L8>;
|
||||
interrupts = <3>;
|
||||
reg = <0x10022000 0x1000>;
|
||||
};
|
||||
L20: gps-tracking2@10023000 {
|
||||
L21: gps-tracking2@10023000 {
|
||||
compatible = "anka,gps-tracking-apb";
|
||||
interrupt-parent = <&L8>;
|
||||
interrupts = <4>;
|
||||
reg = <0x10023000 0x1000>;
|
||||
};
|
||||
L21: gps-tracking3@10024000 {
|
||||
L22: gps-tracking3@10024000 {
|
||||
compatible = "anka,gps-tracking-apb";
|
||||
interrupt-parent = <&L8>;
|
||||
interrupts = <5>;
|
||||
reg = <0x10024000 0x1000>;
|
||||
};
|
||||
L22: gps-tracking4@10025000 {
|
||||
L23: gps-tracking4@10025000 {
|
||||
compatible = "anka,gps-tracking-apb";
|
||||
interrupt-parent = <&L8>;
|
||||
interrupts = <6>;
|
||||
reg = <0x10025000 0x1000>;
|
||||
};
|
||||
L23: gps-tracking5@10026000 {
|
||||
L24: gps-tracking5@10026000 {
|
||||
compatible = "anka,gps-tracking-apb";
|
||||
interrupt-parent = <&L8>;
|
||||
interrupts = <7>;
|
||||
reg = <0x10026000 0x1000>;
|
||||
};
|
||||
L24: gps-tracking6@10027000 {
|
||||
L25: gps-tracking6@10027000 {
|
||||
compatible = "anka,gps-tracking-apb";
|
||||
interrupt-parent = <&L8>;
|
||||
interrupts = <8>;
|
||||
reg = <0x10027000 0x1000>;
|
||||
};
|
||||
L25: gps-tracking7@10028000 {
|
||||
L26: gps-tracking7@10028000 {
|
||||
compatible = "anka,gps-tracking-apb";
|
||||
interrupt-parent = <&L8>;
|
||||
interrupts = <9>;
|
||||
reg = <0x10028000 0x1000>;
|
||||
};
|
||||
L26: gps-tracking8@10029000 {
|
||||
L27: gps-tracking8@10029000 {
|
||||
compatible = "anka,gps-tracking-apb";
|
||||
interrupt-parent = <&L8>;
|
||||
interrupts = <10>;
|
||||
@@ -138,6 +138,11 @@
|
||||
riscv,max-priority = <7>;
|
||||
riscv,ndev = <11>;
|
||||
};
|
||||
L17: max2771-spi@10016000 {
|
||||
compatible = "analog-devices,max2771-spi";
|
||||
reg = <0x10016000 0x1000>;
|
||||
reg-names = "control";
|
||||
};
|
||||
L0: pbus_clock {
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <100000000>;
|
||||
|
||||
+930
-269
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
+1
-1
@@ -1 +1 @@
|
||||
{"mapping":[{"base":[0],"size":[4096],"r":[true],"w":[true],"x":[true],"c":[false],"a":[true],"names":["debug-controller@0"]},{"base":[12288],"size":[4096],"r":[true],"w":[true],"x":[true],"c":[false],"a":[true],"names":["error-device@3000"]},{"base":[65536],"size":[65536],"r":[true],"w":[false],"x":[true],"c":[false],"a":[false],"names":["rom@10000"]},{"base":[33554432],"size":[65536],"r":[true],"w":[true],"x":[false],"c":[false],"a":[true],"names":["clint@2000000"]},{"base":[201326592],"size":[67108864],"r":[true],"w":[true],"x":[false],"c":[false],"a":[true],"names":["interrupt-controller@c000000"]},{"base":[268513280],"size":[4096],"r":[true],"w":[true],"x":[false],"c":[false],"a":[true],"names":["uart@10013000"]},{"base":[268517376],"size":[4096],"r":[true],"w":[true],"x":[false],"c":[false],"a":[true],"names":["spi@10014000"]},{"base":[268521472],"size":[4096],"r":[true],"w":[true],"x":[false],"c":[false],"a":[true],"names":["pmod-spi@10015000"]},{"base":[268566528],"size":[4096],"r":[true],"w":[true],"x":[false],"c":[false],"a":[true],"names":["gps-acq@10020000"]},{"base":[268570624],"size":[4096],"r":[true],"w":[true],"x":[false],"c":[false],"a":[true],"names":["gps-tracking0@10021000"]},{"base":[268574720],"size":[4096],"r":[true],"w":[true],"x":[false],"c":[false],"a":[true],"names":["gps-tracking1@10022000"]},{"base":[268578816],"size":[4096],"r":[true],"w":[true],"x":[false],"c":[false],"a":[true],"names":["gps-tracking2@10023000"]},{"base":[268582912],"size":[4096],"r":[true],"w":[true],"x":[false],"c":[false],"a":[true],"names":["gps-tracking3@10024000"]},{"base":[268587008],"size":[4096],"r":[true],"w":[true],"x":[false],"c":[false],"a":[true],"names":["gps-tracking4@10025000"]},{"base":[268591104],"size":[4096],"r":[true],"w":[true],"x":[false],"c":[false],"a":[true],"names":["gps-tracking5@10026000"]},{"base":[268595200],"size":[4096],"r":[true],"w":[true],"x":[false],"c":[false],"a":[true],"names":["gps-tracking6@10027000"]},{"base":[268599296],"size":[4096],"r":[true],"w":[true],"x":[false],"c":[false],"a":[true],"names":["gps-tracking7@10028000"]},{"base":[268603392],"size":[4096],"r":[true],"w":[true],"x":[false],"c":[false],"a":[true],"names":["gps-tracking8@10029000"]},{"base":[268607488],"size":[4096],"r":[true],"w":[true],"x":[false],"c":[false],"a":[true],"names":["gps-pps@1002a000"]},{"base":[2147483648],"size":[1048576],"r":[true],"w":[true],"x":[true],"c":[false],"a":[true],"names":["dtim@80000000"]}]}
|
||||
{"mapping":[{"base":[0],"size":[4096],"r":[true],"w":[true],"x":[true],"c":[false],"a":[true],"names":["debug-controller@0"]},{"base":[12288],"size":[4096],"r":[true],"w":[true],"x":[true],"c":[false],"a":[true],"names":["error-device@3000"]},{"base":[65536],"size":[65536],"r":[true],"w":[false],"x":[true],"c":[false],"a":[false],"names":["rom@10000"]},{"base":[33554432],"size":[65536],"r":[true],"w":[true],"x":[false],"c":[false],"a":[true],"names":["clint@2000000"]},{"base":[201326592],"size":[67108864],"r":[true],"w":[true],"x":[false],"c":[false],"a":[true],"names":["interrupt-controller@c000000"]},{"base":[268513280],"size":[4096],"r":[true],"w":[true],"x":[false],"c":[false],"a":[true],"names":["uart@10013000"]},{"base":[268517376],"size":[4096],"r":[true],"w":[true],"x":[false],"c":[false],"a":[true],"names":["spi@10014000"]},{"base":[268521472],"size":[4096],"r":[true],"w":[true],"x":[false],"c":[false],"a":[true],"names":["pmod-spi@10015000"]},{"base":[268525568],"size":[4096],"r":[true],"w":[true],"x":[false],"c":[false],"a":[true],"names":["max2771-spi@10016000"]},{"base":[268566528],"size":[4096],"r":[true],"w":[true],"x":[false],"c":[false],"a":[true],"names":["gps-acq@10020000"]},{"base":[268570624],"size":[4096],"r":[true],"w":[true],"x":[false],"c":[false],"a":[true],"names":["gps-tracking0@10021000"]},{"base":[268574720],"size":[4096],"r":[true],"w":[true],"x":[false],"c":[false],"a":[true],"names":["gps-tracking1@10022000"]},{"base":[268578816],"size":[4096],"r":[true],"w":[true],"x":[false],"c":[false],"a":[true],"names":["gps-tracking2@10023000"]},{"base":[268582912],"size":[4096],"r":[true],"w":[true],"x":[false],"c":[false],"a":[true],"names":["gps-tracking3@10024000"]},{"base":[268587008],"size":[4096],"r":[true],"w":[true],"x":[false],"c":[false],"a":[true],"names":["gps-tracking4@10025000"]},{"base":[268591104],"size":[4096],"r":[true],"w":[true],"x":[false],"c":[false],"a":[true],"names":["gps-tracking5@10026000"]},{"base":[268595200],"size":[4096],"r":[true],"w":[true],"x":[false],"c":[false],"a":[true],"names":["gps-tracking6@10027000"]},{"base":[268599296],"size":[4096],"r":[true],"w":[true],"x":[false],"c":[false],"a":[true],"names":["gps-tracking7@10028000"]},{"base":[268603392],"size":[4096],"r":[true],"w":[true],"x":[false],"c":[false],"a":[true],"names":["gps-tracking8@10029000"]},{"base":[268607488],"size":[4096],"r":[true],"w":[true],"x":[false],"c":[false],"a":[true],"names":["gps-pps@1002a000"]},{"base":[2147483648],"size":[1048576],"r":[true],"w":[true],"x":[true],"c":[false],"a":[true],"names":["dtim@80000000"]}]}
|
||||
Reference in New Issue
Block a user