?? 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 + -