DECLARATIONS takt PIN 11; "Takteingang Y0 bit3..bit0 PIN 7,8,9,10 ISTYPE'BUFFER,REG'; "Zählerausgänge ctr = [bit3..bit0]; EQUATIONS ctr.d = ctr.q + 1 ; "Zähler um 1 erhöhen ctr.clk = takt; (Alternativen: ctr := ctr +1 oder ctr := ctr.fb +1 Vom Compiler erzeugte Gleichungen bit3 := (!bit3.FB & bit2.FB & bit1.FB & bit0.FB # bit3.FB & !bit0.FB # bit3.FB & !bit1.FB # bit3.FB & !bit2.FB); bit2 := (!bit2.FB & bit1.FB & bit0.FB # bit2.FB & !bit0.FB # bit2.FB & !bit1.FB); bit1 := ( bit1.FB & !bit0.FB # !bit1.FB & bit0.FB); bit0 := (!bit0.FB); bit3.C = (takt); bit2.C = (takt); bit1.C = (takt); bit0.C = (takt); |
![]() |
DECLARATIONS takt,reset PIN 11,19; "Takteingang Y0, Reseteingang bit3..bit0 PIN 7,8,9,10 ISTYPE'BUFFER,REG'; "Zählerausgänge ctr = [bit3..bit0]; "Zusammenfassung der Zählerausgänge zum Zähler EQUATIONS ctr.d = ctr.q + 1; "synchroner Zähler 0 bis 15 ctr.clk = takt; "Zähler-Takt ctr.ar = reset; "asynchroner Reset TEST_VECTORS ([takt,reset] -> [bit3..bit0 ]); @repeat 2 { [.c. ,1 ] -> [.x.,.x.,.x.,.x.]; } @repeat 10 { [.c. ,0 ] -> [.x.,.x.,.x.,.x.]; } @repeat 2 { [.c. ,1 ] -> [.x.,.x.,.x.,.x.]; } @repeat 4 { [.c. ,0 ] -> [.x.,.x.,.x.,.x.]; } END Vom Compiler erzeugte Gleichungen bit3 := (!bit3.FB & bit2.FB & bit1.FB & bit0.FB # bit3.FB & !bit0.FB # bit3.FB & !bit1.FB # bit3.FB & !bit2.FB); bit2 := (!bit2.FB & bit1.FB & bit0.FB # bit2.FB & !bit0.FB # bit2.FB & !bit1.FB); bit1 := ( bit1.FB & !bit0.FB # !bit1.FB & bit0.FB); bit0 := (!bit0.FB); bit3.AR = (reset); Der taktunabhängige Reseteingang bit2.AR = (reset); jedes Flipflops ist dem Reset- bit1.AR = (reset); Schalter Pin 19 verbunden bit0.AR = (reset); bit3.C = (takt); bit2.C = (takt); bit1.C = (takt); bit0.C = (takt); |
![]() |
![]() |
DECLARATIONS takt,reset PIN 11,19; "Takteingang Y0, Reseteingang bit3..bit0 PIN 7,8,9,10 ISTYPE'BUFFER,REG'; "Zählerausgänge ctr = [bit3..bit0]; "Zusammenfassung der Zählerausgänge zum Zähler EQUATIONS when reset then ctr.d = 0; "synchroner Reset else ctr.d = ctr.q + 1; "synchroner Zähler 0 bis 15 ctr.clk = takt; "Zähler-Takt TEST_VECTORS ([takt,reset] -> [bit3..bit0 ]); @repeat 2 { [.c. ,1 ] -> [.x.,.x.,.x.,.x.]; } @repeat 10 { [.c. ,0 ] -> [.x.,.x.,.x.,.x.]; } @repeat 2 { [.c. ,1 ] -> [.x.,.x.,.x.,.x.]; } @repeat 4 { [.c. ,0 ] -> [.x.,.x.,.x.,.x.]; } END Vom Compiler erzeugte Gleichungen "Die Reset-Bedingung wurde in jede UND-Verknüpfung mit aufgenommen. "Daher ist der Reset-Schalter PIN 19 jetzt mit dem taktabhängigen "D-Eingang jedes Flipflops verbunden! bit3 := (!bit3.FB & bit2.FB & bit1.FB & bit0.FB & !reset # bit3.FB & !bit0.FB & !reset # bit3.FB & !bit1.FB & !reset # bit3.FB & !bit2.FB & !reset); bit2 := (!bit2.FB & bit1.FB & bit0.FB & !reset # bit2.FB & !bit0.FB & !reset # bit2.FB & !bit1.FB & !reset); bit1 := ( bit1.FB & !bit0.FB & !reset # !bit1.FB & bit0.FB & !reset); bit0 := (!bit0.FB & !reset); bit3.C = (takt); bit2.C = (takt); bit1.C = (takt); bit0.C = (takt); |
![]() |
![]() |