Корзина

0 Товары - 0.00 RUB
В корзину

Курсы Валют

Курсы Валют  Дата ЦБ
Нал.USD
15.08 66.75
Нал.EUR
15.08 76.23
Нал.CNY
15.08 96.99

Оплата

visa

Реклама

Статьи

Verilog

Этапы разработки. Введение.

Введение

Впервые знакомясь с Verilog, возможно вы захотите попробовать некоторые примеры и попытаться сконструировать что-то новенькое. Я привел последовательность инструментов, которую можно для этого использовать. Я лично ее опробовал и убедился, что для меня она работает достаточно хорошо. Здесь я взял только часть разработки входных каскадов и биты конструкции ПЛИС последовательности инструментов, что можно сделать, не тратя значительных средств на инструменты.

 

Различные стадии разработки специализированных микросхем и ПЛИС

  • Техзадание : Текстовый процессор типа Word, Kwriter, AbiWord, Open Office.
  • Проектирование архитектуры : Текстовый процессор типа Word, Kwriter, AbiWord, для вывода временной зависимости используйте такие инструменты, как waveformer, либо testbencher или Word, Open Office.
  • Микропроектирование / Проектирование на низком уровне: Текстовый процессор типа Word, Kwriter, AbiWord, для вывода временной зависимости используйте такие инструменты, как waveformer, либо testbencher или Word.
  • Кодирование УМП : Vim, Emacs, conTEXT, HDL TurboWriter
  • Моделирование : Modelsim, VCS, Verilog-XL, Veriwell, Finsim, Icarus.
  • Синтез : Design Compiler, FPGA Compiler, Synplify, Leonardo Spectrum. Вы можете бесплатно скачать их у поставщиков ПЛИС, например, Altera и Xilinx.
  • Размещение и трассировка : Для ПЛИС используйте инструмент размещения и трассировки от поставщиков ПЛИС. Инструменты СИС требуют дорогих инструментов размещения и трассировки, таких как Apollo. Студенты могут использовать LASI, Magic.
  • Проверка опытных образцов : Для СИС и ПЛИС чипы необходимо испытать в реальной среде. Конструкция платы, драйверы устройств должны быть на своих местах.

Типичный ход разработки

design_flow.gif

 

Specification

Техзадание

High level design

Проектирование архитектуры

Low level design

Проектирование низкого уровня

RTL coding

Кодирование УМП

Functional verification

Функциональная проверка

Logic synthesis

Логический синтез

Gate level simulation

Моделирование на уровне логических элементов

Place and route

Размещение и трассировка

Fabrication

Производство

Post Si validation

Проверка опытных образцов

Рисунок : Типовая схема проектирования 

Техзадание

На этой стадии мы определяет важные параметры системы/конструкции, которую вы планируете спроектировать. Вот простой пример: Я хочу сконструировать счетчик; он должен быть 4 бита длиной, должен иметь синхронный сброс и разрешающий сигнал с активным высоким уровнем; при активном сбросе выход счетчика должен быть равен "0".

Проектирование архитектуры

На этой стадии вы определяете различные блоки конструкции и способы их связи. Допустим, нам нужно спроектировать микропроцессор: проектирование высокого уровня означает разбиение конструкции на блоки на основе их функций; в нашем случае, блоками являются регистры, АЛУ, декодер команд, интерфейс памяти и т.д.

 high_level.gif

Static RAM

Статическая оперативная память

Port A

Порт А

Port B

Порт В

Port C

Порт С

Timer

Таймер

Рисунок : Высокоуровневая блок-схема I8155

Микропроектирование / Проектирование на низком уровне

Проектирование на низком уровне или микропроектирование - это фаза, на которой проектировщик описывает, как реализуется каждый блок. В ней содержатся подробные данные о машинах состояний, счетчиках, мультиплексорах, декодерах, внутренних регистрах. Всегда желательно выводить временные зависимости на различных границах раздела. Эта фаза занимает много времени.

micro_design.gif

Рисунок : Пример проектирования на низком уровне

Кодирование УМП

При кодировании УМП микропроектирование преобразуется в код Verilog/VHDL с использованием синтезируемых конструкций языка. Перед началом проверки или синтеза мы обычно проверяем качество кода.

Verilog Code:
  1. module addbit (
  2. a , // первый вход
  3. b , // второй вход
  4. ci , // вход сигнала переноса
  5. sum , // выход суммы
  6. co // выход сигнала переноса
  7. );
  8. //Декларирование входов
  9. input a;
  10. input b;
  11. input ci;
  12. //Декларирование выходов
  13. output sum;
  14. output co;
  15. //Типы данных портов
  16. wire a;
  17. wire b;
  18. wire ci;
  19. wire sum;
  20. wire co;
  21. //Вот отсюда идет код
  22. assign {co,sum} = a + b + ci;
  23.  
  24. endmodule//Конец модуля добавления бита addbit

Моделирование

Моделирование - это процесс проверки функциональных характеристик моделей на любом уровне абстракции. Для получения аппаратно-реализованных моделей мы используем моделирующие машины. Для того, чтобы проверить, отвечает ли код УМП функциональным требованиям технических характеристик, мы должны определить, построены ли все блоки УМП функционально корректно. Для этого нам необходимо написать набор тестов, который генерирует текущее значение времени, сброс и  требуемые векторы тестовых последовательностей. Ниже приведен пример набора тестов для счетчика. Обычно на проверку конструкции тратится 60-70% времени.

 vcount_tb.gif

Test case

Тестовый случай

Clock gen

Генерация тактового импульса

Reset logic

Логический сброс

Enable logic

Логическое включение

Counter

Счетчик

Monitor/Checker

Монитор/устройство проверки

 Рисунок : Пример среды набора тестов

Мы используем выход моделирующей машины в виде временной зависимости чтобы определить функциональную корректность тестируемого устройства. Большинство моделирующих машин поставляется с визуализаторами временных зависимостей. Когда конструкция становится сложной, мы пишем самопроверяемый набор тестов, который применяет вектор тестовых последовательностей, а затем сравнивает выход тестируемого устройства с ожидаемыми значениями. 

Есть другой вид моделирования, называемый временным моделированием, который выполняется после синтеза или размещения и трассировки. Сюда мы включаем времена задержки на логических элементах и задержки проводов и смотрим, работает ли тестируемое устройство на проектной тактовой частоте. Это также называется моделированием SDF или моделированием на уровне логических элементов.

vcount_sim.gif

Clock

Тактовый импульс

Reset

Сброс

enable

Разрешающий сигнал

Рисунок : Временная зависимость 4-битового суммирующего счетчика

Синтез

Синтез - это процесс, в котором инструменты синтеза, такие как компилятор конструкции или Synplify, берут УМП в формате целевой технологии Verilog или VHDL с наложением условий на ввод и преобразуют УМП в базовые элементы (примитивы) целевой технологии. После преобразования УМП в логические элементы, инструмент синтеза также выполняет минимальный объем временного анализа, чтобы определить, отвечает ли преобразованная конструкция временным требованиям. (Важно заметить, что инструменты синтеза не учитывают проводные задержки, они распознают только задержки на логических элементах). После синтеза есть еще пара вещей, которые обычно выполняют перед передачей списка соединений на постпроцессорный компилятор (размещение и трассировка)

  • Формальная верификация : Проверяет правильность преобразования УМП в логические элементы.
  • Вставка цепи сканирования : Вставляет цепь сканирования в корпус СИС.

 syn_flow.gif

HDL code

Код HDL

Tech lib

Техническая библиотека

Synthesis tool

Инструмент синтеза

Netlist

Таблица соединений

Рисунок : Последовательность синтеза

Размещение и трассировка

Список соединений уровня логических элементов, полученный инструментом синтеза, импортируется в инструмент размещения и трассировки в формате списка соединений Verilog. Все логические элементы и триггеры установлены; трассируется синтезированное дерево таймера и сброс. После этого трассируется каждый блок. На выходе инструмент размещения и трассировки дает файл GDS, который используется литейным цехом для производства СИС. Серверная команда обычно выгружает процессорной команде SPEF (стандартный паразитический коммуникационный формат) / RSPF (сокращенный паразитический коммуникационный формат) / DSPF (подробный паразитический коммуникационный формат) из разметочных инструментов, таких как ASTRO, которая затем команду read_parasitic в инструментах типа Prime Time для выполнения контрольного считывания SDF-формата (формата стандартных задержек) для моделирования на уровне логических элементов.

placement.gif

Up to 26 bonding pads of 125

До 26 контактных площадок из 125

Register file

Файл регистрации

Wiring

Проводка

Wiring channel

Кабельный канал

Shifter

Устройство переключения регистров

ALU

АЛУ

datapath

Информационный канал

Рисунок : Пример размещения микропроцессора

route.gif

Рисунок : Триггер JK-типа

Проверка опытных образцов

После того, как чип возвращается из производства, его необходимо поместить в реальные условия и протестировать перед тем, как выводить его на рынок. Поскольку скорость моделирования (число тактовых импульсов в секунду) при УМП очень низкая, при проверке опытных образцов всегда можно найти ошибку в программе.

Перевод

Вход

Или классический вход:

Время

Ссылки

Карта сайта Визуальная электроника Полезные ссылки сайта Визуальная электроника


Пользуясь настоящим веб-сайтом, вы даете свое согласие на использование файлов cookies.
Подробнее. Ok