void LibraryWindow::addDefaultItems() { BlockModel *model; // cpu model = new CpuModel("CPU", tr("Default CPU")); model->addPin(new PinModel(model, "in1", 0, 32, PinModel::INPUT, 1)); model->addPin(new PinModel(model, "out1", 0, 32, PinModel::OUTPUT, 1)); model->addPin(new PinModel(model, "clk", 0, 32, PinModel::EPISODIC, 1)); model->addPin(new PinModel(model, "reset", 0, 32, PinModel::EPISODIC, 2)); add(model); // core model = new BlockModel("Core",tr("Default core")); model->addPin(new PinModel(model, "in1", 0, 32, PinModel::INPUT, 1)); model->addPin(new PinModel(model, "out1", 0, 32, PinModel::OUTPUT, 1)); add(model); // input model = new BlockModel("Input", tr("Default input block")); model->setType("I/O"); model->setHasEpisodicPins(false); model->setHasInputPins(false); model->setRuntime(1); model->addPin(new PinModel(model, "out1", 0, 32, PinModel::OUTPUT, 1)); model->addPin(new PinModel(model, "out2", 32, 32, PinModel::OUTPUT, 2)); model->addPin(new PinModel(model, "out3", 64, 32, PinModel::OUTPUT, 3)); add(model); // output model = new BlockModel("Output", tr("Default output block")); model->setType("I/O"); model->setHasEpisodicPins(false); model->setHasOutputPins(false); model->setRuntime(1); model->addPin(new PinModel(model, "in1", 0, 32, PinModel::INPUT, 1)); model->addPin(new PinModel(model, "in2", 32, 32, PinModel::INPUT, 2)); model->addPin(new PinModel(model, "in3", 64, 32, PinModel::INPUT, 3)); add(model); // mux MuxModel *muxModel = new MuxModel("Mux", tr("Multiplexer / Demultiplexer")); PinModel *in1 = new PinModel(muxModel, "in1", 0, 32, PinModel::INPUT, 1); PinModel *in2 = new PinModel(muxModel, "in2", 32, 32, PinModel::INPUT, 2); PinModel *out1 = new PinModel(muxModel, "out1", 0, 64, PinModel::OUTPUT, 1); muxModel->addPin(in1); muxModel->addPin(in2); muxModel->addPin(out1); muxModel->addMuxMapping(new MuxMapping(in1, out1, 0, 32, 0, 32)); muxModel->addMuxMapping(new MuxMapping(in2, out1, 0, 32, 32, 64)); add(muxModel); modified_ = false; }