2014-10-21 3 views
1

Я пишу программу в Verilog и имею некоторые переменные, которые я хотел бы видеть значениями, поскольку программа работает на моей плате Cyclone II, но я не могу выяснить, где находится консоль (если есть ...). Есть какой-либо способ сделать это? Я читал о функции $ display, но не могу понять, где будет выход в Quartus II. К сожалению, я не могу найти очень много информации об этом. Спасибо за любую помощь!Как отлаживать плату FPGA Cyclone II в Quartus II

ответ

3

Verilog имеет два основных применение:

  • Это HDL (язык описания аппаратных средств), который используется для описания синтезируемых логики. Это та часть, которую вы используете для создания FPGA или ASIC.
  • Это язык сценариев, используемый для тестирования и проверки аппаратных конструкций посредством моделирования.

По какой-то причине большинство онлайн-руководств, которые вы найдете, не подчеркивают этого различия. Они часто начинаются с части 2 (которая включает в себя такие вещи, как $display), потому что новички пробуют вещи в симуляторе. Конструкции, используемые для сценариев, просто не имеют эффекта, когда код проходит через синтез, который будет использоваться в FPGA. Существует небольшое перекрытие, но даже это не работает, как вы могли бы ожидать. Если вы пишете цикл for в симуляторе, он будет зацикливаться, как и любой другой язык программирования. Если вы поместите синтезируемый код внутри этого цикла, он будет реплицирован на цикл (создавая целую кучу параллельных путей FPGA, по одному на каждый проход через цикл). Таким образом, части сценариев, которые фактически влияют на синтез, можно рассматривать скорее как метапрограммирование.

Вы можете реализовать (или найти существующую реализацию, называемую «IP» на земле HDL) UART и распечатать данные самостоятельно, но это очень сложная и дорогостоящая (с точки зрения области FPGA) работа в FPGA. Обычно для отладки FPGA вы выводите отладочные выводы и смотрите на них с помощью осциллографа или логического анализатора (даже недорогой, такой как логика Saleae). Это чрезвычайно дешево с точки зрения ресурсов ПЛИС. Другая возможность - зарегистрировать отладочные данные внутри FPGA в блочной ОЗУ и прочитать его позже. Оба Altera (с SignalTap) и Xilinx (с Chipscope) обеспечивают как код FPGA, так и графический интерфейс, чтобы управлять им через порт JTAG. Quartus II должен предоставить вам бесплатную лицензию для SignalTap, если вы согласились поделиться с ними анонимной статистикой. Последнее, что я знал, Chipscope не было бесплатным, и поэтому мои проекты по хобби всегда используют Altera FPGA.