📄 counter.v
字号:
//====================================================================
//
// copyright (c) 2007, Hisilicon Technologies Co.,Ltd
// All rights reserved.
//
// IP LIB INDEX: HIAVD FPGA
// IP Name :
// File Name :
// Module Name : A counter
// Full Name :
// Author :
// Email :
// Date :
// Version : v1.0
// Abstract :
//
// Called by :
// Modification history
//--------------------------------------------------------------------
//
// CVS Log
//
// $Id$
//
// $Date$
// $Revision$
// $Author$
// $Locker$
// $State$
//
// Change History:
// $Log$
//
//
//
//====================================================================
// timescale definition
//==========================
// DEFINE INCLUDE FILE
//==========================
//==========================
// DEFINE[s]
//==========================
//====================
// DEFINE MODULE PORT
//====================
//==========================
// DEFINE PARAMETER
//==========================
//==========================
// DEFINE INPUTS
//==========================
//==========================
// DEFINE OUTPUTS
//==========================
//==========================
// OUTPUTS ATTRIBUTE
//==========================
// REGS
// WIRES
//==========================
// INTER SIGNAL DECLARATION
//==========================
// REGS
// WIRES
//==========================
// MODULE INSTANTIATION
//==========================
//==========================
// MAIN LOGIC
//==========================
`define COUNT_WIDTH 4
`define COUNT_MAX 4'b1100
module COUNTER ( // INPUT
clk,
reset_n,
load, // indicate it will be preload a num
start_val, // the num of preload
// OUTPUT
incr_flag
);
input clk;
input reset_n;
input load;
input [`COUNT_WIDTH-1 : 0] start_val;
output incr_flag;
reg incr_flag;
reg [`COUNT_WIDTH-1 :0] count_val;
always @(posedge clk or negedge reset_n)
begin:COUNTER_PROC
if(reset_n==1'b0)
begin
incr_flag<=1'b0;
count_val<=`COUNT_WIDTH 'b0;
end
else if(load==1'b1)
count_val<=start_val;
else
count_val<=count_val+1'b1;
if(count_val==`COUNT_MAX)
begin
incr_flag<=1'b1;
count_val<=start_val;
//count_val<=`COUNT_WIDTH 'b0;
end
else
incr_flag<=1'b0;
end // END COUNTER_PROC
endmodule
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -