Учебник Verilog
На заре интегральных схем инженерам приходилось садиться и физически рисовать транзисторы и их соединения на бумаге, чтобы спроектировать их так, чтобы их можно было изготовить на кремнии. Большие и сложные схемы требовали большего количества инженеров, времени и других ресурсов, и вскоре возникла необходимость в более эффективном способе проектирования интегральных схем.
VHDL вскоре был разработан для улучшения процесса проектирования, позволяя инженерам описывать функциональность желаемого оборудования и позволяя инструментам автоматизации преобразовывать это поведение в реальные аппаратные элементы, такие как комбинационные вентили и последовательная логика. Верилог был разработан, чтобы упростить процесс и сделать язык описания оборудования (HDL) более надежный и гибкий. Сегодня Verilog является наиболее популярным HDL, используемым и практикуемым в полупроводниковой промышленности.
Чем полезен Verilog?
Verilog создает уровень абстракции, который помогает скрыть детали его реализации и технологии.
Например, для проектирования D-триггера потребуется знание того, как должны быть расположены транзисторы, чтобы получить FF, запускаемый положительным фронтом, и какое время нарастания, спада и clk-Q требуется для фиксации значения на флопе. среди многих других технологических деталей. Рассеиваемая мощность, синхронизация и способность управлять сетями и другими флопами также потребуют более глубокого понимания физических характеристик транзистора.
Verilog помогает нам сосредоточиться на поведении, а остальное оставить на потом.
Пример
Следующий код иллюстрирует, как выглядит код Verilog. Мы углубимся в детали кода в следующей статье. А пока давайте просто поймем, что поведение счетчика описан. Код, по сути, заставляет счетчик считать вверх, если сигнал up_down равен 1, и вниз, если его значение равно 0. Он также сбрасывает счетчик, если сигнал rstn становится 0, что делает этот сброс активным-низким.
module ctr (input up_down,
clk,
rstn,
output reg [2:0] out);
always @ (posedge clk)
if (!rstn)
out <= 0;
else begin
if (up_down)
out <= out + 1;
else
out <= out - 1;
end
endmodule
Простой пример, показанный выше, показывает, как все детали физической реализации были скрыты, но при этом дает четкое представление о том, как работает счетчик.
ctr - это module
который представляет собой счетчик вверх/вниз, и можно выбрать реальную физическую реализацию проекта из множества различных стилей флопов, оптимизированных по площади, мощности и производительности. Обычно они компилируются в библиотеки и будут доступны для выбора в инструментах EDA на более позднем этапе процесса проектирования.
Теперь, когда вы знаете, что такое Verilog, давайте начнем изучать Verilog!
Verilog