HierarchyFilesModulesSignalsTasksFunctionsHelp

/******************************************************************************/ 
/*                                                                            */ 
/* Copyright (c) 1999 Sun Microsystems, Inc. All rights reserved.             */ 
/*                                                                            */ 
/* The contents of this file are subject to the current version of the Sun    */ 
/* Community Source License, microSPARCII ("the License"). You may not use    */ 
/* this file except in compliance with the License.  You may obtain a copy    */ 
/* of the License by searching for "Sun Community Source License" on the      */ 
/* World Wide Web at http://www.sun.com. See the License for the rights,      */ 
/* obligations, and limitations governing use of the contents of this file.   */ 
/*                                                                            */ 
/* Sun Microsystems, Inc. has intellectual property rights relating to the    */ 
/* technology embodied in these files. In particular, and without limitation, */ 
/* these intellectual property rights may include one or more U.S. patents,   */ 
/* foreign patents, or pending applications.                                  */ 
/*                                                                            */ 
/* Sun, Sun Microsystems, the Sun logo, all Sun-based trademarks and logos,   */ 
/* Solaris, Java and all Java-based trademarks and logos are trademarks or    */ 
/* registered trademarks of Sun Microsystems, Inc. in the United States and   */ 
/* other countries. microSPARC is a trademark or registered trademark of      */ 
/* SPARC International, Inc. All SPARC trademarks are used under license and  */ 
/* are trademarks or registered trademarks of SPARC International, Inc. in    */ 
/* the United States and other countries. Products bearing SPARC trademarks   */ 
/* are based upon an architecture developed by Sun Microsystems, Inc.         */ 
/*                                                                            */ 
/******************************************************************************/ 
/***************************************************************************
****************************************************************************
***
***  Program File:  @(#)carry51.v
***
****************************************************************************
****************************************************************************/

//  @(#)carry51.v	1.3  5/28/92
//
// **************************************************************
//  carry51 -- 2-pass generation of carry into bit 51.
// **************************************************************

[Up: fpm_frac carry51Logic]
module carry51(c51, sum, carry, passX1, fpm_clk);

    output c51;

    input [27:0] sum;
    input [27:1] carry;
    input passX1;
    input fpm_clk;


    wire c28, c28_term;

    wire [27:0] carry_bus = (carry[27:1] << 1) ;
    wire [28:0] result ;
    adder29 carryadd (.z(result[28:0]), .x(sum[27:0]), .y(carry_bus[27:0]),
			.CarryIn(c28_term) );

    assign c28_term = c28 & ~passX1;		// clear during passX1

    ME_FD1 carry28Reg (.q(c28),			// c28 is valid during passX2
		       .d(result[28]),
		       .cp(fpm_clk)
		       );

				// we want the carry into bit 23, so use
				// the following property:
				// c51 = (result[23])          ^ a[23] ^ b[23]
				// c51 = (c23 ^ a[23] ^ b[23]) ^ a[23] ^ b[23]
				// c51 = c23

    wire c51_in = result[23] ^ sum[23] ^ carry[23] ;

    ME_FD1 carry51Reg (.q(c51),			// c51 is valid during passX3
		       .d(c51_in),
		       .cp(fpm_clk)
		       );

endmodule
HierarchyFilesModulesSignalsTasksFunctionsHelp

This page: Created:Thu Aug 19 11:57:35 1999
From: ../../../sparc_v8/ssparc/fpu/fp_fpm/rtl/carry51.v

Verilog converted to html by v2html 5.0 (written by Costas Calamvokis).Help