⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 clock.v

📁 DE1-FPGA-Board
💻 V
字号:
//
// FPGA PACMAN clock generator
//

module clock(
I_CLK_18M,
O_CLK_12M,
O_CLK_06M,
O_CLK_06Mn
);

input  I_CLK_18M;
output O_CLK_12M;
output O_CLK_06M;
output O_CLK_06Mn;

// 2/3 clock divider(duty 33%)
reg [1:0] clk_ff1,clk_ff2;
//I_CLK   1010101010101010101
//c_ff10  0011110011110011110
//c_ff11  0011000011000011000
//c_ff20  0000110000110000110
//c_ff21  0110000110000110000
//O_12M   0000110110110110110
always @(posedge I_CLK_18M)
begin
   clk_ff1[0] <= ~clk_ff1[0] | clk_ff1[1];
   clk_ff1[1] <= ~clk_ff1[0] & ~clk_ff1[1];
   clk_ff2[0] <= clk_ff1[0] & clk_ff1[1];
end
always @(negedge I_CLK_18M)
   clk_ff2[1] <= ~clk_ff1[0] & ~clk_ff1[1];

// 2/3 clock         (duty 66%)
assign O_CLK_12M = clk_ff2[0]| clk_ff2[1];
 
// 1/3 clock divider (duty 50%)
reg CLK_6M , CLK_6Mn;
always @(posedge O_CLK_12M)
begin
   CLK_6Mn <=  CLK_6M;
   CLK_6M  <= ~CLK_6M;
end
assign O_CLK_06M = CLK_6M;
assign O_CLK_06Mn = CLK_6Mn;


endmodule

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -