📄 divider.v
字号:
/*********************************************************************************************************
** All right reserve 2008-2009(C)
** Created &maintain by http://www.edaok.net
**=======================================================================================================
** 模 块 名: division
** 描 述: 实现时钟的分频, 分频系数由用户输入
**
** 原 作 者: Adeko (http://www.edaok.net)
** 参 与 者: (...welcome you join in)
**
**=======================================================================================================
********************************************************************************************************/
`define CNT_WIDTH 12
module divider (
clk,
rst_n,
factor,
tick_out,
enable
);
input clk; // 全局时钟线, (系统时钟)
input rst_n; // 全局复位线
input enable; // 模块使能线
input [`CNT_WIDTH-1 : 0] factor; // 分频系数
output tick_out; // 分频输出
reg [`CNT_WIDTH-1 : 0] rCnt;
reg rPlsTick;
/********************************************************************************************************
** 软件仿真时初始化寄存器值
********************************************************************************************************/
initial
begin
rCnt <= `CNT_WIDTH'h0;
rPlsTick <= 1'b0;
end
/********************************************************************************************************
** 计数分频计数器, 输出分频结果脉冲
********************************************************************************************************/
always @(posedge clk or negedge rst_n)
begin : DIV_CNT
if (~rst_n) begin
rCnt <= `CNT_WIDTH'h0;
rPlsTick <= 1'b0;
end
else if (enable) begin
rCnt <= rCnt - `CNT_WIDTH'h1;
if (rCnt == `CNT_WIDTH'h0) begin
rPlsTick <= 1'b1;
rCnt <= factor;
end
else begin
rPlsTick <= 1'b0;
end
end
else begin
rPlsTick <= 1'b0;
rCnt <= factor;
end
end
/*
* 输出信号
*/
assign tick_out = rPlsTick;
endmodule
/*********************************************************************************************************
** End Of File
********************************************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -