lib: add option for output register in pps generator
The pps_generator module receives a new parameter (PIPELINE) which can optionally add a register on the output. The default behaviour is unchanged. Original-commit: 3538fccfc0d9d493d767dcc445593074d3edc86d
This commit is contained in:
@@ -7,7 +7,8 @@
|
|||||||
|
|
||||||
module pps_generator #(
|
module pps_generator #(
|
||||||
parameter CLK_FREQ = 32'd10_000_000, //Min:10kHz, Max:4GHz
|
parameter CLK_FREQ = 32'd10_000_000, //Min:10kHz, Max:4GHz
|
||||||
parameter DUTY_CYCLE = 25
|
parameter DUTY_CYCLE = 25,
|
||||||
|
parameter PIPELINE = "NONE" // Optional register on output? {"NONE", "OUT"}
|
||||||
) (
|
) (
|
||||||
input clk,
|
input clk,
|
||||||
input reset,
|
input reset,
|
||||||
@@ -25,5 +26,25 @@ module pps_generator #(
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
assign pps = (count < ((CLK_FREQ / 100) * DUTY_CYCLE));
|
wire pps_int;
|
||||||
|
assign pps_int = (count < ((CLK_FREQ / 100) * DUTY_CYCLE));
|
||||||
|
|
||||||
|
generate
|
||||||
|
if (PIPELINE == "OUT") begin : gen_pipeline_out
|
||||||
|
// create output register and assign to output
|
||||||
|
reg pps_reg = 1'b0;
|
||||||
|
assign pps = pps_reg;
|
||||||
|
|
||||||
|
always @(posedge clk) begin
|
||||||
|
if (reset) begin
|
||||||
|
pps_reg <= 1'b0;
|
||||||
|
end else begin
|
||||||
|
pps_reg <= pps_int;
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end else begin : gen_pipeline_none
|
||||||
|
// no output register
|
||||||
|
assign pps = pps_int;
|
||||||
|
end
|
||||||
|
endgenerate
|
||||||
endmodule //pps_generator
|
endmodule //pps_generator
|
||||||
|
|||||||
Reference in New Issue
Block a user