Глава 1. зачем нужны языки описания аппаратуры

      Комментарии к записи Глава 1. зачем нужны языки описания аппаратуры отключены

ПРОЕКТИРОВАНИЕ ЦИФРОВЫХ СХЕМ

НА ЯЗЫКЕ ОПИСАНИЯ АППАРАТУРЫ VERILOG

Cтернхейм Э., Сингх Р., Триведи Я.

——————————

/ с примечаниями Шевцова С. /

Источник: Digital Design with Verilog HDL,

Eliezer Sternheim, Rajvir Singh, Yatin Trivedi,

Design Automation Series, 1990.

Перевели: Грушин А.И., Власенко Э.С.

ВЕРСИЯ 6 (08.06.92)

МОСКВА — 1992

СОДЕРЖАНИЕ

Предисловие — 3

Введение — 3

Организация книги — 3

Глава 1. ЗАЧЕМ НУЖНЫ ЯЗЫКИ ОПИСАНИЯ АППАРАТУРЫ — 4

Тенденции развития методов проектирования — 4

Проектирование на ЯОА — 4

Проектирование на языке Verilog — 5

Глава 2. ОСНОВЫ ЯЗЫКА ОПИСАНИЯ АППАРАТУРЫ VERILOG — 5

Понятие модуля — 5

Основные типы данных — 7

Основные операции и выражения — 8

Процедурные операторы — 10

Цикл for — 11

Цикл c условием продолжения while — 11

Оператор выбора — 11

Цикл repeat — 12

Цикл forever — 12

Понятие времени и событий — 13

Управление временем и событиями — 14

Понятие параллелизма — 16

Пара fork-join — 16

Оператор блокировки — 16

Функции и задачи — 17

Функциональное описание — 18

Структурное описание — 19

Смешанное представление — 20

Глава 3. МОДЕЛИРОВАНИЕ КОНВЕЙЕРНОГО ПРОЦЕССОРА — 20

Пример SISC-процессора — 20

Модель системы команд — 22

Описания — 22

Основной процесс — 24

Инициализация системы — 25

Функции и задачи — 25

Тестовая программа — 26

Запуск модели — 27

Отладка — 27

Моделирование управления конвейером — 28

Что такое конвейер ? — 28

Функциональное разбиение — 29

Устройство выборки — 30

Исполнительное устройство — 30

Устройство записи результатов — 31

Операции управления фазы 2 — 32

Проблема взаимных блокировок — 33

Генерация тестовых векторов — 35

Резюме — 36

Глава 4. Моделирование системных блоков — х

Глава 5. Моделирование кэш-памяти — х

Глава 6. Моделирование универсального асинхронного интерфейса — х

Глава 7. Моделирование подсистемы флоппи-диска — х

Глава 8. Полезные приемы моделирования и отладки — х

Формальный синтаксис языка Verilog — х

Ключевые слова языка Verilog — х

ПРЕДИСЛОВИЕ

Проектирование больших систем на уровне вентилей изжило себя. Инженеры движутся в направлении использования языков описания аппаратуры. Наиболее известными современными языками описания аппаратуры являются Verilog и VHDL. Эта книга предназначена для разработчика, ее авторами являются разработчики, которые лучше знают, как учить проектированию на языке описания аппаратуры. Verilog создан в 1985 году в фирме Gateway. Он используется более, чем 10000 разработчиками таких фирм, как Sun Microsystems, Apple Computer, Nexgen Microsystems, Motorola, Stardent.

Рей Вайс,

старший редактор по технологии,

газета Electronic Engineering Times

ВВЕДЕНИЕ

Разработки становятся все сложнее, поэтому вентильный уровень описания становится все более непонятным, вызывая необходимость описания проекта в более абстрактном виде. Как в 70-ые годы языки высокого уровня заменили ассемблерные языки, так в 90-ые годы языки описания аппаратуры заменят описание схем, на вентильном уровне. Средства логического синтеза будут выполнять реализацию на вентильном уровне. Включение языка описания аппаратуры и логического синтезатора в технику проектирования будет необходимостью.

В настоящее время существуют два основных языка описания аппаратуры — Verilog и VHDL. Оба они стали стандартами при проектировании цифровых схем. Язык Verilog обеспечивает очень лаконичный и удобочитаемый синтаксис.

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

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

Хотя язык Verilog имеет конструкции для проектирования на более низком уровне, а именно, на вентильном и переключательном уровнях, это не описано в этой книге.

Организация книги

Книга начинается с введения в Verilog и заканчивается примером описания и моделирования большой подсистемы.

В главе 2 основное внимание уделено конструкциям для функционального моделирования языка Verilog. Приведен пример для иллюстрации метода проектирования сверху вниз.

В главе 3 описывается компьютер с малым набором команд (SISC — small instruction set computer) и рассказывается, как моделировать процессор на СБИС на уровне архитектуры и на уровне регистровых передач.

В главе 4 показывается, как моделировать различные блоки SISС и его центральный процессор.

В главе 5 обсуждается кэш-память.

В главе 6 рассматривается моделирование асинхронного интерфейса.

В главе 7 представлен пример полного моделирования большого устройства. Рассматривается подсистема контроллера флоппи-диска.

В главе 8 даются полезные советы по моделированию и отладке.

Глава 1. ЗАЧЕМ НУЖНЫ ЯЗЫКИ ОПИСАНИЯ АППАРАТУРЫ

Тенденции развития методов проектирования

Использование языков описания аппаратуры (ЯОА) в логическом проектировании значительно расширилось за последние несколько лет. Руководители уже не стоят перед дилеммой — проектировать на ЯОА или без них.

Вместо этого их заботит выбор языка и его встраивание в систему проектирования. Разработчики теперь предпочитают выражать свой проект в функциональной или поведенческой форме, откладывая подробности реализации на более поздний этап проектирования. Абстрактное представление помогает разработчикам рассматривать альтернативы в области архитектуры и обнаружить узкие места до начала детальной разработки.

В результате значительных успехов технологии постоянно увеличивается плотность кристалла и сложность разработки. Достигнута плотность более миллиона транзисторов на кристалле и для того, чтобы сделать такие сложные схемы доступными

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

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

Тенденция к более объемным и более сложным проектам будет продолжаться. В 90-ые годы мы достигнем уровня миллиона вентилей. Разработчики обязательно будут проектировать на ЯОА и оставят реализацию средствам логического синтеза.

Проектирование на ЯОА

Использование ЯОА может обеспечить несколько преимуществ. Описание на ЯОА можно использовать как техническое задание на проект. Преимущество использования формального языка, такого как Verilog, для описания заключается в том, что такое описание является полным и недвусмысленным. Описание на формальном языке является мягким по сравнению с жестким описанием схемы. Представление на ЯОА позволяет легко обрабатывать текст на любом текстовом процессоре, а базы данных схем обычно требуют графического редактора.

Второй целью использования ЯОА является моделирование. Моделирование разработки может обнаружить ошибки, которые иначе обнаружились бы только после изготовления аппаратуры. Моделирование может производится на нескольких уровнях. На функциональном уровне система описывается с использованием конструкций высокого уровня. На логическом уровне система описывается иерархически, когда внизу иерархии находятся основные блоки. Этот уровень может включать информацию о временных задержках, давая возможность временного анализа.

Третьей целью использования ЯОА является логический синтез. Существуют средства синтеза, которые могут по описанию разработки на ЯОА сгенерировать реализацию на вентильном уровне из библиотечных элементов. Эти средства оптимизируют проект по задержке, объему схемы или по другой целевой функции. Существующие средства синтеза имеют некоторые ограничения, например, они используют только некоторое подмножество этого языка и синтезированные схемы не могут быть такими же эффективными, как созданные опытным разработчиком. Тем не менее, синтез даже части схемы может сэкономить время и средства, предоставляя возможность разработки упрощенной версии и предварительной оценки быстродействия/площади кристалла.

Наконец, ЯОА — это лучший способ документирования проекта. Хорошо прокомментированное описание на ЯОА может быть лучше и короче, чем схема на вентильном уровне.

Проектирование на языке Verilog

Язык Verilog прост и элегантен. Он имеет конструкции для описания элементов аппаратуры в краткой и удобочитаемой форме. Аналогичное описание на языке VHDL может быть в два раза длиннее.

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

Verilog не только краткий и однородный, его легко изучать. Он очень похож на язык Си. Так как Си — один из наиболее широко используемых языков программирования, то большинству разработчиков следовало бы знать его и им, было бы легче изучать Verilog.

Статьи к прочтению:

Что такое JavaScript?


Похожие статьи: