Latch v Gal, was: Nejakych 15ns by bodlo :).

Wek wek@evona.sk
Úterý Červenec 20 15:24:37 CEST 2004


> Logicka funkce je tvorena AND-OR matici,
>
> Qx = Dx*LATCH + Qx*/LATCH
>
> pokud v tom soucinu bude "0" (Dx, Qx), a LATCH neurcity, tak vysledek
soucinu
> bude urcity a bude vzdy "0", soucet nul bude "0",
> neurcitost muze nastat jen pro Dx = 1 pri sestupne hrane LATCH, tam budou
> neurcite "1", jejich soucin je "1", jen pokud jsou v presahu, proto je tam
ta
> pridrz, ta je po dobu zmeny LATCH rovna "1", pokud ma signal Dx presah po
> zmene signalu LATCH.
>
> Qx = Dx*LATCH + Qx*/LATCH + Dx*Qx
>
> Danhard

No, vysvetlenie je to perfektne, konecne tomu rozumiem, dakujem...

Lenze ja som medzicasom nad tym rozmyslal a cital a patral; a ono je to trochu
inak.

Zaujalo ma najprv to, ze v uz spominanom dokumente od AMD (#90003,
Combinatorial Logic Design) sa uvadza nasledovna rovnica:
/Q=/D*LEN+/Q*/LEN(+/D*/Q)
takze podla tohoto hazard nastava prave ked je D a Q v nule...



Potom som zistil (http://www-ee.eng.hawaii.edu/~ms
mith/ASICs/HTML/Book/CH05/CH05.4.htm), ze v skutocnosti AND matica nie je
implementovana ako AND, ale ako wired-OR (ono by bolo asi tazko sfunkcnit
niekolko desiatok tranzistorov v serii, ze...). A samozrejme, su prehodene
invertovane a neinvertovane vstupne datove linky (tym sa trivialnym sposobom
dosiahne inverzia na vstupe).
Jednoducho, ak je na datovej linke (po zinvertovani) 1, ak je dany fuse
neprepaleny (u GAL EE tranzistor nenaprogramovany), otvori sa tranzistor,
ktory prizemni danu "AND"-linku. Na konci "AND"-linky je pochopitelne nejaky
"pullup" (aktivna zataz), z toho vyplyva pomerne vysoka spotreba aj pri
nulovej frekvencii (a tiez rychlost zavisla od toho, ci sa jedna o
"full"/Half/Quarter-power device - ta dlha linka ma pochopitelne velku
kapacitu, takze tym "pullupom" musi tiect patricny prud pre dostatocnu
rychlost); no a nakoniec zosilnovac do OR linky.
Takze ak je na vstupe (D a tym aj Q) jednicka a aj na LATCH je 1, po inverzii
je to nula, tranzistory na "AND" linke D*L su oba zatvorene, takze je tam
jednotka z pullupu, co na konci v ORe sposobi jednicku. Pri prechode LATCHu z
jedna do nuly by sa mohlo stat, ze linka D*L sa rychlejsie preklopi do nuly
ako pullup "vytiahne" Q*/L do jednicky; tam by sa ta falosna nula mohla
objavit na vystupe a mozno nakoniec aj tam zostat.

Toto by zasa svedcilo o tom, ze hazard je naozaj ked je D aj Q v jednotke.


Lenze toto vsetko moze a nemusi byt pravda, kedze skutocnu vnutornu strukturu
Vam nikto nezverejni...


Mozete jedine hadat, reverze engineerovat s kyselinami a elektronovym
mikroskopom, alebo machat vstupmi a merat; navyse u PALCE to moze byt inak ako
u GAL a este inak u PEEL, a pochopitelne MAX a XC95xxx...

Cize ta rovnica moze vyzerat podla vnutorneho zapojenia pokojne aj tak aj
onak.

Tak kde je pravda a ako sa ju zodpovedne dozvediet?

wek





Další informace o konferenci Hw-list