parent
13aee3afa9
commit
061289c613
@ -0,0 +1,76 @@
|
|||||||
|
`timescale 1ns / 1ps
|
||||||
|
//////////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// (c) 2014 Timothy Pearson, Raptor Engineering
|
||||||
|
// Released into the Public Domain
|
||||||
|
//
|
||||||
|
//////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
module logic_analyzer_clock_generator(
|
||||||
|
input clkin,
|
||||||
|
output clkout);
|
||||||
|
|
||||||
|
wire clk0;
|
||||||
|
wire clk2x;
|
||||||
|
reg reset;
|
||||||
|
|
||||||
|
assign clkout = clk0;
|
||||||
|
// assign clkout = clk2x;
|
||||||
|
|
||||||
|
// DCM_SP: Digital Clock Manager
|
||||||
|
// Spartan-6
|
||||||
|
// Xilinx HDL Language Template, version 14.7
|
||||||
|
|
||||||
|
DCM_SP #(
|
||||||
|
.CLKDV_DIVIDE(2.0), // CLKDV divide value
|
||||||
|
// (1.5,2,2.5,3,3.5,4,4.5,5,5.5,6,6.5,7,7.5,8,9,10,11,12,13,14,15,16).
|
||||||
|
.CLKFX_DIVIDE(1), // Divide value on CLKFX outputs - D - (1-32)
|
||||||
|
.CLKFX_MULTIPLY(4), // Multiply value on CLKFX outputs - M - (2-32)
|
||||||
|
.CLKIN_DIVIDE_BY_2("FALSE"), // CLKIN divide by two (TRUE/FALSE)
|
||||||
|
.CLKIN_PERIOD(10.0), // Input clock period specified in nS
|
||||||
|
.CLKOUT_PHASE_SHIFT("NONE"), // Output phase shift (NONE, FIXED, VARIABLE)
|
||||||
|
.CLK_FEEDBACK("1X"), // Feedback source (NONE, 1X, 2X)
|
||||||
|
.DESKEW_ADJUST("SYSTEM_SYNCHRONOUS"), // SYSTEM_SYNCHRNOUS or SOURCE_SYNCHRONOUS
|
||||||
|
.DFS_FREQUENCY_MODE("LOW"), // Unsupported - Do not change value
|
||||||
|
.DLL_FREQUENCY_MODE("LOW"), // Unsupported - Do not change value
|
||||||
|
.DSS_MODE("NONE"), // Unsupported - Do not change value
|
||||||
|
.DUTY_CYCLE_CORRECTION("TRUE"), // Unsupported - Do not change value
|
||||||
|
.FACTORY_JF(16'hc080), // Unsupported - Do not change value
|
||||||
|
.PHASE_SHIFT(0), // Amount of fixed phase shift (-255 to 255)
|
||||||
|
.STARTUP_WAIT("FALSE") // Delay config DONE until DCM_SP LOCKED (TRUE/FALSE)
|
||||||
|
)
|
||||||
|
DCM_SP_inst (
|
||||||
|
.CLK0(clk0), // 1-bit output: 0 degree clock output
|
||||||
|
.CLK180(), // 1-bit output: 180 degree clock output
|
||||||
|
.CLK270(), // 1-bit output: 270 degree clock output
|
||||||
|
.CLK2X(clk2x), // 1-bit output: 2X clock frequency clock output
|
||||||
|
.CLK2X180(), // 1-bit output: 2X clock frequency, 180 degree clock output
|
||||||
|
.CLK90(), // 1-bit output: 90 degree clock output
|
||||||
|
.CLKDV(), // 1-bit output: Divided clock output
|
||||||
|
.CLKFX(), // 1-bit output: Digital Frequency Synthesizer output (DFS)
|
||||||
|
.CLKFX180(), // 1-bit output: 180 degree CLKFX output
|
||||||
|
.LOCKED(), // 1-bit output: DCM_SP Lock Output
|
||||||
|
.PSDONE(), // 1-bit output: Phase shift done output
|
||||||
|
.STATUS(), // 8-bit output: DCM_SP status output
|
||||||
|
.CLKFB(clk0), // 1-bit input: Clock feedback input
|
||||||
|
.CLKIN(clkin), // 1-bit input: Clock input
|
||||||
|
.DSSEN(1'b0), // 1-bit input: Unsupported, specify to GND.
|
||||||
|
.PSCLK(), // 1-bit input: Phase shift clock input
|
||||||
|
.PSEN(1'b0), // 1-bit input: Phase shift enable
|
||||||
|
.PSINCDEC(), // 1-bit input: Phase shift increment/decrement input
|
||||||
|
.RST(reset) // 1-bit input: Active high reset input
|
||||||
|
);
|
||||||
|
|
||||||
|
// End of DCM_SP_inst instantiation
|
||||||
|
|
||||||
|
reg [7:0] reset_counter = 8'b00000001;
|
||||||
|
always @(posedge clkin) begin
|
||||||
|
if (reset_counter[7] != 1'b1) begin
|
||||||
|
reset_counter = reset_counter << 1;
|
||||||
|
reset = 1'b1;
|
||||||
|
end else begin
|
||||||
|
reset = 1'b0;
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
endmodule
|
Loading…
Reference in new issue