at_ctrb.v 1.57 KB
/**************************************************************************
 *                                                                        *
 *               Copyright (C) 1994, Silicon Graphics, Inc.               *
 *                                                                        *
 *  These coded instructions, statements, and computer programs  contain  *
 *  unpublished  proprietary  information of Silicon Graphics, Inc., and  *
 *  are protected by Federal copyright  law.  They  may not be disclosed  *
 *  to  third  parties  or copied or duplicated in any form, in whole or  *
 *  in part, without the prior written consent of Silicon Graphics, Inc.  *
 *                                                                        *
 *************************************************************************/

// $Id: at_ctrb.v,v 1.4 2003/01/15 03:34:09 berndt Exp $

////////////////////////////////////////////////////////////////////////
//
// Project Reality
//
// module:      at_ctrb
// description: Counter for attribute buffers. Busy version.
//
// designer:    Phil Gossett
// date:        10/28/94
//
////////////////////////////////////////////////////////////////////////

module at_ctrb (clk, rst, en, enb, cnt, z);

input clk;
input rst;
input en;
input enb;
input [5:0] cnt;

output z;

reg [5:0] ctr;
reg z;

// counter
always @(posedge clk)
begin
	if (rst == 1'b0)
		ctr <= 0;
	else if (en)
		ctr <= enb ? cnt  : ((ctr == 6'b000000) ? 6'b000000 :
							  (ctr - 1));
end

always @(posedge clk)
  if (en) begin
	z <= (ctr != 6'b000000);
end

endmodule // at_ctrb