95 lines
2.8 KiB
Systemverilog
95 lines
2.8 KiB
Systemverilog
// Generated by CIRCT firtool-1.62.0
|
|
// Standard header to adapt well known macros for register randomization.
|
|
`ifndef RANDOMIZE
|
|
`ifdef RANDOMIZE_MEM_INIT
|
|
`define RANDOMIZE
|
|
`endif // RANDOMIZE_MEM_INIT
|
|
`endif // not def RANDOMIZE
|
|
`ifndef RANDOMIZE
|
|
`ifdef RANDOMIZE_REG_INIT
|
|
`define RANDOMIZE
|
|
`endif // RANDOMIZE_REG_INIT
|
|
`endif // not def RANDOMIZE
|
|
|
|
// RANDOM may be set to an expression that produces a 32-bit random unsigned value.
|
|
`ifndef RANDOM
|
|
`define RANDOM $random
|
|
`endif // not def RANDOM
|
|
|
|
// Users can define INIT_RANDOM as general code that gets injected into the
|
|
// initializer block for modules with registers.
|
|
`ifndef INIT_RANDOM
|
|
`define INIT_RANDOM
|
|
`endif // not def INIT_RANDOM
|
|
|
|
// If using random initialization, you can also define RANDOMIZE_DELAY to
|
|
// customize the delay used, otherwise 0.002 is used.
|
|
`ifndef RANDOMIZE_DELAY
|
|
`define RANDOMIZE_DELAY 0.002
|
|
`endif // not def RANDOMIZE_DELAY
|
|
|
|
// Define INIT_RANDOM_PROLOG_ for use in our modules below.
|
|
`ifndef INIT_RANDOM_PROLOG_
|
|
`ifdef RANDOMIZE
|
|
`ifdef VERILATOR
|
|
`define INIT_RANDOM_PROLOG_ `INIT_RANDOM
|
|
`else // VERILATOR
|
|
`define INIT_RANDOM_PROLOG_ `INIT_RANDOM #`RANDOMIZE_DELAY begin end
|
|
`endif // VERILATOR
|
|
`else // RANDOMIZE
|
|
`define INIT_RANDOM_PROLOG_
|
|
`endif // RANDOMIZE
|
|
`endif // not def INIT_RANDOM_PROLOG_
|
|
|
|
// Include register initializers in init blocks unless synthesis is set
|
|
`ifndef SYNTHESIS
|
|
`ifndef ENABLE_INITIAL_REG_
|
|
`define ENABLE_INITIAL_REG_
|
|
`endif // not def ENABLE_INITIAL_REG_
|
|
`endif // not def SYNTHESIS
|
|
|
|
// Include rmemory initializers in init blocks unless synthesis is set
|
|
`ifndef SYNTHESIS
|
|
`ifndef ENABLE_INITIAL_MEM_
|
|
`define ENABLE_INITIAL_MEM_
|
|
`endif // not def ENABLE_INITIAL_MEM_
|
|
`endif // not def SYNTHESIS
|
|
|
|
module PriorityMuxModule_8(
|
|
input s2_GHPtr_sel,
|
|
input s2_GHPtr_src_flag,
|
|
input [7:0] s2_GHPtr_src_value,
|
|
input s1_GHPtr_sel,
|
|
input s1_GHPtr_src_flag,
|
|
input [7:0] s1_GHPtr_src_value,
|
|
input s3_GHPtr_sel,
|
|
input s3_GHPtr_src_flag,
|
|
input [7:0] s3_GHPtr_src_value,
|
|
input redirect_GHPtr_sel,
|
|
input redirect_GHPtr_src_flag,
|
|
input [7:0] redirect_GHPtr_src_value,
|
|
input stallGHPtr_src_flag,
|
|
input [7:0] stallGHPtr_src_value,
|
|
output out_res_flag,
|
|
output [7:0] out_res_value
|
|
);
|
|
|
|
assign out_res_flag =
|
|
s2_GHPtr_sel
|
|
? s2_GHPtr_src_flag
|
|
: s1_GHPtr_sel
|
|
? s1_GHPtr_src_flag
|
|
: s3_GHPtr_sel
|
|
? s3_GHPtr_src_flag
|
|
: redirect_GHPtr_sel ? redirect_GHPtr_src_flag : stallGHPtr_src_flag;
|
|
assign out_res_value =
|
|
s2_GHPtr_sel
|
|
? s2_GHPtr_src_value
|
|
: s1_GHPtr_sel
|
|
? s1_GHPtr_src_value
|
|
: s3_GHPtr_sel
|
|
? s3_GHPtr_src_value
|
|
: redirect_GHPtr_sel ? redirect_GHPtr_src_value : stallGHPtr_src_value;
|
|
endmodule
|
|
|