Пример #1
0
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;
}