#verilog #register-transfer-level
#verilog #уровень передачи регистра
Вопрос:
Для цифрового компьютера всегда есть режим остановки, который в основном означает отключение системы.
В verilog в коде verilog используется $ finish.
Мне просто интересно, как синтезатор будет синтезировать это.
Ответ №1:
В Verilog команды, начинающиеся со знака $, называются системными функциями (/task). системные функции вызываются только при моделировании для управления событиями, и инструменты синтеза будут их игнорировать. (в зависимости от вашего инструмента синтеза некоторые из них (например, $ readmem) могут быть синтезированы.)
$finish
завершает симуляцию при вызове в simulation.
HDLS предоставляют только описание разработанного аппаратного обеспечения для моделирования или (например, FPGA) синтезируют порпусы. в конце концов, все высокоуровневые коды проекта RTL должны быть переведены (* синтезированы) в схему уровня вентиля. Так что совершенно бессмысленно думать об этом с точки зрения программирования и вызывать функцию, имитирующую поведение оборудования.
Комментарии:
1. означает ли это, что в реальной системе $ finish должен быть реализован с помощью специального дополнительного оборудования (либо последовательности завершения работы программного обеспечения, либо аппаратной логики для отключения процессора)?