Adding clock detection to sea ... when MBK_CK is used, lef-def
files are generated with annotation ("use clock") ... on clock signal. Please don't tell JPC I've made this ....
This commit is contained in:
parent
692531ba41
commit
7f604e4b51
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue