|
@@ -30,10 +30,9 @@
|
|
|
//
|
|
//
|
|
|
////////////////////////////////////////////////////////////////////////////////////////////
|
|
////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
module ClkGen (
|
|
module ClkGen (
|
|
|
- input Rst_i,
|
|
|
|
|
input Clk24Mhz_i,
|
|
input Clk24Mhz_i,
|
|
|
|
|
|
|
|
- output ClkBufg24Mhz_o,
|
|
|
|
|
|
|
+ output Clk24Mhz_o,
|
|
|
output Clk100Mhz_o,
|
|
output Clk100Mhz_o,
|
|
|
output Clk5Mhz_o,
|
|
output Clk5Mhz_o,
|
|
|
output Clk20Mhz_o,
|
|
output Clk20Mhz_o,
|
|
@@ -50,17 +49,21 @@ wire clk210Mhz;
|
|
|
wire clk20Mhz;
|
|
wire clk20Mhz;
|
|
|
wire clkBufg24Mhz;
|
|
wire clkBufg24Mhz;
|
|
|
|
|
|
|
|
|
|
+wire lockFirstPll;
|
|
|
|
|
+wire lockSecondPll;
|
|
|
|
|
+
|
|
|
//==========================================
|
|
//==========================================
|
|
|
// Assignments
|
|
// Assignments
|
|
|
//==========================================
|
|
//==========================================
|
|
|
assign Clk20Mhz_o = clk20Mhz;
|
|
assign Clk20Mhz_o = clk20Mhz;
|
|
|
-assign ClkBufg24Mhz_o = clkBufg24Mhz;
|
|
|
|
|
|
|
+assign Clk24Mhz_o = clkBufg24Mhz;
|
|
|
|
|
|
|
|
//==========================================================================//
|
|
//==========================================================================//
|
|
|
// CODING //
|
|
// CODING //
|
|
|
//==========================================================================//
|
|
//==========================================================================//
|
|
|
GowinPllFirst GowinPllFirst100M50M (
|
|
GowinPllFirst GowinPllFirst100M50M (
|
|
|
.clkout (clk100Mhz),
|
|
.clkout (clk100Mhz),
|
|
|
|
|
+ .lock (lockFirstPll),
|
|
|
.clkoutd (Clk50Mhz_o),
|
|
.clkoutd (Clk50Mhz_o),
|
|
|
.clkin (Clk24Mhz_i)
|
|
.clkin (Clk24Mhz_i)
|
|
|
);
|
|
);
|
|
@@ -68,13 +71,13 @@ GowinPllFirst GowinPllFirst100M50M (
|
|
|
GowinClkDiv5 GowinClkDiv100MhzTo20Mhz (
|
|
GowinClkDiv5 GowinClkDiv100MhzTo20Mhz (
|
|
|
.clkout (clk20Mhz),
|
|
.clkout (clk20Mhz),
|
|
|
.hclkin (clk100Mhz),
|
|
.hclkin (clk100Mhz),
|
|
|
- .resetn (~Rst_i)
|
|
|
|
|
|
|
+ .resetn (lockFirstPll)
|
|
|
);
|
|
);
|
|
|
|
|
|
|
|
GowinClkDiv4 GowinClkDiv20MhzTo5Mhz (
|
|
GowinClkDiv4 GowinClkDiv20MhzTo5Mhz (
|
|
|
.clkout (Clk5Mhz_o),
|
|
.clkout (Clk5Mhz_o),
|
|
|
.hclkin (clk20Mhz),
|
|
.hclkin (clk20Mhz),
|
|
|
- .resetn (~Rst_i)
|
|
|
|
|
|
|
+ .resetn (lockFirstPll)
|
|
|
);
|
|
);
|
|
|
|
|
|
|
|
BUFG BUFG_100Mhz (
|
|
BUFG BUFG_100Mhz (
|
|
@@ -89,19 +92,20 @@ BUFG BUFG_24Mhz (
|
|
|
|
|
|
|
|
GowinPllSecond GowinPllSecond210M (
|
|
GowinPllSecond GowinPllSecond210M (
|
|
|
.clkout (clk210Mhz),
|
|
.clkout (clk210Mhz),
|
|
|
|
|
+ .lock (lockSecondPll),
|
|
|
.clkin (Clk24Mhz_i)
|
|
.clkin (Clk24Mhz_i)
|
|
|
);
|
|
);
|
|
|
|
|
|
|
|
GowinClkDiv8 GowinClkDiv210MhzTo26dot25 (
|
|
GowinClkDiv8 GowinClkDiv210MhzTo26dot25 (
|
|
|
.clkout (Clk26dot25Mhz_o),
|
|
.clkout (Clk26dot25Mhz_o),
|
|
|
.hclkin (clk210Mhz),
|
|
.hclkin (clk210Mhz),
|
|
|
- .resetn (~Rst_i)
|
|
|
|
|
|
|
+ .resetn (lockSecondPll)
|
|
|
);
|
|
);
|
|
|
|
|
|
|
|
-GowinClkDiv3dot5 your_instance_name(
|
|
|
|
|
|
|
+GowinClkDiv3dot5 GowinClkDiv210MhzTo60Mhz (
|
|
|
.clkout (Clk60Mhz_o),
|
|
.clkout (Clk60Mhz_o),
|
|
|
.hclkin (clk210Mhz),
|
|
.hclkin (clk210Mhz),
|
|
|
- .resetn (~Rst_i)
|
|
|
|
|
|
|
+ .resetn (lockSecondPll)
|
|
|
);
|
|
);
|
|
|
|
|
|
|
|
endmodule
|
|
endmodule
|