Ôóíêöèîíàëüíîå îïèñàíèå öèôðîâûõ óñòðîéñòâ - ÷àñòü 9
+ OUT1 OUT2 OUT3
+ IO_MODEL
+ TRISTATE:
+ ENABLE LO = ENA
+ OUT1 = {
+ CASE (
+ CHANGED (REF1, 0) & TRN_LH, DELAY(. . .),
+ CHANGED (REF2, 0) DELAY(. . .),
+ TRN_ZL, DELAY(. . .),
+ . . .
+ )
+ }
+ OUT3 = {
+ CASE (
+ TRN_LZ, DELAY(. . .),
+ TRN_HZ, DELAY(. . .),
+ . . .
+ )
+ }
+ PINDLY:
+ OUT2 = {
+ CASE (
+ CHANGED (REF1, 0), DELAY(. . .),
+ . . .
+ )
+ }
Ðèñ. 6.18. Óïðàâëåíèå çàäåðæêàìè ñ ïîìîùüþ óçëîâ ðàçðåøåíèÿ |
Ñòðóêòóðà óïðàâëåíèÿ çàäåðæêàìè â äàííîì ïðèìåðå ïîêàçàíà íà ðèñ. 6.18.
Ôóíêöèîíèðîâàíèå ïðèìèòèâà PINDLY. Ñîñòîÿíèÿ âûõîäíûõ óçëîâ ïðèìèòèâà PINDLY èçìåíÿþòñÿ ïðè èçìåíåíèè ñîñòîÿíèé ëþáîãî âõîäíîãî óçëà èëè óçëà ðàçðåøåíèÿ. Êàæäîìó âõîäíîìó óçëó ñîîòâåòñòâóåò âûõîäíîé óçåë. Ñíà÷àëà îïðåäåëÿþòñÿ ñîñòîÿíèÿ âíóòðåííèõ ïåðåìåííûõ â ñåêöèè BOOLEAN, çàòåì âû÷èñëÿþòñÿ <âûðàæåíèÿ äëÿ çàäåðæåê> â ñåêöèÿõ PINDLY èëè TRISTATE. Ïîñëå ýòîãî èçìåíèâøååñÿ ñîñòîÿíèå âõîäíîãî óçëà ïðèñâàèâàåòñÿ ñîîòâåòñòâóþùåìó åìó âûõîäíîìó óçëó ñ çàäåðæêîé.
Ïðèâåäåì ïðèìåð ðåàëüíîãî ñ÷åò÷èêà 74LS160A:
ULS160ADLY PINDLY (5,0,10) DPWR DGND
+ RCO QA QB QC QD ; Âõîäû
+ CLK LOADBAR ENT CLRBAR ; Âíóòðåííèå óçëû
+ RCO_O QA_O QB_O QC_O QD_O ; Âûõîäû