Весь поведенческий код пишется внутри module и endmodule. Любой цифровой дизайн, который вы хотите создать, пойдёт внутрь блока module. Порты могут быть определены или нет — позволяют сигналам входить как input или выходить как output. Модуль Пустой модуль в примере называется testbench. Имя может б
Набор Verilog-операторов обычно выполняется последовательно в симуляции. Эти операторы помещаются в процедурный блок. В Verilog два основных типа процедурных блоков — initial и always. Синтаксис initial [single statement] initial begin [multiple statements] end Для чего нужен initial блок? initial
Предыдущая статья показывала примеры комбинационной логики с always. always блок также широко используется для последовательной логики с элементами памяти (триггеры), способными удерживать значения. JK-триггер JK-триггер — один из типов триггеров для хранения значений с двумя входами данных j и k, с
Блок always в Verilog можно использовать и для последовательной, и для комбинационной логики. В предыдущей статье показаны примеры с assign. Те же дизайны рассмотрим с always. Пример #1: Простая комбинационная логика Код ниже реализует простую цифровую комбинационную логику с выходным сигналом z тип
always блок — один из процедурных блоков в Verilog. Операторы внутри always выполняются последовательно. Синтаксис always @ (event) [statement] always @ (event) begin [multiple statements] end always блок выполняется при определённом событии. Событие задаётся списком чувствительности. Что такое спи
Многобитные провода и переменные Verilog можно объединять в более крупные многобитные сети или переменные с помощью операторов конкатенации { и }, разделённых запятыми. Конкатенация допускает выражения и размерные константы как операнды дополнительно к проводам и переменным. Размер каждого операнда
Данные, которые нельзя обработать, бесполезны — в цифровых схемах и компьютерных системах всегда нужны вычисления. Разберём операторы Verilog, позволяющие инструментам синтеза реализовывать соответствующие аппаратные элементы. Арифметические операторы Если второй операнд деления или модуля равен нул
Оператор assign в Verilog обычно используется для непрерывного управления сигналом типа wire и синтезируется в комбинационную логику. Вот ещё примеры дизайнов с assign. Пример #1: Простая комбинационная логика Код ниже реализует простую цифровую комбинационную логику с выходным проводом z, непрерывн
Сигналы типа wire или подобные wire-типы требуют непрерывного присваивания значения. Например, электрический провод на макетной плате: пока к одному концу подключён аккумулятор +5В, компонент на другом конце получает нужное напряжение. В Verilog эта концепция реализуется оператором assign, где любой
Как мы видели ранее, большие и сложные дизайны строятся интеграцией множества модулей иерархическим образом. Модули могут инстанцироваться внутри других модулей, а порты этих инстансов соединяются с другими сигналами внутри родительского модуля. Эти соединения портов можно делать через упорядоченный
Порты — набор сигналов, выступающих входами и выходами модуля, и основной способ взаимодействия с ним. Представьте модуль как чип на печатной плате: очевидно, что общение с ним возможно только через его ножки. Порты — это и ножки, через которые дизайн посылает и принимает сигналы извне. Типы портов
module — блок Verilog-кода, реализующий определённую функциональность. Модули могут вкладываться друг в друга, а высокоуровневый модуль общается с низкоуровневыми через их входные и выходные порты. Синтаксис Модуль должен быть заключён между ключевыми словами module и endmodule. Имя модуля указывает
Объявление массива сети или переменной может быть скалярным или векторным. Любое число измерений создаётся указанием адресного диапазона после имени идентификатора — это многомерный массив. Массивы разрешены для типов reg, wire, integer, real. reg y1 [11:0]; // скалярный reg-массив глубины
Verilog должен представлять отдельные биты и группы бит. Например, однобитный последовательный элемент — триггер. А 16-битный — регистр, хранящий 16 бит. Для этого Verilog имеет скалярные и векторные сети и переменные. Скаляр и вектор Объявление net или reg без диапазона считается 1-битным — скаляр.
Основная цель типов данных в Verilog — представить элементы хранения данных (биты в триггерах) и элементы передачи (провода, соединяющие гейты и последовательные структуры). Какие значения могут хранить переменные? Почти все типы данных могут принимать только одно из четырёх значений (кроме real и e
Лексические соглашения в Verilog похожи на C: поток токенов. Лексический токен может состоять из одного или нескольких символов и быть комментарием, ключевым словом, числом, строкой или пробелом. Все строки должны заканчиваться точкой с запятой ;. Verilog чувствителен к регистру, поэтому var_a и var
Прежде чем углубиться в детали языка Verilog, полезно понять разные уровни абстракции в проектировании чипов. Верхний уровень — системная архитектура, определяющая подблоки и группирующая их по функциональности. Например, кластер процессоров включает несколько ядер, блоки кэша и логику когерентности
Типичный цикл проектирования имеет структуру, показанную ниже, и разбивается на множество этапов. Некоторые фазы идут параллельно, другие — последовательно. Разберём, как выглядит типичный проектный цикл в индустрии сегодня. Требования Заказчик полупроводниковой компании — обычно другая фирма, плани
В ранние дни интегральных схем инженерам приходилось вручную рисовать транзисторы и их соединения на бумаге для проектирования чипов. С ростом сложности требовалось больше инженеров, времени и ресурсов, и возникла необходимость в лучшем способе проектирования. Был разработан VHDL для описания функци
Verilog — это язык описания аппаратуры (HDL), который позволяет инженерам моделировать, симулировать и синтезировать цифровую логику для ПЛИС и ASIC. Наряду со своим близким родственником VHDL, Verilog является индустриальным стандартом как для академических программ, так и для коммерческой разработ
Verilog
Освоение ISO 9001: критическая роль документации в управлении качеством
V2™ грохоты с переменным углом: точное управление удержанием отливок
Освоение цикла G81 сверления с инкрементным режимом G91: практический пример повторного сверления
Полное руководство по G/M-кодам GE Series Fanuc 21 MB для EMCO WinNC