From 93ffe743dfce17d5742bab53f76d7dc11a276966 Mon Sep 17 00:00:00 2001 From: hneemann Date: Sat, 2 Sep 2017 14:05:04 +0200 Subject: [PATCH] fixed 74161, 74162 --- src/main/dig/lib/74xx/counter/74161.dig | 132 +++++++-------- src/main/dig/lib/74xx/counter/74162.dig | 157 +++++++++++------- src/main/dig/lib/74xx/counter/74162Real.dig | 73 ++++++-- .../digital/integration/TestExamples.java | 2 +- 4 files changed, 219 insertions(+), 145 deletions(-) diff --git a/src/main/dig/lib/74xx/counter/74161.dig b/src/main/dig/lib/74xx/counter/74161.dig index 7a0f559c2..b06fc3f42 100644 --- a/src/main/dig/lib/74xx/counter/74161.dig +++ b/src/main/dig/lib/74xx/counter/74161.dig @@ -50,7 +50,7 @@ pinNumber - 9 + 9 Default @@ -82,7 +82,7 @@ pinNumber - 1 + 1 Default @@ -104,7 +104,7 @@ pinNumber - 2 + 2 @@ -118,7 +118,7 @@ pinNumber - 15 + 15 @@ -137,7 +137,7 @@ pinNumber - 10 + 10 @@ -151,7 +151,7 @@ pinNumber - 7 + 7 @@ -190,10 +190,10 @@ pinNumber - 3 + 3 - + Splitter @@ -207,7 +207,7 @@ 4 - + In @@ -218,10 +218,10 @@ pinNumber - 4 + 4 - + In @@ -232,10 +232,10 @@ pinNumber - 5 + 5 - + In @@ -246,10 +246,10 @@ pinNumber - 6 + 6 - + Splitter @@ -274,7 +274,7 @@ pinNumber - 14 + 14 @@ -288,7 +288,7 @@ pinNumber - 13 + 13 @@ -302,7 +302,7 @@ pinNumber - 12 + 12 @@ -316,7 +316,7 @@ pinNumber - 11 + 11 @@ -355,7 +355,7 @@ pinNumber - 16 + 16 InDefault @@ -373,28 +373,28 @@ pinNumber - 8 + 8 - - - - - + + + + + - - + + @@ -402,10 +402,6 @@ - - - - @@ -424,10 +420,6 @@ - - - - @@ -437,12 +429,16 @@ - - + + - - + + + + + + @@ -452,10 +448,6 @@ - - - - @@ -464,9 +456,17 @@ + + + + + + + + - + @@ -477,12 +477,8 @@ - - - - - - + + @@ -497,8 +493,12 @@ - - + + + + + + @@ -506,7 +506,7 @@ - + @@ -520,22 +520,14 @@ - - - - - + - - - - @@ -546,12 +538,16 @@ - + + + + + @@ -561,12 +557,12 @@ - - + + - - + + diff --git a/src/main/dig/lib/74xx/counter/74162.dig b/src/main/dig/lib/74xx/counter/74162.dig index a7a8c4212..483a75658 100644 --- a/src/main/dig/lib/74xx/counter/74162.dig +++ b/src/main/dig/lib/74xx/counter/74162.dig @@ -64,7 +64,7 @@ pinNumber - 9 + 9 Default @@ -96,7 +96,7 @@ pinNumber - 1 + 1 Default @@ -118,7 +118,7 @@ pinNumber - 2 + 2 @@ -132,7 +132,7 @@ pinNumber - 15 + 15 @@ -151,7 +151,7 @@ pinNumber - 10 + 10 @@ -165,7 +165,7 @@ pinNumber - 7 + 7 @@ -218,10 +218,10 @@ pinNumber - 3 + 3 - + Comparator @@ -294,7 +294,7 @@ pinNumber - 14 + 14 @@ -308,7 +308,7 @@ pinNumber - 13 + 13 @@ -322,7 +322,7 @@ pinNumber - 12 + 12 @@ -336,7 +336,7 @@ pinNumber - 11 + 11 @@ -353,7 +353,7 @@ 4 - + In @@ -364,10 +364,10 @@ pinNumber - 4 + 4 - + In @@ -378,10 +378,10 @@ pinNumber - 5 + 5 - + In @@ -392,10 +392,10 @@ pinNumber - 6 + 6 - + PowerSupply @@ -411,7 +411,7 @@ pinNumber - 16 + 16 InDefault @@ -429,17 +429,54 @@ pinNumber - 8 + 8 + + Testcase + + + Testdata + + CLK ~CLR ~LD ENT ENP D C B A QD QC QB QA + +# load +loop(i,4) +loop(n,16) +C 1 0 bits(2,i) bits(4,n) bits(4,n) +end loop +end loop + +# reset +loop(i,8) +loop(n,16) +C 1 0 0 0 bits(4,n) bits(4,n) +C 0 bits(3,i) bits(4,n) bits(4,0) +end loop +end loop + +# count +loop(n,16) +C 1 1 1 1 bits(4,0) bits(4,(n+1)%10) +end loop + +# hold +loop(n,16) +C 1 0 0 0 bits(4,n) bits(4,n) +C 1 1 0 0 bits(4,n) bits(4,n) +C 1 1 1 0 bits(4,n) bits(4,n) +C 1 1 0 1 bits(4,n) bits(4,n) +end loop + + + + + + - - - - @@ -453,9 +490,17 @@ - + + + + + + + + + @@ -466,16 +511,8 @@ - - - - - - - - @@ -505,9 +542,17 @@ - + + + + + + + + + @@ -516,10 +561,6 @@ - - - - @@ -538,7 +579,7 @@ - + @@ -546,12 +587,16 @@ - + + + + + @@ -568,10 +613,6 @@ - - - - @@ -592,10 +633,6 @@ - - - - @@ -606,7 +643,11 @@ - + + + + + @@ -616,18 +657,10 @@ - - - - - - - - @@ -638,12 +671,16 @@ - + + + + + @@ -653,7 +690,7 @@ - + diff --git a/src/main/dig/lib/74xx/counter/74162Real.dig b/src/main/dig/lib/74xx/counter/74162Real.dig index d921689e6..d8b5799af 100644 --- a/src/main/dig/lib/74xx/counter/74162Real.dig +++ b/src/main/dig/lib/74xx/counter/74162Real.dig @@ -48,7 +48,7 @@ counter, synchronous reset pinNumber - 14 + 14 @@ -105,7 +105,7 @@ counter, synchronous reset pinNumber - 13 + 13 @@ -162,7 +162,7 @@ counter, synchronous reset pinNumber - 12 + 12 @@ -219,7 +219,7 @@ counter, synchronous reset pinNumber - 11 + 11 @@ -282,7 +282,7 @@ counter, synchronous reset pinNumber - 1 + 1 Default @@ -304,7 +304,7 @@ counter, synchronous reset pinNumber - 9 + 9 Default @@ -330,7 +330,7 @@ counter, synchronous reset pinNumber - 3 + 3 @@ -352,7 +352,7 @@ counter, synchronous reset pinNumber - 4 + 4 @@ -374,7 +374,7 @@ counter, synchronous reset pinNumber - 5 + 5 @@ -396,7 +396,7 @@ counter, synchronous reset pinNumber - 6 + 6 @@ -432,7 +432,7 @@ counter, synchronous reset pinNumber - 15 + 15 @@ -450,7 +450,7 @@ counter, synchronous reset pinNumber - 10 + 10 Default @@ -477,7 +477,7 @@ counter, synchronous reset pinNumber - 7 + 7 Default @@ -631,7 +631,7 @@ counter, synchronous reset pinNumber - 2 + 2 Frequency @@ -654,7 +654,7 @@ counter, synchronous reset pinNumber - 16 + 16 InDefault @@ -672,11 +672,52 @@ counter, synchronous reset pinNumber - 8 + 8 + + Testcase + + + Testdata + + CP ~MR ~PE CET CEP D_3 D_2 D_1 D_0 Q_3 Q_2 Q_1 Q_0 + +# load +loop(i,4) +loop(n,16) +C 1 0 bits(2,i) bits(4,n) bits(4,n) +end loop +end loop + +# reset +loop(i,8) +loop(n,16) +C 1 0 0 0 bits(4,n) bits(4,n) +C 0 bits(3,i) bits(4,n) bits(4,0) +end loop +end loop + +# count +loop(n,16) +C 1 1 1 1 bits(4,0) bits(4,(n+1)%10) +end loop + +# hold +loop(n,16) +C 1 0 0 0 bits(4,n) bits(4,n) +C 1 1 0 0 bits(4,n) bits(4,n) +C 1 1 1 0 bits(4,n) bits(4,n) +C 1 1 0 1 bits(4,n) bits(4,n) +end loop + + + + + + diff --git a/src/test/java/de/neemann/digital/integration/TestExamples.java b/src/test/java/de/neemann/digital/integration/TestExamples.java index aa89cb755..45b05ca45 100644 --- a/src/test/java/de/neemann/digital/integration/TestExamples.java +++ b/src/test/java/de/neemann/digital/integration/TestExamples.java @@ -30,7 +30,7 @@ public class TestExamples extends TestCase { public void testDistExamples() throws Exception { File examples = new File(Resources.getRoot().getParentFile().getParentFile(), "/main/dig"); assertEquals(201, new FileScanner(this::check).scan(examples)); - assertEquals(105, testCasesInFiles); + assertEquals(107, testCasesInFiles); } /**