mirror of
https://github.com/garrettsworkshop/Warp-LC.git
synced 2025-02-25 12:29:04 +00:00
65 lines
1.6 KiB
Verilog
65 lines
1.6 KiB
Verilog
`timescale 1ns / 1ps
|
|
//////////////////////////////////////////////////////////////////////////////////
|
|
// Company:
|
|
// Engineer:
|
|
//
|
|
// Create Date: 16:47:14 10/29/2021
|
|
// Design Name:
|
|
// Module Name: CLKGEN
|
|
// Project Name:
|
|
// Target Devices:
|
|
// Tool versions:
|
|
// Description:
|
|
//
|
|
// Dependencies:
|
|
//
|
|
// Revision:
|
|
// Revision 0.01 - File Created
|
|
// Additional Comments:
|
|
//
|
|
//////////////////////////////////////////////////////////////////////////////////
|
|
module ClkGen(
|
|
input CLKIN,
|
|
input CLKFB_IN,
|
|
output CLKFB_OUT,
|
|
output FSBCLK,
|
|
output reg CPUCLKr,
|
|
output CPUCLK,
|
|
output FPUCLK,
|
|
output RAMCLK0,
|
|
output RAMCLK1);
|
|
|
|
PLL pll (
|
|
.CLKIN(CLKIN),
|
|
.CLKFB_IN(CLKFB_IN),
|
|
.CLKFB_OUT(CLKFB_OUT),
|
|
.FSBCLK(FSBCLK));
|
|
|
|
always @(posedge FSBCLK) CPUCLKr <= ~CPUCLKr;
|
|
|
|
ODDR2 #(.DDR_ALIGNMENT("C0"), .INIT(1'b0), .SRTYPE("ASYNC"))
|
|
CPUCLK_inst (.Q(CPUCLK), .CE(1'b1),
|
|
.C0(FSBCLK), .C1(~FSBCLK),
|
|
.D0(~CPUCLKr), .D1(~CPUCLKr),
|
|
.R(1'b0), .S(1'b0));
|
|
|
|
ODDR2 #(.DDR_ALIGNMENT("C0"), .INIT(1'b0), .SRTYPE("ASYNC"))
|
|
FPUCLK_inst (.Q(FPUCLK), .CE(1'b1),
|
|
.C0(FSBCLK), .C1(~FSBCLK),
|
|
.D0(CPUCLKr), .D1(CPUCLKr),
|
|
.R(1'b0), .S(1'b0));
|
|
|
|
ODDR2 #(.DDR_ALIGNMENT("C0"), .INIT(1'b0), .SRTYPE("ASYNC"))
|
|
RAMCLK0_inst (.Q(RAMCLK0), .CE(1'b1),
|
|
.C0(FSBCLK), .C1(~FSBCLK),
|
|
.D0(1'b0), .D1(1'b1),
|
|
.R(1'b0), .S(1'b0));
|
|
|
|
ODDR2 #(.DDR_ALIGNMENT("C0"), .INIT(1'b0), .SRTYPE("ASYNC"))
|
|
RAMCLK1_inst (.Q(RAMCLK1), .CE(1'b1),
|
|
.C0(FSBCLK), .C1(~FSBCLK),
|
|
.D0(1'b0), .D1(1'b1),
|
|
.R(1'b0), .S(1'b0));
|
|
|
|
endmodule
|