В Verilog команды, начинающиеся со знака $, называются системными функциями (/ task).системные функции вызываются только в симуляции для управления событиями, а инструменты синтеза их игнорируют.(В зависимости от вашего инструмента синтеза некоторые из них (например, $ readmem) могут быть синтезированы.)
$finish
завершает моделирование при вызове в моделировании.
HDL предоставляют только описание разработанногоаппаратное обеспечение для симуляции или (например, ПЛИС) синтезирования порпусов.в конце концов, все высокоуровневые коды проекта RTL должны быть переведены (* синтезированы) в схему уровня затвора.Так что совершенно бессмысленно думать об этом в стиле программирования и вызывать функцию, имитирующую поведение аппаратного обеспечения.