- Set<ModelComponentToVerilogComponentDeclarationMapping> atomicComponentMappings = Stream.of(//
- new ModelNandGate(model, 1), //
- new ModelFixedOutput(model, BitVector.SINGLE_0, null), //
- new ModelFixedOutput(model, BitVector.SINGLE_1, null), //
- new ModelTriStateBuffer(model, new ModelTriStateBufferParams(1, Orientation.RIGHT)), //
- new ModelTriStateBuffer(model, new ModelTriStateBufferParams(1, Orientation.RIGHT_ALT)), //
- new ModelTriStateBuffer(model, new ModelTriStateBufferParams(1, Orientation.DOWN)), //
- new ModelTriStateBuffer(model, new ModelTriStateBufferParams(4, Orientation.RIGHT)), //
- new ModelTriStateBuffer(model, new ModelTriStateBufferParams(12, Orientation.RIGHT_ALT)), //
- new ModelTriStateBuffer(model, new ModelTriStateBufferParams(12, Orientation.DOWN)), //
- new ModelTriStateBuffer(model, new ModelTriStateBufferParams(16, Orientation.LEFT)), //
- new ModelTriStateBuffer(model, new ModelTriStateBufferParams(16, Orientation.RIGHT_ALT)), //
- new ModelWireCrossPoint(model, 1), //
- new ModelWireCrossPoint(model, 2), //
- new ModelWireCrossPoint(model, 4), //
- new ModelWireCrossPoint(model, 9), //
- new ModelWireCrossPoint(model, 12), //
- new ModelWireCrossPoint(model, 16), //
- new ModelSplitter(model, new SplitterParams(2, Orientation.LEFT)), //
- new ModelSplitter(model, new SplitterParams(2, Orientation.RIGHT)), //
- new ModelSplitter(model, new SplitterParams(2, Orientation.UP)), //
- new ModelSplitter(model, new SplitterParams(2, Orientation.DOWN_ALT)), //
- new ModelSplitter(model, new SplitterParams(3, Orientation.LEFT)), //
- new ModelSplitter(model, new SplitterParams(3, Orientation.RIGHT)), //
- new ModelSplitter(model, new SplitterParams(3, Orientation.UP)), //
- new ModelSplitter(model, new SplitterParams(3, Orientation.DOWN)), //
- new ModelSplitter(model, new SplitterParams(3, Orientation.DOWN_ALT)), //
- new ModelSplitter(model, new SplitterParams(4, Orientation.LEFT)), //
- new ModelSplitter(model, new SplitterParams(4, Orientation.RIGHT)), //
- new ModelSplitter(model, new SplitterParams(4, Orientation.UP)), //
- new ModelSplitter(model, new SplitterParams(4, Orientation.DOWN)), //
- new ModelSplitter(model, new SplitterParams(4, Orientation.DOWN_ALT)), //
- new ModelSplitter(model, new SplitterParams(5, Orientation.LEFT)), //
- new ModelSplitter(model, new SplitterParams(5, Orientation.RIGHT)), //
- new ModelSplitter(model, new SplitterParams(6, Orientation.LEFT)), //
- new ModelSplitter(model, new SplitterParams(6, Orientation.RIGHT)), //
- new ModelSplitter(model, new SplitterParams(6, Orientation.DOWN)), //
- new ModelSplitter(model, new SplitterParams(6, Orientation.UP)), //
- new ModelSplitter(model, new SplitterParams(6, Orientation.DOWN_ALT)), //
- new ModelSplitter(model, new SplitterParams(8, Orientation.LEFT)), //
- new ModelSplitter(model, new SplitterParams(8, Orientation.RIGHT)), //
- new ModelSplitter(model, new SplitterParams(9, Orientation.LEFT)), //
- new ModelSplitter(model, new SplitterParams(9, Orientation.DOWN)), //
- new ModelSplitter(model, new SplitterParams(12, Orientation.LEFT)), //
- new ModelSplitter(model, new SplitterParams(12, Orientation.RIGHT)), //
- new ModelSplitter(model, new SplitterParams(12, Orientation.DOWN)), //
- new ModelSplitter(model, new SplitterParams(12, Orientation.DOWN_ALT)), //
- new ModelSplitter(model, new SplitterParams(13, Orientation.RIGHT)), //
- new ModelSplitter(model, new SplitterParams(13, Orientation.DOWN)), //
- new ModelSplitter(model, new SplitterParams(16, Orientation.LEFT)), //
- new ModelSplitter(model, new SplitterParams(16, Orientation.RIGHT)), //
- new ModelSplitter(model, new SplitterParams(16, Orientation.UP)), //
- new ModelSplitter(model, new SplitterParams(16, Orientation.DOWN)), //
- new ModelSplitter(model, new SplitterParams(16, Orientation.DOWN_ALT)), //
- new ModelSplitter(model, new SplitterParams(80, Orientation.LEFT)), //
- new ModelSplitter(model, new SplitterParams(80, Orientation.RIGHT)), //
- new ModelSplitter(model, new SplitterParams(80, Orientation.UP_ALT)), //
- new ModelClock(model, new ModelClockParams(7000, Orientation.RIGHT)), //
- new ModelTextComponent(model, "A bus"), //
- new ModelTextComponent(model, "MPM addr"), //
- new ModelTextComponent(model, "D bus"), //
- new ModelAm2900MainMemory(model, null), //
- new ModelAm2900MPROM(model, null), //
- new ModelAm2900MicroInstructionMemory(model, null), //
- new ModelBitDisplay(model, 12), //
- new ModelBitDisplay(model, 16)//
- ).map(c ->
- {
- String id = c.getIDForSerializing(new IdentifyParams());
- JsonElement params = c.getParamsForSerializingJSON(new IdentifyParams());
- ModelComponentToVerilogComponentDeclarationMapping generateCanonicalDeclarationMapping = ModelComponentToVerilogConverter
- .generateCanonicalDeclarationMapping(c, id, params, ModelComponentToVerilogConverter
- .sanitizeVerilogID("mgs_" + id + (params.isJsonNull() ? "" : "_" + params)));
- return generateCanonicalDeclarationMapping;
- }).collect(Collectors.toSet());