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.         */ 
/*                                                                            */ 
/******************************************************************************/ 
//  @(#)mullsblog.v	1.1  4/7/92
//
[Up: MulLSBlog m0][Up: MulLSBlog m1][Up: MulLSBlog m2]
module StickyPairNC (StkIn, notCin, X, Y, StkOut, notCout);
   input  StkIn, notCin ;
   input [1:0] X, Y ;
   output StkOut, notCout ; 
   
   ME_XNOR2_B  g10 ( X[0], Y[0], notZ0 );
   ME_XNOR2_B  g11 ( X[1], Y[1], notZ1 );
   ME_OR2_B    g13 ( notZ0, notZ1, notProp );

   // generate logic
   //ME_NMUX2B g12 ( Z1, x[1], x[0], notglo ) ; 
   ME_NAND3    g20 ( X[0], Y[0], X[1], g1 );
   ME_NAND3    g21 ( X[0], Y[0], Y[1], g2 );
   ME_NAND2    g22 ( X[1], Y[1], g3 );
   ME_NAND3    g23 ( g1, g2, g3, generate );

   // local sticky 
   ME_NAND2    g14 ( X[0], Y[0], notgenlo);
   ME_XOR3_B   g26 ( notgenlo, X[1], Y[1], bit1);
   ME_NAND3    g24 ( notZ0, bit1, notCin, StkGen);
   ME_NMUX2B   g28 ( notProp, notCin, StkGen, notStk ) ;

   // bypasses
   ME_INV_A    g31 ( StkIn, notStkIn );
   ME_NAND2    g32 ( notStkIn, notStk, StkOut );
 
   ME_INVA     g27 ( notCin, Cin );
   ME_NMUX2B_B g34 ( notProp, Cin, generate, notCout );
 
endmodule


[Up: MulLSBlog m3]
module StickyPairNCI (StkIn, notCin, X, Y, StkOut, Cout);
   input  StkIn, notCin ;
   input [1:0] X, Y ;
   output StkOut, Cout ; 
   
   ME_XNOR2_B g10 ( X[0], Y[0], notZ0 );
   ME_XNOR2_B g11 ( X[1], Y[1], notZ1 );
   ME_OR2_B   g13 ( notZ0, notZ1, notProp );

   // generate logic
   //ME_NMUX2B g12 ( Z1, x[1], x[0], notglo ) ; 
   ME_NAND3 g20 ( X[0], Y[0], X[1], g1 );
   ME_NAND3 g21 ( X[0], Y[0], Y[1], g2 );
   ME_NAND2 g22 ( X[1], Y[1], g3 );
   ME_NAND3 g23 ( g1, g2, g3, generate );

   // local sticky 
   ME_NAND2   g14 (X[0], Y[0], notgenlo);
   ME_XOR3_B  g26 ( notgenlo, X[1], Y[1], bit1);
   ME_NAND3_B g25 ( notZ0, bit1, notCin, StkGen);
   ME_NMUX2B  g28 ( notProp, notCin, StkGen, notStk ) ;

   // bypasses
   ME_INVA    g31 ( StkIn, notStkIn );
   ME_NAND2_B g32 ( notStkIn, notStk, StkOut );
 
   ME_INVA    g27 ( notCin, Cin );
   ME_MUX2B   g34 ( notProp, Cin, generate, Cout );
 
endmodule


[Up: MultiplierLSB lbg]
module MulLSBlog (SIn, CIn, SInA, CInA, LSBCarryIn, StickyIn,
                  LSBCarryOut, StickyOut);

   input [1:0] SIn, CIn;
   input [5:0] SInA, CInA;
   input LSBCarryIn, StickyIn;
   output LSBCarryOut, StickyOut;

   // wire [2:0] Sticky;
   // wire [7:0] SS;
   // wire [7:1] CO;

   ME_INVA    g27 ( LSBCarryIn, notLSBCarryIn );
   StickyPairNC  m0 (StickyIn, notLSBCarryIn, CIn, SIn, SS0, notC0);
   StickyPairNC  m1 (SS0,  notC0, CInA[1:0], SInA[1:0], SS1, notC1);
   StickyPairNC  m2 (SS1,  notC1, CInA[3:2], SInA[3:2], SS2, notC2);
   StickyPairNCI m3 (SS2,  notC2, CInA[5:4], SInA[5:4], StickyOut, LSBCarryOut);

   // ME_ADD3 a0 (CIn[0], SIn[0], LSBCarryIn, SS[0], CO[1]);
   // ME_ADD3 a1 (CIn[1], SIn[1], CO[1], SS[1], CO[2]);
   // ME_OR3  o1 (SS[0],  SS[1], StickyIn, Sticky[0]);
  
   // ME_ADD3 a2 (CInA[0], SInA[0], CO[2], SS[2], CO[3]);
   // ME_ADD3 a3 (CInA[1], SInA[1], CO[3], SS[3], CO[4]);
   // ME_OR3  o2 (SS[2],   SS[3], Sticky[0], Sticky[1]);

   // ME_ADD3 a4 (CInA[2], SInA[2], CO[4], SS[4], CO[5]);
   // ME_ADD3 a5 (CInA[3], SInA[3], CO[5], SS[5], CO[6]);
   // ME_OR3  o3 (SS[4],   SS[5], Sticky[1], Sticky[2]);

   // ME_ADD3 a6 (CInA[4], SInA[4], CO[6], SS[6], CO[7]);
   // ME_ADD3 a7 (CInA[5], SInA[5], CO[7], SS[7], LSBCarryOut);
   // ME_OR3  o4 (SS[6],   SS[7], Sticky[2], StickyOut);

endmodule
HierarchyFilesModulesSignalsTasksFunctionsHelp

This page: Created:Thu Aug 19 12:02:36 1999
From: ../../../sparc_v8/ssparc/fpu/fp_ctl/rtl/mullsblog.v

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