Кажется, здесь есть фундаментальное недоразумение в разнице между языком описания аппаратных средств, используемым для имитации проекта, и использованием того же описания для реализации проекта в реальном аппаратном обеспечении. Это все равно, что нарисовать картинку с вертушкой, надуть ее и ожидать, что вертушка начнет вращаться.
Вы, безусловно, можете построить трехмерную модель этого вертушки, смоделировать силу ветра на этой модели и наблюдать за ее поворотом, а затем отправить эту модель на трехмерный принтер, чтобы получить вертушку. Я полагаю, вы могли бы поставить датчики ветра перед вашим монитором и написать программу, которая преобразует значение из датчика в значение, используемое в симуляции. Дело в том, что симулятор не знает, что значение получено от кого-то, кто дует на монитор, он просто видит изменение значения параметра.
Если вы сами не разрабатываете аппаратное обеспечение клавиатуры и не имитируете его, на самом деле нет смысла брать ввод с клавиатуры с компьютера и использовать его для стимулирования вашего дизайна в симуляции. Операционная система уже абстрагировалась от аппаратного обеспечения клавиатуры и предоставляет вам строку кодов символов. Причина, по которой вы моделируете в первую очередь, заключается в проверке функциональности вашего дизайна. Если вы обнаружите проблему, вы захотите воспроизвести точно такой же стимул, пока не решите свою проблему.
Так же, как пример с вертушкой, я знаю, что кто-то может настроить программу, которая считывает ввод с клавиатуры и обеспечивает это в качестве стимула для симуляции. Но для этого требуется межпроцессное взаимодействие (IPC) и знание специальных инструментов.