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.         */ 
/*                                                                            */ 
/******************************************************************************/ 
//  @(#)ymuxctl.v	1.1  4/7/92
//
[Up: frac_ctl fymc]
module YMuxCtl (RomYMuxCtl,
                YFunc,
                FracAregFPMSBP1,
                notFracAregFPMSBP1,
                FracBregSign,
                DivMultiple,
                AregLSBs,
                StickyForSR1,
                TregLSBs,

/* dhn--01/10/91	notFracYFromD1, notFracYFromD2, notFracYFromD3, */

		notFracYFromD1A, notFracYFromD2A, notFracYFromD3A,
                FracYLSBs);

input FracAregFPMSBP1, notFracAregFPMSBP1, FracBregSign;
input [`end_frac_ybus_field:`start_frac_ybus_field] RomYMuxCtl;
input [6:0] YFunc;
input [2:0] AregLSBs;
input StickyForSR1;
input [1:0] TregLSBs;
input [3:1] DivMultiple;
/* dhn--01/10/91  output notFracYFromD3, notFracYFromD2, notFracYFromD1; */
output notFracYFromD1A, notFracYFromD2A, notFracYFromD3A;
output [1:0] FracYLSBs;

ME_TIEOFF toff (vdd, gnd);

/* Function Coding on
Func1 Func0
0      0    ROM        Ybus From ROM
0      1    ROM SQRT   Ybus From ROM Note we dont do anything with the Ybus here
1      0    Round      Ybus from Areg or AregSR1 dependant on FracAregFPMSBP1
1      1    Div        Ybus From Div Multiple
*/

//YFunc[6] and RomYMuxCtl[`u_FracALUOpForDivOrSQRTStep] mean SQRT step
ME_AND3_B fs3 (YFunc[6], RomYMuxCtl[`u_FracALUOpForDivOrSQRTStep], FracBregSign, RomYFromSQRTBNeg);

/* *************************************************************

         YMux Drivers

   ************************************************************* */

//ME_INV_A ifp (FracAregFPMSBP1, notFracAregFPMSBP1);

/*ME_MUX4B_B ym0 (RomYMuxCtl[`u_FracYbusFromFunc0], RomYMuxCtl[`u_FracYbusFromFunc1],
              RomYMuxCtl[`u_FracYbusFromRomDest0],
              RomYMuxCtl[`u_FracYbusFromRomDest0],
              FracAregFPMSBP1,
              DivMultiple[0], FracYFromD0);

ME_MUX4B_B ym1 (RomYMuxCtl[`u_FracYbusFromFunc0], RomYMuxCtl[`u_FracYbusFromFunc1],
              RomYMuxCtl[`u_FracYbusFromRomDest1],
              RomYMuxCtl[`u_FracYbusFromRomDest1],
              notFracAregFPMSBP1,
              DivMultiple[1], FracYFromD1);*/

/*ME_MUX4B_B ym0 (YFunc[0], YFunc[1],
              RomYMuxCtl[`u_FracYbusFromRomDest0],
              RomYMuxCtl[`u_FracYbusFromRomDest0],
              FracAregFPMSBP1,
              DivMultiple[0], FracYFromD0);

ME_MUX4B_B ym1 (YFunc[2], YFunc[3],
              RomYMuxCtl[`u_FracYbusFromRomDest1],
              RomYMuxCtl[`u_FracYbusFromRomDest1],
              notFracAregFPMSBP1,
              DivMultiple[1], FracYFromD1);*/

/*** dhn--01/10/91

ME_A222OI_B ym1 (YFunc[0],
               RomYMuxCtl[`u_FracYbusFromAregSR1],
               YFunc[1],
               FracAregFPMSBP1,
               YFunc[2],
               DivMultiple[1],
               notFracYFromD1);
               
ME_A222OI_B ym2 (YFunc[3],
               RomYMuxCtl[`u_FracYbusFromAreg],
               YFunc[4],
               notFracAregFPMSBP1,
               YFunc[5],
               DivMultiple[2],
               notFracYFromD2);
               
ME_A222OI_B ym3 (RomYMuxCtl[`u_FracYbusFromFunc0],
               RomYMuxCtl[`u_FracYbusFromTreg],
               RomYMuxCtl[`u_FracYbusFromFunc1],
               gnd,
               RomYMuxCtl[`u_FracYbusFromFunc2],
               DivMultiple[3],
               notFracYFromD3);

***  dhn--01/10/91 ***/
               
ME_A222OI_B ym4 (YFunc[0],
               RomYMuxCtl[`u_FracYbusFromAregSR1],
               YFunc[1],
               FracAregFPMSBP1,
               YFunc[2],
               DivMultiple[1],
               notFracYFromD1A);
               
ME_A222OI_B ym5 (YFunc[3],
               RomYMuxCtl[`u_FracYbusFromAreg],
               YFunc[4],
               notFracAregFPMSBP1,
               YFunc[5],
               DivMultiple[2],
               notFracYFromD2A);
               
ME_A222OI_B ym6 (RomYMuxCtl[`u_FracYbusFromFunc0],
               RomYMuxCtl[`u_FracYbusFromTreg],
               RomYMuxCtl[`u_FracYbusFromFunc1],
               gnd,
               RomYMuxCtl[`u_FracYbusFromFunc2],
               DivMultiple[3],
               notFracYFromD3A);
               


/* ****************************************************************************

      Modify FracYbus LSBs for Negative SQRT step and Sticky

   **************************************************************************** */

ME_INV_A ymlb1 (notFracYFromD1A, FracYFromD1); // Minimalist light load
ME_INV_A ymlb2 (notFracYFromD2A, FracYFromD2); // Minimalist light load
ME_INV_A ymlb3 (notFracYFromD3A, FracYFromD3); // Minimalist light load

/*ME_OR2   ymd0 (FracYFromD1, FracYFromD3, FracYFromD0C);
ME_OR2   ymd1 (FracYFromD2, FracYFromD3, FracYFromD1C);*/

// Do OR before MUX

wire [1:0] OR_AregLSBsSR1, OR_AregLSBs, OR_TregLSBs;

// Bit 0

ME_INVA i00 (RomYMuxCtl[`u_FracYbusOrSticky], notRomFracYbusOrSticky);

/*ME_OR2 i00 (StickyInForSR1, RomYMuxCtl[`u_FracYbusOrSticky], OR_AregLSBsSR1[0]);
ME_OR2 i01 (AregLSBs[0], RomYMuxCtl[`u_FracYbusOrSticky], OR_AregLSBs[0]);
ME_OR2 i02 (TregLSBs[0], RomYMuxCtl[`u_FracYbusOrSticky], OR_TregLSBs[0]);*/

// Bit 1

ME_INVA i10 (RomYFromSQRTBNeg, notRomYFromSQRTBNeg);

/*ME_OR2 i10 (AregLSBs[2], RomYFromSQRTBNeg, OR_AregLSBsSR1[1]);
ME_OR2 i11 (AregLSBs[1], RomYFromSQRTBNeg, OR_AregLSBs[1]);
ME_OR2 i12 (TregLSBs[1], RomYFromSQRTBNeg, OR_TregLSBs[1]);*/

// Use buffered inverse of mux controls

ME_NAND2 ymlsbs1 (FracYFromD1, StickyForSR1,   t0);
ME_NAND2 ymlsbs2 (FracYFromD2, AregLSBs[0],    t1);
ME_NAND2 ymlsbs3 (FracYFromD3, TregLSBs[0],    t2);

ME_NAND4 ymlsbs4 (t0, t1, t2, notRomFracYbusOrSticky, FracYLSBs[0]);

ME_NAND2 ymlsbs5 (FracYFromD1, AregLSBs[2],    t3);
ME_NAND2 ymlsbs6 (FracYFromD2, AregLSBs[1],    t4);
ME_NAND2 ymlsbs7 (FracYFromD3, TregLSBs[1],    t5);

ME_NAND4 ymlsbs8 (t3, t4, t5, notRomYFromSQRTBNeg, FracYLSBs[1]);

/*ME_MUX4B yb0 (FracYFromD0C, FracYFromD1C,
              RomYMuxCtl[`u_FracYbusOrSticky],
              OR_AregLSBsSR1[0],
              OR_AregLSBs[0],
              OR_TregLSBs[0],
              FracYLSBs[0]);

ME_MUX4B yb1 (FracYFromD0C, FracYFromD1C,
              RomYFromSQRTBNeg,
              OR_AregLSBsSR1[1],
              OR_AregLSBs[1],
              OR_TregLSBs[1],
              FracYLSBs[1]);*/

endmodule
HierarchyFilesModulesSignalsTasksFunctionsHelp

This page: Created:Thu Aug 19 12:00:10 1999
From: ../../../sparc_v8/ssparc/fpu/fp_ctl/rtl/ymuxctl.v

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