/*******************************************************************************
* This file is part of logisim-evolution.
*
* logisim-evolution is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* logisim-evolution is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with logisim-evolution. If not, see <http://www.gnu.org/licenses/>.
*
* Original code by Carl Burch (http://www.cburch.com), 2011.
* Subsequent modifications by :
* + Haute École Spécialisée Bernoise
* http://www.bfh.ch
* + Haute École du paysage, d'ingénierie et d'architecture de Genève
* http://hepia.hesge.ch/
* + Haute École d'Ingénierie et de Gestion du Canton de Vaud
* http://www.heig-vd.ch/
* The project is currently maintained by :
* + REDS Institute - HEIG-VD
* Yverdon-les-Bains, Switzerland
* http://reds.heig-vd.ch
*******************************************************************************/
package com.cburch.logisim.std.tcl;
import java.util.ArrayList;
import java.util.List;
import com.cburch.logisim.instance.Port;
/**
* This is a static TCL component. It onlyy defines the interface as all other
* things are defined by the parent class.
*
* You can use this as an example to create other static TCL components.
*
* You may notice that this class is dynamically loaded. You have to define it
* int Tcl.java library. If you change the name, older circuits will not be able
* to load the rightful component, so please don't. But if you need to change
* the display name, you can do this in the resource files (std.properties).
*/
public class TclConsoleReds extends TclComponent {
public TclConsoleReds() {
super("TclConsoleReds", Strings.getter("tclConsoleReds"));
List<PortDescription> inputsDesc = new ArrayList<PortDescription>();
List<PortDescription> outputsDesc = new ArrayList<PortDescription>();
outputsDesc.add(new PortDescription("S0_sti", "output", 1));
outputsDesc.add(new PortDescription("S1_sti", "output", 1));
outputsDesc.add(new PortDescription("S2_sti", "output", 1));
outputsDesc.add(new PortDescription("S3_sti", "output", 1));
outputsDesc.add(new PortDescription("S4_sti", "output", 1));
outputsDesc.add(new PortDescription("S5_sti", "output", 1));
outputsDesc.add(new PortDescription("S6_sti", "output", 1));
outputsDesc.add(new PortDescription("S7_sti", "output", 1));
outputsDesc.add(new PortDescription("S8_sti", "output", 1));
outputsDesc.add(new PortDescription("S9_sti", "output", 1));
outputsDesc.add(new PortDescription("S10_sti", "output", 1));
outputsDesc.add(new PortDescription("S11_sti", "output", 1));
outputsDesc.add(new PortDescription("S12_sti", "output", 1));
outputsDesc.add(new PortDescription("S13_sti", "output", 1));
outputsDesc.add(new PortDescription("S14_sti", "output", 1));
outputsDesc.add(new PortDescription("S15_sti", "output", 1));
outputsDesc.add(new PortDescription("Val_A_sti", "output", 16));
outputsDesc.add(new PortDescription("Val_B_sti", "output", 16));
outputsDesc.add(new PortDescription("rst", "output", 1));
inputsDesc.add(new PortDescription("Hex0_obs", "input", 4));
inputsDesc.add(new PortDescription("Hex1_obs", "input", 4));
inputsDesc.add(new PortDescription("L0_obs", "input", 1));
inputsDesc.add(new PortDescription("L1_obs", "input", 1));
inputsDesc.add(new PortDescription("L2_obs", "input", 1));
inputsDesc.add(new PortDescription("L3_obs", "input", 1));
inputsDesc.add(new PortDescription("L4_obs", "input", 1));
inputsDesc.add(new PortDescription("L5_obs", "input", 1));
inputsDesc.add(new PortDescription("L6_obs", "input", 1));
inputsDesc.add(new PortDescription("L7_obs", "input", 1));
inputsDesc.add(new PortDescription("L8_obs", "input", 1));
inputsDesc.add(new PortDescription("L9_obs", "input", 1));
inputsDesc.add(new PortDescription("L10_obs", "input", 1));
inputsDesc.add(new PortDescription("L11_obs", "input", 1));
inputsDesc.add(new PortDescription("L12_obs", "input", 1));
inputsDesc.add(new PortDescription("L13_obs", "input", 1));
inputsDesc.add(new PortDescription("L14_obs", "input", 1));
inputsDesc.add(new PortDescription("L15_obs", "input", 1));
inputsDesc.add(new PortDescription("Result_A_obs", "input", 16));
inputsDesc.add(new PortDescription("Result_B_obs", "input", 16));
inputsDesc.add(new PortDescription("seg7_obs", "input", 8));
inputsDesc.add(new PortDescription("sysclk_i", "input", 1));
Port[] inputs = new Port[inputsDesc.size()];
Port[] outputs = new Port[outputsDesc.size()];
for (int i = 0; i < inputsDesc.size(); i++) {
PortDescription desc = inputsDesc.get(i);
inputs[i] = new Port(0, (i * PORT_GAP) + HEIGHT, desc.getType(),
desc.getWidth());
inputs[i].setToolTip(Strings.getter(desc.getName()));
}
for (int i = 0; i < outputsDesc.size(); i++) {
PortDescription desc = outputsDesc.get(i);
outputs[i] = new Port(WIDTH, (i * PORT_GAP) + HEIGHT,
desc.getType(), desc.getWidth());
outputs[i].setToolTip(Strings.getter(desc.getName()));
}
setPorts(inputs, outputs);
}
@Override
public String getDisplayName() {
return Strings.get("tclConsoleReds");
}
}