Название вопроса ересь, вот пример задачи.
Задача такая. Реализовать (визуализировать) на самом самом самом низком уровне процессора АЛУ. К примеру операцию сложения.
Что есть. Есть 2 переменных, которых нужно сложить, эти переменные, имеют на set-рах события OnChange() при каждом изменении(или не изменении).
Есть функция Sum() которая должна вызываться в OnChange() с задержкой, подождать пока оба операнда не поменяются.
1. И тут главное она должна вызываться только после того как на оба параметра пришло событие OnChange() это могу сделать.
2. И еще главнее, что вообще не знаю как сделать Событие может прийти только с 1 переменной. И не придет в ближайшие НаноСекунды(такт процессора) со второй, тогда с нее взять старое значение(А это противоречит
первому условию, но надо как-то выполнить.
Где-то в коде
Buf_1.SetReg1(true); // установить значение
//....где-то в другом вообще месте, в другой итерации, или где-то в середине очереди, короче выполнится через N - времени
// Buf_1.SetReg2(true); // тут могло и не быть ничего.
Задержка распространения - Propagation delay Задержка распространения - вот это хочу реализовать.
https://ru.qaz.wiki/wiki/Propagation_delay
Задержка распространения вкратце(если кто может решение(алгоритм) без знаний процессора подсказать, это когда 2 сигнала на логическое устройство приходят в разное время(пикоссеунды). И тогда может быть такое, что после того придет 1-ый сигнал, он сложится со вторым(который еще не успел обновиться) откуда пойдут ошибки.