/******************************************************************************/
/* */
/* 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. */
/* */
/******************************************************************************/
// @(#)csarray.v 1.1 4/7/92
//
/**********************/
/* Carry Save Array */
/**********************/
module CSArray
(
// ctl inputs
Shift,
Pos,
Zero,
// inputs
SumIn,
CarryIn,
Breg,
// ctl output
SALSBs, SBLSBs, SCLSBs,
CALSB, CBLSB, CCLSB,
// outputs
SD,
CD[`FracMSB:2]);
input [3:0] Shift
, Pos
, Zero
;
input [`FracMSB:3] CarryIn
, SumIn
;
input [`FracMSB:1] Breg
;
output [2:1] SALSBs
, SBLSBs
, SCLSBs
;
output CALSB
, CBLSB
, CCLSB
;
output [`FracMSB:1] SD
;
output [1+`FracMSB:2] CD
;
wire [`FracMSB:1] SA
, SB
, SC
; // For cs in line expansion
wire [1+`FracMSB:2] CA
, CB
, CC
;
CS_STAGE_57 asdc ({SumIn[`FracMSB], SumIn[`FracMSB], SumIn[`FracMSB:3]},
{CarryIn[`FracMSB], CarryIn[`FracMSB], CarryIn[`FracMSB:3]},
Breg, Shift[0], Pos[0], Zero[0],
{SA[`FracMSB:3], SALSBs[2:1]}, {CA[1+`FracMSB:3], CALSB});
CS_STAGE_57 asdd ({SA[`FracMSB], SA[`FracMSB], SA[`FracMSB:3]},
{CA[`FracMSB], CA[`FracMSB], CA[`FracMSB:3]},
Breg, Shift[1], Pos[1], Zero[1],
{SB[`FracMSB:3], SBLSBs[2:1]}, {CB[1+`FracMSB:3], CBLSB});
CS_STAGE_57 asde ({SB[`FracMSB], SB[`FracMSB], SB[`FracMSB:3]},
{CB[`FracMSB], CB[`FracMSB], CB[`FracMSB:3]},
Breg, Shift[2], Pos[2], Zero[2],
{SC[`FracMSB:3], SCLSBs[2:1]}, {CC[1+`FracMSB:3], CCLSB});
CS_STAGE_57 asdf ({SC[`FracMSB], SC[`FracMSB], SC[`FracMSB:3]},
{CC[`FracMSB], CC[`FracMSB], CC[`FracMSB:3]},
Breg, Shift[3], Pos[3], Zero[3],
SD, CD);
endmodule
| This page: |
Created: | Thu Aug 19 12:00:01 1999 |
| From: |
../../../sparc_v8/ssparc/fpu/fp_frac/rtl/csarray.v
|