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.         */ 
/*                                                                            */ 
/******************************************************************************/ 
//  @(#)implementedcheck.v	1.1  4/7/92
//
[Up: Control ich]
module ImplementedCheck (Phi,
// input
                         ResetImp,
                         notReset,
                         FpOp,
                         EntryPoint,
                         FpInst,             // sparc FP inst field
// outputs
                         notDecodedUnImp,
                         notUnimpOrReset,
                         notAbortInst, ResetAbortInst,
                         FPOP2Map,
                         UnImpOut);

input Phi,
      ResetImp,  // Reset beore modification
      notReset,     // Reset After modification
      FpOp,
      EntryPoint;
input [9:4] FpInst;
output notDecodedUnImp;   // Go busy quickly
output notUnimpOrReset,
       notAbortInst,       // Aborting so remain busy for two extra cycles
       ResetAbortInst,
       FPOP2Map,
       UnImpOut;
// ***************************************//
// Imp Check                      //
// ***************************************//

ME_NAND2 idg0 (FpInst[4], FpInst[6], notFpInst4and6);
ME_OR2   idg1 (FpInst[7], notFpInst4and6, notFPOP2Map);
ME_INV_B idg2 (notFPOP2Map, FPOP2Map);
ME_XOR2  idg3 (FpInst[9], FPOP2Map, notEntryMap);
ME_OR2   idg4 (notEntryMap, FpInst[8], UnImpMap);
ME_INV_A rrr7 (notReset, Reset);
ME_OR2   ggh3 (FpOp, Reset, UnImpMapEn);
ME_FD1E  ggh1 (Phi, UnImpMapEn, UnImpMap, , ImpMap);
ME_FD1   rrr6 (Phi, FpOp, FpOpHeld, notFpOpHeld);

ME_INVA  ggh2 (ResetImp, notResetImp);

ME_NAND3 ggh4 (ImpMap, EntryPoint, notReset, notImpStart);
ME_NAND3 ddfd (notImpStart, notResetImp, FpOpHeld, notDecodedUnImp);

ME_NAND2   g_1  (notFpOpHeld, notReset, FpOpHeldOrReset);
ME_NAND2_B g_3  (FpOpHeldOrReset, notImpStart, notUnimpOrReset);

ME_OR2   icor (FpOpHeld, ResetImp, NewInsOrReset);

ME_FD1E  ni   (Phi, NewInsOrReset, notDecodedUnImp, , UnImpOut );

// ***************************************//
// Kill UnImp Inst         //
// ***************************************//

// KillUnImp is used to abort loading of MIptr
// In addition it is used to cause at least three busy cycles
// after which the FPU will accept new Insts
// The FPU is kept in reset until the last busy cycle

ME_FD1   ggh11 (Phi, notDecodedUnImp, notRemainBusy1, RemainBusy1);
ME_FD1   ggh12 (Phi, notRemainBusy1, notRemainBusy2, RemainBusy2);
ME_NAND2 ggh5  (notDecodedUnImp, notRemainBusy1,
                ResetAbortInst);
ME_AND2  ggh6  (notRemainBusy1, notRemainBusy2, notAbortInst);

endmodule

HierarchyFilesModulesSignalsTasksFunctionsHelp

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

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