93 lines
2.3 KiB
Verilog
93 lines
2.3 KiB
Verilog
//
|
|
// Generated by Bluespec Compiler, version 2019.05.beta2 (build a88bf40db, 2019-05-24)
|
|
//
|
|
// On Thu Jul 16 18:13:56 BST 2020
|
|
//
|
|
//
|
|
// Ports:
|
|
// Name I/O size props
|
|
// RST_N_gen_rst O 1 reset
|
|
// CLK I 1 clock
|
|
// RST_N I 1 unused
|
|
//
|
|
// No combinational paths from inputs to outputs
|
|
//
|
|
//
|
|
|
|
`ifdef BSV_ASSIGNMENT_DELAY
|
|
`else
|
|
`define BSV_ASSIGNMENT_DELAY
|
|
`endif
|
|
|
|
`ifdef BSV_POSITIVE_RESET
|
|
`define BSV_RESET_VALUE 1'b1
|
|
`define BSV_RESET_EDGE posedge
|
|
`else
|
|
`define BSV_RESET_VALUE 1'b0
|
|
`define BSV_RESET_EDGE negedge
|
|
`endif
|
|
|
|
module mkPowerOnReset(CLK,
|
|
RST_N,
|
|
|
|
RST_N_gen_rst);
|
|
input CLK;
|
|
input RST_N;
|
|
|
|
// output resets
|
|
output RST_N_gen_rst;
|
|
|
|
// signals for module outputs
|
|
wire RST_N_gen_rst;
|
|
|
|
// ports of submodule ctr
|
|
wire [7 : 0] ctr$D_IN, ctr$Q_OUT;
|
|
wire ctr$EN;
|
|
|
|
// ports of submodule isInPowerOnReset
|
|
wire isInPowerOnReset$D_IN, isInPowerOnReset$EN, isInPowerOnReset$Q_OUT;
|
|
|
|
// ports of submodule rst_ifc
|
|
wire rst_ifc$OUT;
|
|
|
|
// rule scheduling signals
|
|
wire CAN_FIRE_RL_countDown, WILL_FIRE_RL_countDown;
|
|
|
|
// remaining internal signals
|
|
wire NOT_isInPowerOnReset__read___d5;
|
|
|
|
// output resets
|
|
assign RST_N_gen_rst = rst_ifc$OUT ;
|
|
|
|
// submodule ctr
|
|
RegUNInit #(.width(32'd8), .init(8'd10)) ctr(.CLK(CLK),
|
|
.D_IN(ctr$D_IN),
|
|
.EN(ctr$EN),
|
|
.Q_OUT(ctr$Q_OUT));
|
|
|
|
// submodule isInPowerOnReset
|
|
RegUNInit #(.width(32'd1), .init(1'd1)) isInPowerOnReset(.CLK(CLK),
|
|
.D_IN(isInPowerOnReset$D_IN),
|
|
.EN(isInPowerOnReset$EN),
|
|
.Q_OUT(isInPowerOnReset$Q_OUT));
|
|
|
|
// submodule rst_ifc
|
|
ASSIGN1 rst_ifc(.IN(NOT_isInPowerOnReset__read___d5), .OUT(rst_ifc$OUT));
|
|
|
|
// rule RL_countDown
|
|
assign CAN_FIRE_RL_countDown = isInPowerOnReset$Q_OUT ;
|
|
assign WILL_FIRE_RL_countDown = isInPowerOnReset$Q_OUT ;
|
|
|
|
// submodule ctr
|
|
assign ctr$D_IN = ctr$Q_OUT - 8'd1 ;
|
|
assign ctr$EN = isInPowerOnReset$Q_OUT ;
|
|
|
|
// submodule isInPowerOnReset
|
|
assign isInPowerOnReset$D_IN = 1'd0 ;
|
|
assign isInPowerOnReset$EN = isInPowerOnReset$Q_OUT && ctr$Q_OUT == 8'd1 ;
|
|
|
|
// remaining internal signals
|
|
assign NOT_isInPowerOnReset__read___d5 = !isInPowerOnReset$Q_OUT ;
|
|
endmodule // mkPowerOnReset
|
|
|