1 /* 2 * Copyright (c) 2016 Helmut Neemann 3 * Use of this source code is governed by the GPL v3 license 4 * that can be found in the LICENSE file. 5 */ 6 package de.neemann.digital.core.memory; 7 8 import de.neemann.digital.TestExecuter; 9 import de.neemann.digital.core.Model; 10 import de.neemann.digital.core.ObservableValue; 11 import de.neemann.digital.core.element.ElementAttributes; 12 import junit.framework.TestCase; 13 14 import static de.neemann.digital.core.ObservableValues.ovs; 15 16 /** 17 */ 18 public class RegisterTest extends TestCase { 19 testRegister()20 public void testRegister() throws Exception { 21 ObservableValue d = new ObservableValue("s", 8); 22 ObservableValue c = new ObservableValue("c", 1); 23 ObservableValue en = new ObservableValue("en", 1); 24 25 Model model = new Model(); 26 Register out = model.add(new Register(new ElementAttributes().setBits(8))); 27 out.setInputs(ovs(d, c, en)); 28 29 TestExecuter sc = new TestExecuter(model).setInputs(d, c, en).setOutputs(out.getOutputs()); 30 // D C en Q 31 sc.check(0, 0, 0, 0); 32 sc.check(7, 1, 1, 7); 33 sc.check(9, 1, 1, 7); 34 sc.check(9, 1, 0, 7); 35 sc.check(9, 0, 0, 7); 36 sc.check(9, 0, 1, 7); 37 sc.check(9, 1, 1, 9); 38 sc.check(0, 0, 0, 9); 39 sc.check(0, 1, 0, 9); 40 sc.check(0, 1, 1, 9); 41 sc.check(0, 0, 0, 9); 42 sc.check(0, 1, 0, 9); 43 sc.check(0, 0, 1, 9); 44 } 45 46 47 } 48