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

📄 counter.v

📁 一个计数器 一个计数器 一个计数器
💻 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 + -