Часто пишут на Verilog, но не всегда. Дело в том, что для Verilog имеется набор opensource инструментов, типа Yosys, Icarus Verilog, Verilator и других. В зависимости от потребностей проекта, иногда имеет смысл писать на чистом Верилоге.
К примеру, в проекте МЭСМ-6 мы сейчас используем SystemVerilog и Modelsim от Альтеры. Но бродят идеи переписать код на Verilog и задействовать Verilator. Тогда мы сможем сделать быстрый и свободно распространяемый симулятор машины, и включить его в будущий Development Kit.
Главная прелесть в другом: в верификации. Синтезируемая часть кода обычно занимает меньше половины. Больше времени и сил уходит на построение достаточно полной модели законченной системы, и специализированные тесты, чтобы убедится, что дизайн ведёт себя как положено. Весь этот дополнительный код не получится написать на чистом Верилоге: нужен SystemVerilog, как более богатый язык, с классами, динамическим выделением памяти, и т.п. Это на простом уровне.
На следующем уровне сложности понадобятся важные элемента СистемВерилога, которых вообще нет в других языках: constrained random generation, assertions, coverage, UVM. Без этого никакая профессиональная разработка не обходится.
no subject
Date: 2019-05-16 06:01 (UTC)К примеру, в проекте МЭСМ-6 мы сейчас используем SystemVerilog и Modelsim от Альтеры. Но бродят идеи переписать код на Verilog и задействовать Verilator. Тогда мы сможем сделать быстрый и свободно распространяемый симулятор машины, и включить его в будущий Development Kit.
Главная прелесть в другом: в верификации. Синтезируемая часть кода обычно занимает меньше половины. Больше времени и сил уходит на построение достаточно полной модели законченной системы, и специализированные тесты, чтобы убедится, что дизайн ведёт себя как положено. Весь этот дополнительный код не получится написать на чистом Верилоге: нужен SystemVerilog, как более богатый язык, с классами, динамическим выделением памяти, и т.п. Это на простом уровне.
На следующем уровне сложности понадобятся важные элемента СистемВерилога, которых вообще нет в других языках: constrained random generation, assertions, coverage, UVM. Без этого никакая профессиональная разработка не обходится.