Приведены основы программирования на языке VHDL и особенности проектирования вычислительных устройств с помощью VHDL, ориентированных на реализацию в программируемых логических интегральных схемах. Рассмотрены методы разработки специализированных конвейерных вычислительных устройств и предложена методика их проектирования, основанная на VHDL. Приведено описание на VHDL проекта RISC-микропроцессора и цикл экспериментальных работ на его основе. Для студентов, аспирантов, преподавателей вузов и специалистов в области электроники, измерительной и вычислительной техники, связи.
Максимальное количество процессов в скомпилированной программе определяется объемом динамической памяти компьютера. Поэтому, чем меньше процессов в скомпилированной программе и сигналов в списках чувствительности — тем быстрее выполняется эта программа в симуляторе. после того, как этот процесс станет активным, он монопольно захватит ресурсы ЦПЭ. Аппаратная модель реализации . В основе технологии разработки микросхем . Здесь под синтезом понимается получение аппаратной модели, которая исполняет исходную УЕГОЬ. Причем подбор структуры модели и её логическая оптимизация по критериям минимума аппаратуры и максимума быстродействия с учетом элементного базиса целевой микросхемы выполняются автоматически. Это означает, что каждому из ВПЭ с его программой ставится в соответствие некоторый специализированный процессорный элемент . В свою очередь, граф линий связи между ВПЭ и граф соединений между СПЭ изоморфны . Так как отображение инъективно, то одна УИБЬ. Различают два типа СПЭ. СПЭ без памяти представляют собой комбинационную схему, состояние выходов которой . Структура специализированного процессорного элемента . Отображение структуры программистской модели в структуру аппаратной модели ВУ Если по семантике оператора процесса предполагается, что не все его переменные и сигналы выполняют присваивания при некотором запуске процесса, то это означает, что такие переменные и сигналы должны хранить свое предыдущее состояние при этом запуске. Поэтому эти процессы отображаются в СПЭ с памятью. СПЭ с памятью имеют в своей структуре комбинационную схему, а также триггеры и регистры для хранения результатов и промежуточных операндов. Состояние выходов СПЭ представляет собой логическую функцию не только от состояния входов, но и от состояния регистров. Регистры могут запоминать операнды как по уровню синхросигнала . В отличие от ВПЭ, задержка от входов СПЭ до его выходов равна величине, определяемой характеристиками элементного базиса, а не дельта. При отображении в аппаратуру вместо оператора каждого типа подставляется соответствующая ему логическая схема. На аппаратную модель реализации . Эти ограничения имеют прообразы в программистской модели. В основном, они образуют множество объектов и операторов языка, которые не могут быть отображены в аппаратуру, так как не имеют в ней соответствующего эквивалента. Например, на сегодняшний день не могут быть автоматически отображены в аппаратуру сигналы и переменные типа с плавающей запятой, динамического, файлового типа, операция деления, операторы . Также в большинстве случаев глобальные переменные не находят своего отображения. Некоторые значения перечисляемого типа, например, стандартного типа . Не могут быть синтезированы такие языковые конструкции, для которых невозможно определить конкретную комбинационную схему или ее разрядность на период компиляции. Например, оператор цикла отображается в многоуровневую комбинационную схему, в которой число уровней равно количеству итераций. И если количество итераций неизвестно на период компиляции, т. не задается статическим выражением, . При составлении программы стилем для синтеза желательно принять во внимание следующее. Эти компиляторы различаются, в частности, списком несинтезируемых элементов языка . Причем с появлением новых версий компиляторов этот список обычно сокращается. Например, не все компиляторы выполняют эффективно минимизацию оборудования путем разделения ресурсов. Поэтому для умелого написания программ для синтеза желательно накопить опыт работы с тем или иным компилятором. Эти значения могут быть присвоены объектам в одном месте и затем использованы в другом месте программы, как операнды в выражениях, функциях и т. Прежде чем остановиться на описании объектов, необходимо рассмотреть комментарии, литералы языка, а затем описать типы, которые бывают у объектов. В приведенных ниже описаниях синтаксиса текст в квадратных скобках означает необязательный элемент, фигурными скобками выделяется текст, который может повторяться . раз, вертикальными линиями разделяются альтернативы. Ключевые слова языка выделены полужирным шрифтом. Комментарии В языке . В книге комментарии выделены курсивом, как и во многих редакторах языка . Литералы В языке литералом задается такой лексический элемент, который остается постоянным в программе и принимает определенное числовое значение после компиляции. Константы, операнды в выражениях, идентификаторы представляются литералами. То, что синтаксис литерала отображает признак типа соответствующего ему объекта, является одной из особенностей . Числовой литерал представляет собой целое или вещественное число. Десятичный литерал это числовой литерал в системе счисления по основанию . Вещественный литерал отличает обязательное наличие точки, отделяющей целую часть от дробной, например, . Базисный литерал это число в системе счисления с заданным базисом от . Он записывается как символ в одиночных кавычках, например, . Идентификатор используется как имя константы, переменной, функции, сигнала, порта, подпрограммы, объекта проекта, а также как метка. Он содержит латинские буквы, с которых начинается, цифры и некоторые символы, например, однократный символ подчеркивания. Идентификаторы с одинаковым названием, но с различными заглавными и строчными буквами считаются одним идентификатором, т. Ключевое слово языка не может быть идентификатором. Идентификатор может состоять из произвольной цепочки символов, в том числе из букв кириллицы. Но эта цепочка должна быть заключена между обратными косыми. Это, так называемый, расширенный идентификатор. К перечисляемым литералам относятся символьный литерал и идентификатор. Из этих литералов формируется множество перечисляемого типа. Строчным литералом является цепочка символов, заключенная в двойные кавычки, например, . Литерал битовой строки может иметь различный вид в зависимости от базиса системы счисления. В числовых литералах и битовых строках допускается вставлять символы подчеркивания для удобства чтения, которые удаляются при компиляции.