From 73f27b03627595bd1739ad1c336e3b39e1cd43e4 Mon Sep 17 00:00:00 2001 From: hneemann Date: Wed, 21 Dec 2016 21:55:34 +0100 Subject: [PATCH] improved simpler interrupt controller --- src/main/dig/processor/Control.dig | 89 ++----- src/main/dig/processor/Interrupt.dig | 232 ++++------------- src/main/dig/processor/ProcessorIntr.dig | 314 +++++++++++++---------- 3 files changed, 257 insertions(+), 378 deletions(-) diff --git a/src/main/dig/processor/Control.dig b/src/main/dig/processor/Control.dig index b4876e7b7..3f7c38b92 100644 --- a/src/main/dig/processor/Control.dig +++ b/src/main/dig/processor/Control.dig @@ -91,72 +91,11 @@ realisiert, und nicht durch 24 einzelne Schaltnetze. Data - - 63 - 0 - 2097280 - 4195520 - 4211904 - 4196544 - 4212928 - 4197568 - 4198592 - 4199616 - 196 - 212 - 4195524 - 4195540 - 4211908 - 4211924 - 4196548 - 4196564 - 4212932 - 4212948 - 4197572 - 4197588 - 4198596 - 4198612 - 4199620 - 4199636 - 4205760 - 4205764 - 4205780 - 4196352 - 4196356 - 4196372 - 4200640 - 4201664 - 4217024 - 4218048 - 4202688 - 9408 - 10432 - 2098186 - 1673 - 2097158 - 2097182 - 133 - 149 - 2098182 - 1669 - 32792 - 65560 - 98328 - 163864 - 196632 - 229400 - 420 - 32 - 36 - 131096 - 2359300 - 2359324 - 2360328 - 524932 - 524948 - 525960 - 1048576 - + 0,200080,4004c0,4044c0,4008c0,4048c0,400cc0,4010c0,4014c0,c4,d4,4004c4,4004d4,4044c4, +4044d4,4008c4,4008d4,4048c4,4048d4,400cc4,400cd4,4010c4,4010d4,4014c4,4014d4,402cc0, +402cc4,402cd4,400800,400804,400814,4018c0,401cc0,4058c0,405cc0,4020c0,24c0,28c0,20040a, +689,200006,20001e,85,95,200406,685,8018,10018,18018,28018,30018,38018,1a4,20,24,20018, +240004,24001c,240408,80284,80294,80688,100000,800020 lastDataFile @@ -436,6 +375,20 @@ realisiert, und nicht durch 24 einzelne Schaltnetze. + + Out + + + Description + return from interrupt + + + Label + reti + + + + @@ -514,6 +467,10 @@ realisiert, und nicht durch 24 einzelne Schaltnetze. + + + + diff --git a/src/main/dig/processor/Interrupt.dig b/src/main/dig/processor/Interrupt.dig index cfecdf566..8a004e1bc 100644 --- a/src/main/dig/processor/Interrupt.dig +++ b/src/main/dig/processor/Interrupt.dig @@ -4,74 +4,35 @@ Description - Einfacher Interrupt-Controler. -Wird ein Interrupt ausgelöst, wird der Controler + Einfacher Interrupt-Controller. +Wird ein Interrupt ausgelöst, wird der Controller gesperrt: Es können keine weiteren Interrupts -ausgelöst werden. Am Ende der ISR kann über -den IO Port 1 die Return Address abgefragt -werden. Diese Abfrage gibt den -Interruptcontroller auch wieder frei, so dass -erneut Interrupts ausgelöst werden können. +ausgelöst werden. Erst der Eingang reti gibt den +Interrupt-Controller wieder frei. Width - 4 + 5 - - In - - - Description - Adresse - - - Label - A - - - Bits - 16 - - - Default - 1 - - - - Out Description - Datenbus + Return Address Label - D + retAddr Bits 16 - - - - In - - - Description - IO Read - - - Label - ioR - - - + And @@ -124,7 +85,7 @@ erneut Interrupts ausgelöst werden können. Label - intRet + retAddr Bits @@ -168,17 +129,7 @@ erneut Interrupts ausgelöst werden können. iEn - - - - Comparator - - - Bits - 16 - - - + In @@ -195,35 +146,6 @@ Wenn gesetzt, wird Interrupt verhindert. - - Const - - - Bits - 16 - - - - - - Driver - - - Bits - 16 - - - flipSelPos - true - - - - - - And - - - In @@ -269,40 +191,38 @@ Wenn gesetzt, wird Interrupt verhindert. Description - Interrupt Anforderung + return from interrupt + + + rotation + Label - intr + reti - + D_FF + + valueIsProbe + true + Label - Sync + iEn - + /home/hneemann/Dokumente/Java/digital/src/main/dig/processor/Rising.dig - - D_FF - - - rotation - - - - - Tunnel @@ -327,20 +247,6 @@ Wenn gesetzt, wird Interrupt verhindert. - - Tunnel - - - rotation - - - - NetName - C - - - - Tunnel @@ -363,7 +269,21 @@ Wenn gesetzt, wird Interrupt verhindert. C - + + + + In + + + Description + Interrupt Anforderung + + + Label + intr + + + @@ -395,10 +315,6 @@ Wenn gesetzt, wird Interrupt verhindert. - - - - @@ -407,14 +323,6 @@ Wenn gesetzt, wird Interrupt verhindert. - - - - - - - - @@ -424,12 +332,8 @@ Wenn gesetzt, wird Interrupt verhindert. - - - - - - + + @@ -439,17 +343,9 @@ Wenn gesetzt, wird Interrupt verhindert. - - - - - - - - - + @@ -484,37 +380,33 @@ Wenn gesetzt, wird Interrupt verhindert. - - + + - - - - - + - - + + - - + + - - - - + + + + @@ -535,29 +427,9 @@ Wenn gesetzt, wird Interrupt verhindert. - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/main/dig/processor/ProcessorIntr.dig b/src/main/dig/processor/ProcessorIntr.dig index 36fd5594f..a6400b434 100644 --- a/src/main/dig/processor/ProcessorIntr.dig +++ b/src/main/dig/processor/ProcessorIntr.dig @@ -169,7 +169,7 @@ An dieser Adresse muss sich die ISR befinden. Data - 99ab,1200,8015,68f0,8020,1200,73f0,8f8a,1200,8015,68f0,8020,1200,73f0,1831,203,8015, + 99ab,1200,8015,68f0,8020,1200,73f0,8f8a,1200,8015,68f0,8020,1200,73f0,1831,203,8015, 68f0,140a,73f0,6feb,4800,4a00,8024,6820,4a00,8024,6820,4800,4a00,8024,6820,4a00,8024, 6820,6a0f,210,281f,3c1a,6203,8030,1610,6e02,8037,1610,73f1,6a02,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, @@ -270,9 +270,9 @@ An dieser Adresse muss sich die ISR befinden. 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,78c0,20e1,4cec,20e1,4ce0,7c00,5601,56c0, -3cc0,6402,14c1,1400,735c,3c00,6407,3ec0,8000,3bc0,6408,1401,5210,6e05,40c0,3cc1,6402, -1400,5210,520c,4e0e,18e1,4ece,18e1,720c,78c1,6a0c +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,ffff,59e0,7800,20e1,20e1,4ce0,20e1,4ce1, +7c00,5601,5610,3c10,6402,1411,1400,7351,3c00,6407,3e10,8000,3b10,6408,1401,5210,6e05, +4010,3c11,6402,1400,5210,5201,4e1e,18e1,4e0e,18e2,7200,ffff,5b0e,7e00 lastDataFile @@ -309,14 +309,14 @@ An dieser Adresse muss sich die ISR befinden. Label - Clock + C Frequency 500000 - + Driver @@ -734,7 +734,7 @@ An dieser Adresse muss sich die ISR befinden. C - + Tunnel @@ -805,21 +805,7 @@ An dieser Adresse muss sich die ISR befinden. /home/hneemann/Dokumente/Java/digital/src/main/dig/processor/Interrupt.dig - - - - Tunnel - - - rotation - - - - NetName - ioR - - - + Tunnel @@ -833,7 +819,7 @@ An dieser Adresse muss sich die ISR befinden. C - + Tunnel @@ -847,7 +833,7 @@ An dieser Adresse muss sich die ISR befinden. imm - + Tunnel @@ -861,7 +847,7 @@ An dieser Adresse muss sich die ISR befinden. next - + Tunnel @@ -885,7 +871,7 @@ An dieser Adresse muss sich die ISR befinden. iEn - + Tunnel @@ -913,7 +899,7 @@ An dieser Adresse muss sich die ISR befinden. abs - + /home/hneemann/Dokumente/Java/digital/src/main/dig/processor/FlagsRW.dig @@ -974,16 +960,6 @@ An dieser Adresse muss sich die ISR befinden. - - Tunnel - - - NetName - D - - - - Tunnel @@ -994,20 +970,6 @@ An dieser Adresse muss sich die ISR befinden. - - Tunnel - - - rotation - - - - NetName - A - - - - /home/hneemann/Dokumente/Java/digital/src/main/dig/processor/Terminal.dig @@ -1218,7 +1180,7 @@ An dieser Adresse muss sich die ISR befinden. 11 - + Tunnel @@ -1232,12 +1194,12 @@ An dieser Adresse muss sich die ISR befinden. C - + Ground - + Tunnel @@ -1249,6 +1211,78 @@ An dieser Adresse muss sich die ISR befinden. + + Tunnel + + + rotation + + + + NetName + reti + + + + + + Tunnel + + + NetName + retAddr + + + + + + Tunnel + + + rotation + + + + NetName + reti + + + + + + Multiplexer + + + rotation + + + + Bits + 16 + + + + + + Tunnel + + + NetName + reti + + + + + + Tunnel + + + NetName + retAddr + + + + @@ -1315,10 +1349,6 @@ An dieser Adresse muss sich die ISR befinden. - - - - @@ -1340,12 +1370,12 @@ An dieser Adresse muss sich die ISR befinden. - - + + - - + + @@ -1360,12 +1390,12 @@ An dieser Adresse muss sich die ISR befinden. - - + + - - + + @@ -1435,6 +1465,18 @@ An dieser Adresse muss sich die ISR befinden. + + + + + + + + + + + + @@ -1451,25 +1493,13 @@ An dieser Adresse muss sich die ISR befinden. - - - - - - - - - - - - - - + + @@ -1480,8 +1510,20 @@ An dieser Adresse muss sich die ISR befinden. - - + + + + + + + + + + + + + + @@ -1492,16 +1534,8 @@ An dieser Adresse muss sich die ISR befinden. - - - - - - - - - - + + @@ -1564,24 +1598,8 @@ An dieser Adresse muss sich die ISR befinden. - - - - - - - - - - - - - - - - - - + + @@ -1591,6 +1609,30 @@ An dieser Adresse muss sich die ISR befinden. + + + + + + + + + + + + + + + + + + + + + + + + @@ -1600,12 +1642,8 @@ An dieser Adresse muss sich die ISR befinden. - - - - - - + + @@ -1620,12 +1658,12 @@ An dieser Adresse muss sich die ISR befinden. - - + + - - + + @@ -1684,7 +1722,7 @@ An dieser Adresse muss sich die ISR befinden. - + @@ -1707,13 +1745,17 @@ An dieser Adresse muss sich die ISR befinden. + + + + - - + + @@ -1760,12 +1802,16 @@ An dieser Adresse muss sich die ISR befinden. - - + + - - + + + + + + @@ -1773,7 +1819,7 @@ An dieser Adresse muss sich die ISR befinden. - + @@ -1859,6 +1905,10 @@ An dieser Adresse muss sich die ISR befinden. + + + + @@ -1871,6 +1921,10 @@ An dieser Adresse muss sich die ISR befinden. + + + + @@ -1887,10 +1941,6 @@ An dieser Adresse muss sich die ISR befinden. - - - -