Подключение компонентов в компьютерной симуляции Swift - PullRequest
0 голосов
/ 11 октября 2019

Я пытаюсь сделать 16-битную симуляцию базового компьютера с помощью Swift. Мне удалось настроить сами компоненты, но я испытываю трудности при их подключении. Как мне установить соединения между различными компонентами?

До сих пор я пытался создать провод struct, который имеет единственное значение. Это значение служит выходом и вводом провода. Хотя настройка ввода работает должным образом, я не могу понять, как вывести значение провода для компонента.

Вот пример компонента. Это просто НЕ ворота.

public struct invert {
    private var _x : Bool
    public var x: Bool { //Input
        get {
            return _x
        }
        set {
            _x = x
            update()
        }
    }
    public var out : Bool //Output
    internal mutating func update(){
        out = !x //Updates output when input is changed
    }
    public init(x:Bool){
        self._x = x
        self.out = false
        self.x = x
    }
}

Подробнее о работе компонентов см. этот ответ

А вот мой существующий провод struct. Он имеет ту же базовую структуру, что и вентиль NOT выше, только с небольшими изменениями.

public struct wire {
    private var _value : Bool
    public var value : Bool { //Value of the wire
        get {
            return _value
        }
        set {
            _value = value
            update()
        }
    }
    internal mutating func update(){
        //This is a placeholder for if and when I need it in the future.
    }
    public init(input:Bool){
        _value = input
        value = input
    }
}

Я не знаю, как мне следует подключить это к входу другой цепи. Основным препятствием является обеспечение того, что входное значение другой цепи изменяется при изменении значения провода. Как лучше всего это преодолеть?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...