at_ctw5.v 1.65 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_ctw5.v,v 1.4 2003/01/15 03:34:09 berndt Exp $

////////////////////////////////////////////////////////////////////////
//
// Project Reality
//
// module:      at_ctw5
// description: Counter for attribute buffers.
//
// designer:    Phil Gossett
// date:        6/9/95
//
////////////////////////////////////////////////////////////////////////

module at_ctw5 (clk, rst, enb, z, a, b, c, d, e);

input clk;
input rst;
input enb;

output [2:0] z;
output a;
output b;
output c;
output d;
output e;

reg [2:0] z;

// counter
always @(posedge clk)
begin
	if (rst == 1'b0)
		z <= 3'b000;	// 0
	else
		z <= enb ? {(z[1]&z[0]),(z[1]^z[0]),~(z[2]|z[0])} : z;
end

assign a = enb & (z == 3'b000);
assign b = enb & (z == 3'b001);
assign c = enb & (z == 3'b010);
assign d = enb & (z == 3'b011);
assign e = enb & (z == 3'b100);

endmodule // at_ctw5