Как захватить ввод с клавиатуры во время выполнения в Verilog? - PullRequest
0 голосов
/ 23 апреля 2019

Я пытался найти способ захвата ввода с клавиатуры во время симуляции моего кода Verilog. Это вообще возможно?

Я посмотрел на такие ресурсы, как asic-world и Краткий справочник по Verilog, найденный в Google, но ничего не нашел относительно способа ввода с клавиатуры.

1 Ответ

2 голосов
/ 23 апреля 2019

Кажется, здесь есть фундаментальное недоразумение в разнице между языком описания аппаратных средств, используемым для имитации проекта, и использованием того же описания для реализации проекта в реальном аппаратном обеспечении. Это все равно, что нарисовать картинку с вертушкой, надуть ее и ожидать, что вертушка начнет вращаться.

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

Если вы сами не разрабатываете аппаратное обеспечение клавиатуры и не имитируете его, на самом деле нет смысла брать ввод с клавиатуры с компьютера и использовать его для стимулирования вашего дизайна в симуляции. Операционная система уже абстрагировалась от аппаратного обеспечения клавиатуры и предоставляет вам строку кодов символов. Причина, по которой вы моделируете в первую очередь, заключается в проверке функциональности вашего дизайна. Если вы обнаружите проблему, вы захотите воспроизвести точно такой же стимул, пока не решите свою проблему.

Так же, как пример с вертушкой, я знаю, что кто-то может настроить программу, которая считывает ввод с клавиатуры и обеспечивает это в качестве стимула для симуляции. Но для этого требуется межпроцессное взаимодействие (IPC) и знание специальных инструментов.

...