diff --git a/alliance/src/sea/src/DEF_drive.c b/alliance/src/sea/src/DEF_drive.c index d68de59b..594e8789 100644 --- a/alliance/src/sea/src/DEF_drive.c +++ b/alliance/src/sea/src/DEF_drive.c @@ -1,5 +1,5 @@ /* - * $Id: DEF_drive.c,v 1.6 2003/04/02 15:02:49 jpc Exp $ + * $Id: DEF_drive.c,v 1.7 2003/04/04 16:23:31 xtof Exp $ * * /----------------------------------------------------------------\ * | | @@ -1144,6 +1144,8 @@ static void fprintPIN(apLocon, apPhcon, asState) */ fprintf(DEF_FILE, " + DIRECTION INPUT + USE GROUND"); + } else if (isck(apLocon->NAME)) { + fprintf(DEF_FILE, " + DIRECTION INPUT + USE CLOCK"); } else fprintf(DEF_FILE, " + DIRECTION %s", DIRtoa(MBK2DEF_locondir(apLocon))); @@ -1535,7 +1537,7 @@ static void fprintNETS() for(pLoSig = LV_lofig->LOSIG, loSigNB = 0L; pLoSig != (losig_list*)NULL; pLoSig = pLoSig->NEXT) { sSig = getsigname(pLoSig); - if (isvdd(sSig) || isvss(sSig)) continue; + if (isvdd(sSig) || isvss(sSig) || isck(sSig)) continue; loSigNB += 1; } @@ -1549,7 +1551,8 @@ static void fprintNETS() sSig = getsigname(pLoSig); if ( isvdd(sSig) || isvss(sSig) - || !strcmp(sSig, "cki")) continue; + || !strcmp(sSig, "cki") + || isck(sSig)) continue; fprintNET(pLoSig, C_USE_NONE); } @@ -1579,7 +1582,8 @@ static void fprintSPECIALNETS() sSig = getsigname(pLoSig); if ( !isvdd(sSig) && !isvss(sSig) - && strcmp(sSig, "cki")) continue; + && strcmp(sSig, "cki") + && !isck(sSig)) continue; loSigNB += 1; } @@ -1597,6 +1601,7 @@ static void fprintSPECIALNETS() if ( isvdd(sSig) ) Use = C_USE_POWER; if ( isvss(sSig) ) Use = C_USE_GROUND; if (!strcmp(sSig, "cki")) Use = C_USE_CLOCK; + if ( isck(sSig) ) Use = C_USE_CLOCK; if (Use == C_USE_NONE) continue; fprintNET(pLoSig, Use); diff --git a/alliance/src/sea/src/LEF_drive_sxlib.c b/alliance/src/sea/src/LEF_drive_sxlib.c index 06bee4b6..bceb92ff 100644 --- a/alliance/src/sea/src/LEF_drive_sxlib.c +++ b/alliance/src/sea/src/LEF_drive_sxlib.c @@ -1,5 +1,5 @@ /* - * $Id: LEF_drive_sxlib.c,v 1.2 2002/09/30 16:21:17 czo Exp $ + * $Id: LEF_drive_sxlib.c,v 1.3 2003/04/04 16:23:32 xtof Exp $ * * /----------------------------------------------------------------\ * | | @@ -617,6 +617,10 @@ static void phref2PINS() /* Create a new pin named from "sIOName". */ m_AddPin(LV_pMACRO->lPIN, sIOName); LV_pMACRO->lPIN->DIRECTION = MBK2DEF_locondir(pLoCon); + if (isck(sIOName)) + { + LV_pMACRO->lPIN->USE = C_USE_GROUND; + } m_AddPort(LV_pMACRO->lPIN->lPORT, C_PORTITEM_LAYER, ALU1); pPIN = LV_pMACRO->lPIN; @@ -674,6 +678,10 @@ static void phseg2PINS() /* Create a new pin named from "pPhSeg->NAME". */ m_AddPin(LV_pMACRO->lPIN, pPhSeg->NAME); LV_pMACRO->lPIN->DIRECTION = MBK2DEF_locondir(pLoCon); + if (isck(pPhSeg->NAME)) + { + LV_pMACRO->lPIN->USE = C_USE_CLOCK; + } pPIN = LV_pMACRO->lPIN; } @@ -728,12 +736,14 @@ static void sortPINS() ePIN_t *pHeadOUTPUT, *pTailOUTPUT; ePIN_t *pHeadINPUT , *pTailINPUT; ePIN_t *pHeadPOWER , *pTailPOWER; + ePIN_t *pHeadCLOCK , *pTailCLOCK; pHeadINOUT = pTailINOUT = (ePIN_t*)NULL; pHeadOUTPUT = pTailOUTPUT = (ePIN_t*)NULL; pHeadINPUT = pTailINPUT = (ePIN_t*)NULL; pHeadPOWER = pTailPOWER = (ePIN_t*)NULL; + pHeadCLOCK = pTailCLOCK = (ePIN_t*)NULL; for(pPIN = LV_pMACRO->lPIN; pPIN != (ePIN_t*)NULL;) { pTmp = pPIN; @@ -744,6 +754,9 @@ static void sortPINS() case C_USE_GROUND: insertPIN(&pHeadPOWER, &pTailPOWER, pTmp); continue; + case C_USE_CLOCK: + insertPIN(&pHeadCLOCK, &pTailCLOCK, pTmp); + continue; } /* End of "USE" switch. */ switch(pTmp->DIRECTION) { @@ -783,6 +796,10 @@ static void sortPINS() if (pHeadPOWER != (ePIN_t*)NULL) { *ppHead = pHeadPOWER; ppHead = &(pTailPOWER->Next); } + + if (pHeadCLOCK != (ePIN_t*)NULL) { + *ppHead = pHeadCLOCK; ppHead = &(pTailCLOCK->Next); + } *ppHead = (ePIN_t*)NULL; }