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");
|
fprintf(DEF_FILE, " + DIRECTION INPUT + USE GROUND");
|
||||||
|
} else if (isck(apLocon->NAME)) {
|
||||||
|
fprintf(DEF_FILE, " + DIRECTION INPUT + USE CLOCK");
|
||||||
} else
|
} else
|
||||||
fprintf(DEF_FILE, " + DIRECTION %s",
|
fprintf(DEF_FILE, " + DIRECTION %s",
|
||||||
DIRtoa(MBK2DEF_locondir(apLocon)));
|
DIRtoa(MBK2DEF_locondir(apLocon)));
|
||||||
|
@ -1535,7 +1537,7 @@ static void fprintNETS()
|
||||||
for(pLoSig = LV_lofig->LOSIG, loSigNB = 0L;
|
for(pLoSig = LV_lofig->LOSIG, loSigNB = 0L;
|
||||||
pLoSig != (losig_list*)NULL; pLoSig = pLoSig->NEXT) {
|
pLoSig != (losig_list*)NULL; pLoSig = pLoSig->NEXT) {
|
||||||
sSig = getsigname(pLoSig);
|
sSig = getsigname(pLoSig);
|
||||||
if (isvdd(sSig) || isvss(sSig)) continue;
|
if (isvdd(sSig) || isvss(sSig) || isck(sSig)) continue;
|
||||||
|
|
||||||
loSigNB += 1;
|
loSigNB += 1;
|
||||||
}
|
}
|
||||||
|
@ -1549,7 +1551,8 @@ static void fprintNETS()
|
||||||
sSig = getsigname(pLoSig);
|
sSig = getsigname(pLoSig);
|
||||||
if ( isvdd(sSig)
|
if ( isvdd(sSig)
|
||||||
|| isvss(sSig)
|
|| isvss(sSig)
|
||||||
|| !strcmp(sSig, "cki")) continue;
|
|| !strcmp(sSig, "cki")
|
||||||
|
|| isck(sSig)) continue;
|
||||||
|
|
||||||
fprintNET(pLoSig, C_USE_NONE);
|
fprintNET(pLoSig, C_USE_NONE);
|
||||||
}
|
}
|
||||||
|
@ -1579,7 +1582,8 @@ static void fprintSPECIALNETS()
|
||||||
sSig = getsigname(pLoSig);
|
sSig = getsigname(pLoSig);
|
||||||
if ( !isvdd(sSig)
|
if ( !isvdd(sSig)
|
||||||
&& !isvss(sSig)
|
&& !isvss(sSig)
|
||||||
&& strcmp(sSig, "cki")) continue;
|
&& strcmp(sSig, "cki")
|
||||||
|
&& !isck(sSig)) continue;
|
||||||
|
|
||||||
loSigNB += 1;
|
loSigNB += 1;
|
||||||
}
|
}
|
||||||
|
@ -1597,6 +1601,7 @@ static void fprintSPECIALNETS()
|
||||||
if ( isvdd(sSig) ) Use = C_USE_POWER;
|
if ( isvdd(sSig) ) Use = C_USE_POWER;
|
||||||
if ( isvss(sSig) ) Use = C_USE_GROUND;
|
if ( isvss(sSig) ) Use = C_USE_GROUND;
|
||||||
if (!strcmp(sSig, "cki")) Use = C_USE_CLOCK;
|
if (!strcmp(sSig, "cki")) Use = C_USE_CLOCK;
|
||||||
|
if ( isck(sSig) ) Use = C_USE_CLOCK;
|
||||||
if (Use == C_USE_NONE) continue;
|
if (Use == C_USE_NONE) continue;
|
||||||
|
|
||||||
fprintNET(pLoSig, Use);
|
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". */
|
/* Create a new pin named from "sIOName". */
|
||||||
m_AddPin(LV_pMACRO->lPIN, sIOName);
|
m_AddPin(LV_pMACRO->lPIN, sIOName);
|
||||||
LV_pMACRO->lPIN->DIRECTION = MBK2DEF_locondir(pLoCon);
|
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);
|
m_AddPort(LV_pMACRO->lPIN->lPORT, C_PORTITEM_LAYER, ALU1);
|
||||||
|
|
||||||
pPIN = LV_pMACRO->lPIN;
|
pPIN = LV_pMACRO->lPIN;
|
||||||
|
@ -674,6 +678,10 @@ static void phseg2PINS()
|
||||||
/* Create a new pin named from "pPhSeg->NAME". */
|
/* Create a new pin named from "pPhSeg->NAME". */
|
||||||
m_AddPin(LV_pMACRO->lPIN, pPhSeg->NAME);
|
m_AddPin(LV_pMACRO->lPIN, pPhSeg->NAME);
|
||||||
LV_pMACRO->lPIN->DIRECTION = MBK2DEF_locondir(pLoCon);
|
LV_pMACRO->lPIN->DIRECTION = MBK2DEF_locondir(pLoCon);
|
||||||
|
if (isck(pPhSeg->NAME))
|
||||||
|
{
|
||||||
|
LV_pMACRO->lPIN->USE = C_USE_CLOCK;
|
||||||
|
}
|
||||||
|
|
||||||
pPIN = LV_pMACRO->lPIN;
|
pPIN = LV_pMACRO->lPIN;
|
||||||
}
|
}
|
||||||
|
@ -728,12 +736,14 @@ static void sortPINS()
|
||||||
ePIN_t *pHeadOUTPUT, *pTailOUTPUT;
|
ePIN_t *pHeadOUTPUT, *pTailOUTPUT;
|
||||||
ePIN_t *pHeadINPUT , *pTailINPUT;
|
ePIN_t *pHeadINPUT , *pTailINPUT;
|
||||||
ePIN_t *pHeadPOWER , *pTailPOWER;
|
ePIN_t *pHeadPOWER , *pTailPOWER;
|
||||||
|
ePIN_t *pHeadCLOCK , *pTailCLOCK;
|
||||||
|
|
||||||
|
|
||||||
pHeadINOUT = pTailINOUT = (ePIN_t*)NULL;
|
pHeadINOUT = pTailINOUT = (ePIN_t*)NULL;
|
||||||
pHeadOUTPUT = pTailOUTPUT = (ePIN_t*)NULL;
|
pHeadOUTPUT = pTailOUTPUT = (ePIN_t*)NULL;
|
||||||
pHeadINPUT = pTailINPUT = (ePIN_t*)NULL;
|
pHeadINPUT = pTailINPUT = (ePIN_t*)NULL;
|
||||||
pHeadPOWER = pTailPOWER = (ePIN_t*)NULL;
|
pHeadPOWER = pTailPOWER = (ePIN_t*)NULL;
|
||||||
|
pHeadCLOCK = pTailCLOCK = (ePIN_t*)NULL;
|
||||||
|
|
||||||
for(pPIN = LV_pMACRO->lPIN; pPIN != (ePIN_t*)NULL;) {
|
for(pPIN = LV_pMACRO->lPIN; pPIN != (ePIN_t*)NULL;) {
|
||||||
pTmp = pPIN;
|
pTmp = pPIN;
|
||||||
|
@ -744,6 +754,9 @@ static void sortPINS()
|
||||||
case C_USE_GROUND:
|
case C_USE_GROUND:
|
||||||
insertPIN(&pHeadPOWER, &pTailPOWER, pTmp);
|
insertPIN(&pHeadPOWER, &pTailPOWER, pTmp);
|
||||||
continue;
|
continue;
|
||||||
|
case C_USE_CLOCK:
|
||||||
|
insertPIN(&pHeadCLOCK, &pTailCLOCK, pTmp);
|
||||||
|
continue;
|
||||||
} /* End of "USE" switch. */
|
} /* End of "USE" switch. */
|
||||||
|
|
||||||
switch(pTmp->DIRECTION) {
|
switch(pTmp->DIRECTION) {
|
||||||
|
@ -783,6 +796,10 @@ static void sortPINS()
|
||||||
if (pHeadPOWER != (ePIN_t*)NULL) {
|
if (pHeadPOWER != (ePIN_t*)NULL) {
|
||||||
*ppHead = pHeadPOWER; ppHead = &(pTailPOWER->Next);
|
*ppHead = pHeadPOWER; ppHead = &(pTailPOWER->Next);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (pHeadCLOCK != (ePIN_t*)NULL) {
|
||||||
|
*ppHead = pHeadCLOCK; ppHead = &(pTailCLOCK->Next);
|
||||||
|
}
|
||||||
|
|
||||||
*ppHead = (ePIN_t*)NULL;
|
*ppHead = (ePIN_t*)NULL;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue