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.         */ 
/*                                                                            */ 
/******************************************************************************/ 
//  @(#)preventswapctl.v	1.1  4/7/92
//
[Up: Control psc]
module PreventSwapCtl (FracAgtB, notExpAgtB, ExpZero,
                       RomPrevIfBgtA, FpLd,
                       PreventSwap,
                       PreventSwapExp);

input FracAgtB, notExpAgtB, ExpZero,
      FpLd, RomPrevIfBgtA;
output PreventSwap;
output PreventSwapExp;

// Preventing swap on add
// Use seperate line for Exp

ME_INV_A   psg0 (FpLd, notFpLd); // On FpLd remove prevent swap
ME_INV_A   psg3 (ExpZero, notExpZero);


ME_NAND3_B psg4 (notFpLd, RomPrevIfBgtA, notExpAgtB, notPrevSwap_F0);

ME_NAND4  psg5 (notFpLd, RomPrevIfBgtA, notExpAgtB, notExpZero, notPrevSwap_F1);
ME_NMUX2B_B psg6 (FracAgtB, notPrevSwap_F0, notPrevSwap_F1, PreventSwap);

// Add seperate PreventSwap for Exp
ME_INV_B  psg7 (notPrevSwap_F0, PreventSwapExp);

//ME_XOR    psg8 (PreventSwapExp, PreventSwap, WrongSwap);
//ME_FD1    psg8 (Phi, WrongSwap, L_WrongSwap, ); // So swap back !!

/* **************************************************** /
 / We know that we've done the wrong swap. Since the
 / swap is only done at the begining of add we can be sure
 / that FracAreg is going to be loaded from the shifter on
 / the subsequent cycle. So we can force it to be loaded from
 / Breg and also force Breg to be loaded from Areg. So that
 / if a swap was prevented it can be redone
 * **************************************************** */

endmodule
HierarchyFilesModulesSignalsTasksFunctionsHelp

This page: Created:Thu Aug 19 12:03:14 1999
From: ../../../sparc_v8/ssparc/fpu/fp_ctl/rtl/preventswapctl.v

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