Files
gps/hardware/generated/genesys2-soc-verilog/PMPChecker_s2.sv
T
2026-08-06 22:14:52 +03:00

91 lines
3.8 KiB
Systemverilog

// Generated by CIRCT firtool-1.151.0
module PMPChecker_s2(
input io_pmp_0_cfg_l,
input [1:0] io_pmp_0_cfg_a,
input io_pmp_0_cfg_x,
input [29:0] io_pmp_0_addr,
input [31:0] io_pmp_0_mask,
input io_pmp_1_cfg_l,
input [1:0] io_pmp_1_cfg_a,
input io_pmp_1_cfg_x,
input [29:0] io_pmp_1_addr,
input [31:0] io_pmp_1_mask,
input io_pmp_2_cfg_l,
input [1:0] io_pmp_2_cfg_a,
input io_pmp_2_cfg_x,
input [29:0] io_pmp_2_addr,
input [31:0] io_pmp_2_mask,
input io_pmp_3_cfg_l,
input [1:0] io_pmp_3_cfg_a,
input io_pmp_3_cfg_x,
input [29:0] io_pmp_3_addr,
input [31:0] io_pmp_3_mask,
input io_pmp_4_cfg_l,
input [1:0] io_pmp_4_cfg_a,
input io_pmp_4_cfg_x,
input [29:0] io_pmp_4_addr,
input [31:0] io_pmp_4_mask,
input io_pmp_5_cfg_l,
input [1:0] io_pmp_5_cfg_a,
input io_pmp_5_cfg_x,
input [29:0] io_pmp_5_addr,
input [31:0] io_pmp_5_mask,
input io_pmp_6_cfg_l,
input [1:0] io_pmp_6_cfg_a,
input io_pmp_6_cfg_x,
input [29:0] io_pmp_6_addr,
input [31:0] io_pmp_6_mask,
input io_pmp_7_cfg_l,
input [1:0] io_pmp_7_cfg_a,
input io_pmp_7_cfg_x,
input [29:0] io_pmp_7_addr,
input [31:0] io_pmp_7_mask,
io_addr,
output io_x
);
assign io_x =
(io_pmp_0_cfg_a[1]
? ((io_addr ^ {io_pmp_0_addr, 2'h0}) & ~io_pmp_0_mask) == 32'h0
: io_pmp_0_cfg_a[0] & io_addr < {io_pmp_0_addr, 2'h0})
? io_pmp_0_cfg_x | ~io_pmp_0_cfg_l
: (io_pmp_1_cfg_a[1]
? ((io_addr ^ {io_pmp_1_addr, 2'h0}) & ~io_pmp_1_mask) == 32'h0
: io_pmp_1_cfg_a[0] & io_addr >= {io_pmp_0_addr, 2'h0}
& io_addr < {io_pmp_1_addr, 2'h0})
? io_pmp_1_cfg_x | ~io_pmp_1_cfg_l
: (io_pmp_2_cfg_a[1]
? ((io_addr ^ {io_pmp_2_addr, 2'h0}) & ~io_pmp_2_mask) == 32'h0
: io_pmp_2_cfg_a[0] & io_addr >= {io_pmp_1_addr, 2'h0}
& io_addr < {io_pmp_2_addr, 2'h0})
? io_pmp_2_cfg_x | ~io_pmp_2_cfg_l
: (io_pmp_3_cfg_a[1]
? ((io_addr ^ {io_pmp_3_addr, 2'h0}) & ~io_pmp_3_mask) == 32'h0
: io_pmp_3_cfg_a[0] & io_addr >= {io_pmp_2_addr, 2'h0}
& io_addr < {io_pmp_3_addr, 2'h0})
? io_pmp_3_cfg_x | ~io_pmp_3_cfg_l
: (io_pmp_4_cfg_a[1]
? ((io_addr ^ {io_pmp_4_addr, 2'h0}) & ~io_pmp_4_mask) == 32'h0
: io_pmp_4_cfg_a[0] & io_addr >= {io_pmp_3_addr, 2'h0}
& io_addr < {io_pmp_4_addr, 2'h0})
? io_pmp_4_cfg_x | ~io_pmp_4_cfg_l
: (io_pmp_5_cfg_a[1]
? ((io_addr ^ {io_pmp_5_addr, 2'h0}) & ~io_pmp_5_mask) == 32'h0
: io_pmp_5_cfg_a[0] & io_addr >= {io_pmp_4_addr, 2'h0}
& io_addr < {io_pmp_5_addr, 2'h0})
? io_pmp_5_cfg_x | ~io_pmp_5_cfg_l
: (io_pmp_6_cfg_a[1]
? ((io_addr ^ {io_pmp_6_addr, 2'h0})
& ~io_pmp_6_mask) == 32'h0
: io_pmp_6_cfg_a[0] & io_addr >= {io_pmp_5_addr, 2'h0}
& io_addr < {io_pmp_6_addr, 2'h0})
? io_pmp_6_cfg_x | ~io_pmp_6_cfg_l
: ~(io_pmp_7_cfg_a[1]
? ((io_addr ^ {io_pmp_7_addr, 2'h0})
& ~io_pmp_7_mask) == 32'h0
: io_pmp_7_cfg_a[0] & io_addr >= {io_pmp_6_addr, 2'h0}
& io_addr < {io_pmp_7_addr, 2'h0}) | io_pmp_7_cfg_x
| ~io_pmp_7_cfg_l;
endmodule