VHDL
В этой статье есть несколько проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалять эти шаблонные сообщения )
|
Парадигма | параллельный , реактивный , поток данных |
---|---|
Впервые появился | 1980-е годы |
Стабильная версия | ИИЭР 1076-2019 / 23 декабря 2019 г |
Дисциплина набора текста | сильный |
Расширения имен файлов | .vhd |
Веб-сайт | IEEE ВАСГ |
Диалекты | |
VHDL-AMS | |
Под влиянием | |
Есть , [1] Паскаль | |
|
VHDL ( язык описания оборудования VHSIC ) — это язык описания аппаратного обеспечения , который может моделировать поведение и структуру цифровых систем на нескольких уровнях абстракции, начиная от уровня системы и заканчивая уровнем логических элементов , для ввода проекта, документирования и проверки. Язык был разработан для военной программы VHSIC США в 1980-х годах и стандартизирован Институтом инженеров по электротехнике и электронике (IEEE) как IEEE Std 1076 ; последней версией которого является IEEE Std 1076-2019 . Для моделирования систем аналоговых и смешанных сигналов стандартизированный IEEE HDL на основе VHDL под названием VHDL-AMS был разработан (официально IEEE 1076.1).
История
[ редактировать ]В 1983 году VHDL был первоначально разработан по указанию Министерства обороны США для документирования поведения ASIC , которые компании-поставщики включали в оборудование. Стандарт MIL-STD-454N [2] В Требовании 64 раздела 4.5.1 «Документация ASIC на VHDL» явно требуется документация «Микроэлектронных устройств» на VHDL.
Идея моделирования ASIC на основе информации, содержащейся в этой документации, была настолько привлекательна, что были разработаны логические симуляторы , способные читать файлы VHDL. Следующим шагом стала разработка инструментов логического синтеза , которые считывают VHDL и выдают определение физической реализации схемы.
Поскольку Министерство обороны требует, чтобы как можно большая часть синтаксиса была основана на Ada, чтобы избежать повторного изобретения концепций, которые уже были тщательно проверены при разработке Ada, [ нужна ссылка ] VHDL во многом заимствован из языка программирования Ada как по концепции, так и по синтаксису .
Первоначальная версия VHDL, разработанная в соответствии со стандартом IEEE IEEE 1076-1987, [3] включал широкий спектр типов данных, включая числовые ( целые и вещественные ), логические ( битовые и логические ), символьные и временные , а массивы также bit
называется bit_vector
и из character
называется строкой .
Однако проблемой, не решенной в этом издании, была «многозначная логика», где сила также учитываются сигнала (нет, слабый или сильный) и неизвестные значения. Для этого требовался стандарт IEEE 1164 , который определял типы логики с 9 значениями: скалярная std_logic
и его векторная версия std_logic_vector
. Будучи разрешенным подтипом своего std_Ulogic
родительский тип, std_logic
Типизированные сигналы допускают многократное управление для моделирования структур шины, при этом функция связанного разрешения адекватно обрабатывает конфликтующие назначения.
Обновленный стандарт IEEE 1076 , вышедший в 1993 году, сделал синтаксис более последовательным, обеспечил большую гибкость в именовании, расширил character
чтобы разрешить ISO-8859-1 , добавлен параметр печатные символы xnor
оператор и т.д. [ указать ]
Незначительные изменения в стандарте (2000 и 2002 годы) добавили идею защищенных типов (аналогично концепции класса в C++ ) и удалили некоторые ограничения из правил сопоставления портов.
Помимо стандарта IEEE 1164, было введено несколько дочерних стандартов для расширения функциональности языка. В стандарте IEEE 1076.2 улучшена обработка реальных и сложных типов данных. Стандарт IEEE 1076.3 ввел знаковые и беззнаковые типы для облегчения арифметических операций с векторами. Стандарт IEEE 1076.1 (известный как VHDL-AMS ) предоставил расширения для проектирования аналоговых схем и схем смешанных сигналов.
Некоторые другие стандарты поддерживают более широкое использование VHDL, в частности VITAL (VHDL Initiative Towards ASIC Libraries) и микроволновых расширения проектирования схем.
В июне 2006 года Технический комитет VHDL Accellera (командированный IEEE для работы над следующим обновлением стандарта) одобрил так называемый проект 3.0 VHDL-2006. При сохранении полной совместимости со старыми версиями предлагаемый стандарт предоставляет многочисленные расширения, которые упрощают написание кода VHDL и управление им. Ключевые изменения включают включение дочерних стандартов (1164, 1076.2, 1076.3) в основной стандарт 1076, расширенный набор операторов, более гибкий синтаксис операторов регистра и генерации , включение VHPI (процедурный интерфейс VHDL) (интерфейс к языкам C/C++). ) и подмножество PSL ( язык спецификации свойств ). Эти изменения должны улучшить качество синтезируемого кода VHDL, сделать тестовые стенды более гибкими и позволить более широко использовать VHDL для описаний на уровне системы.
В феврале 2008 года Accellera утвердила VHDL 4.0, также неофициально известный как VHDL 2008, который устраняет более 90 проблем, обнаруженных во время пробного периода версии 3.0, и включает расширенные универсальные типы. В 2008 году Accellera представила IEEE VHDL 4.0 для голосования за включение в IEEE 1076-2008. Стандарт VHDL IEEE 1076-2008. [4] был опубликован в январе 2009 года.
Стандартизация
[ редактировать ]Стандарт IEEE 1076 определяет VHSIC язык описания оборудования или VHDL. Первоначально он был разработан по контракту F33615-83-C-1003 с ВВС США , заключенному в 1983 году с командой Intermetrics, Inc. в качестве языковых экспертов и генерального подрядчика, Texas Instruments в качестве экспертов по проектированию микросхем и IBM в качестве разработчиков компьютерных систем. эксперты. Язык претерпел многочисленные изменения и имеет множество связанных с ним подстандартов, которые существенно дополняют или расширяют его.
1076 был и остается важной вехой в разработке электронных систем. [5]
Редакции
[ редактировать ]- ИЭЭЭ 1076-1987 [3] Первая стандартизированная версия языка версии 7.2 от ВВС США.
- ИЭЭЭ 1076-1993 [6] (также опубликовано с ISBN 1-55937-376-8 ). Значительные улучшения в результате нескольких лет обратной связи. Вероятно, наиболее широко используемая версия с лучшей поддержкой инструментов поставщика.
- ИИЭР 1076-2000. [7] Незначительная доработка. Представляет использование защищенных типов .
- ИИЭР 1076-2002. [8] Незначительная редакция 1076-2000. Правила в отношении буферных портов смягчены.
- МЭК 61691-1-1:2004. [9] Принятие IEC IEEE 1076-2002.
- ИИЭР 1076с-2007. [10] Представлен VHPI, процедурный интерфейс VHDL, который предоставляет программному обеспечению средства доступа к модели VHDL. Язык VHDL потребовал незначительных модификаций для поддержки VHPI.
- IEEE 1076-2008 (ранее назывался 1076-200x). Основная редакция выпущена 26 января 2009 г. Помимо других изменений, этот стандарт включает базовое подмножество PSL, допускает использование обобщений для пакетов и подпрограмм и вводит использование внешних имен .
- МЭК 61691-1-1:2011. [11] Принятие IEC IEEE 1076-2008.
- ИИЭР 1076-2019. Основная доработка.
Сопутствующие стандарты
[ редактировать ]- IEEE 1076.1 VHDL аналоговый и смешанный сигнал ( VHDL-AMS )
- Стандартные пакеты IEEE 1076.1.1 VHDL-AMS (stdpkgs)
- Математический пакет IEEE 1076.2 VHDL
- Пакет синтеза VHDL IEEE 1076.3 (vhdlsynth) ( числовой стандарт )
- Пакет синтеза IEEE 1076.3 VHDL – с плавающей запятой (fphdl)
- Сроки IEEE 1076.4 (инициатива VHDL в отношении библиотек ASIC: жизненно важна)
- Совместимость синтеза IEEE 1076.6 VHDL (отменена в 2010 г.) [12]
- IEEE 1164 VHDL (std_logic_1164) Пакеты многозначной логики
Дизайн
[ редактировать ]VHDL обычно используется для написания текстовых моделей, описывающих логическую схему. Такая модель обрабатывается программой синтеза только в том случае, если она является частью логического проекта. Программа моделирования используется для тестирования логического проекта с использованием имитационных моделей для представления логических схем, взаимодействующих с проектом. Эту коллекцию имитационных моделей обычно называют испытательным стендом .
Симулятор VHDL обычно представляет собой симулятор, управляемый событиями . [13] Это означает, что каждая транзакция добавляется в очередь событий в определенное запланированное время. Например, если назначение сигнала должно произойти через 1 наносекунду, событие добавляется в очередь на время +1 нс. Нулевая задержка также допускается, но ее все равно необходимо запланировать: для этих случаев дельта-задержка используется , которая представляет собой бесконечно малый шаг по времени. Моделирование переключается между двумя режимами: выполнение оператора, при котором оцениваются запущенные операторы, и обработка событий, при котором обрабатываются события в очереди.
В VHDL есть конструкции для управления параллелизмом, свойственным аппаратным проектам, но эти конструкции ( процессы ) отличаются по синтаксису от параллельных конструкций в Ada ( задач ). Как и Ada, VHDL строго типизирован и не чувствителен к регистру . Чтобы напрямую представлять операции, распространенные в аппаратном обеспечении, существует множество функций VHDL, которых нет в Ada, например расширенный набор логических операторов, включая nand и nor .
VHDL имеет возможности ввода и вывода файлов и может использоваться в качестве языка общего назначения для обработки текста, но файлы чаще используются испытательными стендами для моделирования для стимулов или проверочных данных. Существуют некоторые компиляторы VHDL, которые создают исполняемые двоичные файлы. В этом случае можно было бы использовать VHDL для написания тестового стенда для проверки функциональности конструкции с использованием файлов на главном компьютере для определения стимулов, взаимодействия с пользователем и сравнения результатов с ожидаемыми. Однако большинство дизайнеров оставляют эту работу симулятору.
Неопытному разработчику относительно легко создать код, который успешно моделируется, но не может быть синтезирован в реальном устройстве или слишком велик, чтобы его можно было использовать на практике. Особой ловушкой является случайное использование в качестве элементов хранения прозрачных защелок, а не триггеров D-типа . [14]
Можно спроектировать аппаратное обеспечение в VHDL IDE (для реализации FPGA, такой как Xilinx ISE, Altera Quartus, Synopsys Synplify или Mentor Graphics HDL Designer) для создания схемы RTL желаемой схемы. После этого созданную схему можно проверить с помощью программного обеспечения для моделирования, которое показывает формы входных и выходных сигналов схемы после создания соответствующего испытательного стенда. Чтобы создать подходящий испытательный стенд для конкретной схемы или кода VHDL, необходимо правильно определить входные данные. Например, для ввода тактового сигнала требуется циклический процесс или итеративный оператор. [15]
И последний момент: когда модель VHDL преобразуется в «вентили и провода», которые отображаются на программируемом логическом устройстве, таком как CPLD или FPGA , тогда настраивается фактическое оборудование, а не «исполняется» код VHDL. «как будто на каком-то процессорном чипе.
Преимущества
[ редактировать ]Ключевое преимущество VHDL при использовании для проектирования систем заключается в том, что он позволяет описывать (моделировать) и проверять (моделировать) поведение требуемой системы до того, как инструменты синтеза преобразуют проект в реальное оборудование (вентили и провода).
Еще одним преимуществом является то, что VHDL позволяет описывать параллельную систему . VHDL — это язык потоков данных , в котором каждый оператор рассматривается для одновременного выполнения, в отличие от языков процедурных вычислений, таких как BASIC, C и ассемблерный код, где последовательность операторов выполняется последовательно, по одной инструкции за раз.
Проект VHDL является многоцелевым. Будучи созданным один раз, расчетный блок может быть использован во многих других проектах. Однако многие формационные и функциональные параметры блока можно настраивать (параметры емкости, объем памяти, элементная база, состав блоков и структура взаимосвязей).
Проект VHDL является переносимым. Будучи созданным для одной элементной базы, проект вычислительного устройства может быть портирован на другую элементную базу, например СБИС с различными технологиями.
Большим преимуществом VHDL по сравнению с оригинальным Verilog является то, что VHDL имеет систему полного типа . Дизайнеры могут использовать систему типов для написания гораздо более структурированного кода (особенно путем объявления типов записей ). [16]
Примеры дизайна
[ редактировать ]Этот раздел написан как руководство или руководство . ( январь 2013 г. ) |
В VHDL проект состоит как минимум из объекта , описывающего интерфейс, и архитектуры , содержащей фактическую реализацию. Кроме того, большинство проектов импортируют библиотечные модули. Некоторые проекты также содержат несколько архитектур и конфигураций .
Простой логический элемент И в VHDL будет выглядеть примерно так:
-- (this is a VHDL comment)/* this is a block comment (VHDL-2008)*/-- import std_logic from the IEEE librarylibrary IEEE;use IEEE.std_logic_1164.all;-- this is the entityentity ANDGATE is port ( I1 : in std_logic; I2 : in std_logic; O : out std_logic);end entity ANDGATE;-- this is the architecturearchitecture RTL of ANDGATE isbegin O <= I1 and I2;end architecture RTL;
(Обратите внимание, что RTL
означает проектирование уровня передачи регистров .) Хотя приведенный выше пример может показаться многословным новичкам в HDL, многие части либо необязательны, либо их нужно написать только один раз. Обычно такие простые функции являются частью более крупного поведенческого модуля, а не имеют отдельный модуль для чего-то столь простого. Кроме того, использование таких элементов, как std_logic
type может на первый взгляд показаться излишним. Можно легко использовать встроенный bit
введите и избегайте импорта библиотеки вначале. Однако, используя форму многозначной логики , в частности 9-значную логику ( U
, X
, 0
, 1
, Z
, W
, H
, L
, -
), вместо простых битов (0,1) предлагает разработчику очень мощный инструмент моделирования и отладки, которого в настоящее время нет ни в одном другом HDL.
В следующих примерах вы увидите, что код VHDL можно записать в очень компактной форме. Однако более опытные дизайнеры обычно избегают этих компактных форм и используют более подробный стиль кодирования ради удобства чтения и сопровождения.
Синтезируемые конструкции и шаблоны VHDL
[ редактировать ]VHDL часто используется для двух разных целей: моделирования электронных конструкций и синтеза таких конструкций. Синтез — это процесс, в котором VHDL компилируется и отображается в технологию реализации, такую как FPGA или ASIC.
Не все конструкции VHDL подходят для синтеза. Например, большинство конструкций, которые явно имеют дело с таймингом, такие как wait for 10 ns;
не поддаются синтезу, несмотря на то, что они действительны для моделирования. Хотя разные инструменты синтеза имеют разные возможности, существует общее синтезируемое подмножество VHDL, которое определяет, какие языковые конструкции и идиомы отображаются в общее оборудование для многих инструментов синтеза. IEEE 1076.6 определяет подмножество языка, которое считается официальным подмножеством синтеза. Обычно считается «лучшей практикой» писать очень идиоматический код для синтеза, поскольку результаты могут быть неправильными или неоптимальными для нестандартных конструкций.
Шаблон MUX
[ редактировать ]Мультиплексор , или «MUX» , как его обычно называют, представляет собой простую конструкцию, очень распространенную при проектировании аппаратного обеспечения. В приведенном ниже примере показан простой мультиплексор «два к одному» с входами A
и B
, селектор S
и вывод X
. Обратите внимание, что существует множество других способов выразить тот же MUX на VHDL. [17]
X <= A when S = '1' else B;
Более сложный пример мультиплексора с входами 4x2 и 2-битным селектором:
library IEEE;use IEEE.std_logic_1164.all;entity mux4 is port( a1 : in std_logic_vector(2 downto 0); a2 : in std_logic_vector(2 downto 0); a3 : in std_logic_vector(2 downto 0); a4 : in std_logic_vector(2 downto 0); sel : in std_logic_vector(1 downto 0); b : out std_logic_vector(2 downto 0) );end mux4;architecture rtl of mux4 is -- declarative part: emptybegin p_mux : process(a1,a2,a3,a4,sel) begin case sel is when "00" => b <= a1 ; when "01" => b <= a2 ; when "10" => b <= a3 ; when others => b <= a4 ; end case; end process p_mux;end rtl;
Шаблон защелки
[ редактировать ]— Прозрачная защелка это, по сути, один бит памяти, который обновляется при подаче сигнала разрешения. Опять же, есть много других способов выразить это на VHDL.
-- latch template 1:Q <= D when Enable = '1' else Q;-- latch template 2:process(all)begin Q <= D when(Enable);end process;
шлепанцы типа D
[ редактировать ]D-типа Триггер осуществляет выборку входящего сигнала по нарастающему (или падающему) фронту тактового сигнала. В этом примере имеется асинхронный сброс с активным высоким уровнем и выборка по нарастающему фронту тактовой частоты.
DFF : process(all) isbegin if RST then Q <= '0'; elsif rising_edge(CLK) then Q <= D; end if;end process DFF;
Другой распространенный способ записи поведения, запускаемого по фронту, в VHDL — использование атрибута сигнала «событие». Между именем сигнала и именем атрибута должен быть написан один апостроф.
DFF : process(RST, CLK) isbegin if RST then Q <= '0'; elsif CLK'event and CLK = '1' then Q <= D; end if;end process DFF;
VHDL также подходит для «острых строк», таких как
DFF : Q <= '0' when RST = '1' else D when rising_edge(clk);
или
DFF : process(all) is begin if rising_edge(CLK) then Q <= D; end if; if RST then Q <= '0'; end if;end process DFF;
или:
Library IEEE;USE IEEE.Std_logic_1164.all;entity RisingEdge_DFlipFlop_SyncReset is port( Q : out std_logic; Clk : in std_logic; sync_reset : in std_logic; D : in std_logic );end RisingEdge_DFlipFlop_SyncReset;architecture Behavioral of RisingEdge_DFlipFlop_SyncReset isbegin process(Clk) begin if (rising_edge(Clk)) then if (sync_reset='1') then Q <= '0'; else Q <= D; end if; end if; end process; end Behavioral;
Это может быть полезно, если не все сигналы (регистры), управляемые этим процессом, должны быть сброшены.
Пример: счетчик
[ редактировать ]Следующий пример представляет собой повышающий счетчик с асинхронным сбросом, параллельной загрузкой и настраиваемой шириной. Он демонстрирует использование типа unsigned, преобразования типов между unsigned и std_logic_vector, а также дженерики VHDL . Обобщенные шаблоны очень близки к аргументам или шаблонам в других традиционных языках программирования, таких как C++. Пример приведен на языке VHDL 2008.
library IEEE;use IEEE.std_logic_1164.all;use IEEE.numeric_std.all; -- for the unsigned typeentity COUNTER is generic ( WIDTH : in natural := 32); port ( RST : in std_logic; CLK : in std_logic; LOAD : in std_logic; DATA : in std_logic_vector(WIDTH-1 downto 0); Q : buffer std_logic_vector(WIDTH-1 downto 0));end entity COUNTER;architecture RTL of COUNTER isbegin process(all) is begin if RST then Q <= (others => '0'); elsif rising_edge(CLK) then if LOAD='1' then Q <= DATA; else Q <= std_logic_vector(unsigned(Q) + 1); end if; end if; end process;end architecture RTL;
Более сложные счетчики могут добавлять операторы if/then/else внутри rising_edge(CLK) elsif
для добавления других функций, таких как разрешение подсчета, остановка или пролонгация при определенном значении счета, генерация выходных сигналов, таких как сигналы подсчета терминалов, и т. д. Необходимо соблюдать осторожность при упорядочивании и вложении таких элементов управления, если они используются вместе, чтобы создать желаемые приоритеты и минимизировать количество необходимых логических уровней.
Конструкции только для моделирования
[ редактировать ]Большую часть VHDL невозможно преобразовать в аппаратное обеспечение. Это подмножество известно как несинтезируемое или предназначенное только для моделирования подмножество VHDL и может использоваться только для прототипирования, моделирования и отладки. Например, следующий код сгенерирует тактовый сигнал с частотой 50 МГц. Его можно, например, использовать для управления тактовым входом в проекте во время моделирования. Однако это конструкция, предназначенная только для моделирования, и ее нельзя реализовать аппаратно. В реальном оборудовании часы генерируются извне; его можно уменьшить внутренне с помощью пользовательской логики или специального оборудования.
processbegin CLK <= '1'; wait for 10 NS; CLK <= '0'; wait for 10 NS;end process;
Конструкции, предназначенные только для моделирования, можно использовать для построения сигналов сложной формы за очень короткое время. Подобную форму сигнала можно использовать, например, в качестве тестовых векторов для сложной конструкции или в качестве прототипа некоторой логики синтезатора, которая будет реализована в будущем.
processbegin wait until START = '1'; -- wait until START is high for i in 1 to 10 loop -- then wait for a few clock periods... wait until rising_edge(CLK); end loop; for i in 1 to 10 loop -- write numbers 1 to 10 to DATA, 1 every cycle DATA <= to_unsigned(i, 8); wait until rising_edge(CLK); end loop; -- wait until the output changes wait on RESULT; -- now raise ACK for clock period ACK <= '1'; wait until rising_edge(CLK); ACK <= '0'; -- and so on...end process;
Особенности VHDL-2008
[ редактировать ]Иерархические псевдонимы
[ редактировать ]library ieee;use ieee.std_logic_1164.all;entity bfm is end entity;architecture beh of bfm is signal en :std_logic;begin -- insert implementation hereend architecture;//------------------------------------------library ieee;use ieee.std_logic_1164.all;entity test1 is end entity;architecture beh of test1 isbegin ibfm: entity work.bfm; -- The testbench process process alias probe_en is <<signal .test1.ibfm.en :std_logic>>; begin probe_en <= '1'; wait for 100 ns; probe_en <= '0'; wait for 100 ns; probe_en <= '1'; wait for 100 ns; std.env.stop(0); end process; end architecture;
Стандартные библиотеки
[ редактировать ]Также называются стандартными пакетами.
Стандартный пакет IEEE
[ редактировать ]Стандартный пакет IEEE включает следующее: [18]
- numeric_std
- std_logic_1164
- std_logic_arith
- std_logic_unsigned
- std_logic_signed
- std_logic_misc
Симуляторы VHDL
[ редактировать ]Коммерческий:
- Альдек Актив-ЛПВП
- Каденс Острый
- Mentor Graphics МодельСимулятор
- Mentor Graphics Questa Расширенный симулятор
- Синопсис VCS-MX [19]
- Xilinx Vivado Design Suite (включает симулятор Vivado)
Другой:
- EDA Playground — бесплатная интегрированная среда разработки VHDL на базе веб-браузера (использует Synopsys VCS, Cadence Incisive, Aldec Riviera-PRO и GHDL для моделирования VHDL)
- GHDL — это открытый исходный код. [20] Компилятор VHDL, который может выполнять программы VHDL. GHDL на GitHub
- boot от freerangefactory.org — это компилятор и симулятор VHDL на основе GHDL и GTKWave.
- VHDL Simili от Symphony EDA — бесплатный коммерческий симулятор VHDL.
- nvc от Ника Гассона — это компилятор и симулятор VHDL с открытым исходным кодом. [21] [22]
- freehdl от Эдвина Нароски был симулятором VHDL с открытым исходным кодом, от которого отказались с 2001 года. [23]
См. также
[ редактировать ]- Язык описания оборудования Altera (AHDL)
- Долото
- Подмастерье
- numeric std — стандартный пакет, предоставляющий арифметические функции для векторов.
- СистемаC
- СистемаVerilog
- Верилог
- Список симуляторов HDL
Ссылки
[ редактировать ]- ^ Дэвид Р. Коэльо (30 июня 1989 г.). Справочник по VHDL . Springer Science & Business Media. ISBN 978-0-7923-9031-2 .
- ^ Министерство обороны (1992). Военный стандарт, Стандартные общие требования к электронному оборудованию . Проверено 15 ноября 2017 г.
- ^ Перейти обратно: а б 1076-1987 – Справочное руководство по стандартному языку VHDL IEEE . 1988. doi : 10.1109/IEESTD.1988.122645 . ISBN 0-7381-4324-3 .
- ^ 1076-2008 – Справочное руководство по стандартному языку VHDL IEEE . 2009. doi : 10.1109/IEESTD.2009.4772740 . ISBN 978-0-7381-6854-8 .
- ^ Рабочая группа IEEE P1076 Группа анализа и стандартизации VHDL (VASG)
- ^ 1076-1993 – Справочное руководство по стандартному языку VHDL IEEE . 1994. doi : 10.1109/IEESTD.1994.121433 . ISBN 0-7381-0986-Х .
- ^ 1076-2000 – Справочное руководство по стандартному языку VHDL IEEE . 2000. doi : 10.1109/IEESTD.2000.92297 . ISBN 0-7381-1948-2 .
- ^ 1076-2002 – Справочное руководство по стандартному языку VHDL IEEE . 2002. doi : 10.1109/IEESTD.2002.93614 . ISBN 0-7381-3247-0 .
- ^ МЭК 61691-1-1 Первое издание, 2004-10 гг.; IEEE 1076 — Поведенческие языки IEC/IEEE. Часть 1-1: Справочное руководство по языку VHDL (принятие стандарта IEEE 1076-2002) . 2004. doi : 10.1109/IEESTD.2004.95752 . ISBN 2-8318-7691-5 .
- ^ 1076c-2007 – Справочное руководство по языку VHDL стандарта IEEE, поправка 1: Интерфейс приложений процедурного языка . 2007. doi : 10.1109/IEESTD.2007.4299594 . ISBN 978-0-7381-5523-4 .
- ^ 61691-1-1-2011 — Поведенческие языки. Часть 1-1: Справочное руководство по языку VHDL . 2011. doi : 10.1109/IEESTD.2011.5967868 . ISBN 978-0-7381-6605-6 .
- ^ «IEEE 1076.6-2004 — Стандарт IEEE для синтеза уровня передачи регистров VHDL (RTL)» .
- ^ «ELEC3017 — Моделирование» (PDF) . Университет Саутгемптона. Архивировано (PDF) из оригинала 23 февраля 2017 г. Проверено 23 февраля 2017 г.
- ^ «Почему меня должны волновать прозрачные защелки?» . Дулос . Проверено 22 декабря 2012 г.
- ^ «Генерация часов» . Дулос . Проверено 22 декабря 2012 г.
- ^ Иржи Гайслер. «Метод структурированного проектирования VHDL» (PDF) . Архивировано (PDF) из оригинала 10 октября 2022 г. Проверено 15 ноября 2017 г.
- ^ «Логические операторы VHDL и присвоение сигналов для комбинаторной логики» . Учебное пособие по ПЛИС . 16 мая 2020 г. Проверено 23 августа 2020 г.
- ^ Кьюзано, Сильвия (5 апреля 2011 г.). «Типы данных и операторы VHDL, доступные в стандартных пакетах IEEE» (PDF) . Политехнический университет Турина . Архивировано (PDF) из оригинала 10 октября 2022 г.
- ^ «VCS: самое производительное в отрасли решение для моделирования» . сайт Synopsis.com .
- ^ «Авторские права | Лицензии» . Документация GHDL — документация GHDL 0.36-dev . readthedocs.io.
- ^ Гассон, Ник (5 ноября 2011 г.). «Написание компилятора VHDL» .
- ^ Гассон, Ник (22 июля 2023 г.). «NVC — компилятор и симулятор VHDL» . Проверено 23 июля 2023 г.
- ^ «freehdl: По теме» . Архивировано из оригинала 10 февраля 2002 года.
- Примечания
- 1076/INT-1991 – Интерпретации стандартов IEEE: IEEE Std 1076-1987, Справочное руководство по стандартному языку VHDL IEEE . 1992. doi : 10.1109/IEESTD.1992.101084 . ISBN 0-7381-0987-8 .
Дальнейшее чтение
[ редактировать ]- Питер Дж. Эшенден, «Руководство дизайнера по VHDL, третье издание (системы на кремнии)», 2008 г., ISBN 0-1208-8785-1 . (Справочник VHDL, написанный одним из ведущих разработчиков языка)
- Брайан Мили, Фабрицио Тапперо (февраль 2012 г.). [1] . Простое руководство по написанию мощного кода VHDL для ваших цифровых реализаций. Архивировано из оригинального Free Range VHDL 13 февраля 2015 г.
- Йохан Сандстрем (октябрь 1995 г.). «Синтаксическое и семантическое сравнение Verilog с VHDL» . Интегрированный системный дизайн . ЭЭ Таймс. - Сандстром представляет таблицу, связывающую конструкции VHDL с конструкциями Verilog .
- Qualis Design Corporation (20 июля 2000 г.). «Краткая справочная карта VHDL» (PDF) . 1.1. Корпорация Qualis Design. Архивировано из оригинала (PDF) 10 декабря 2003 г.
{{cite journal}}
: Для цитирования журнала требуется|journal=
( помощь ) - Qualis Design Corporation (20 июля 2000 г.). «Краткая справочная карта упаковок 1164» (PDF) . 1.0. Корпорация Qualis Design. Архивировано из оригинала (PDF) 14 марта 2016 г.
{{cite journal}}
: Для цитирования журнала требуется|journal=
( помощь ) - Яник Бержерон, «Написание тестовых стендов: функциональная проверка моделей HDL», 2000 г., ISBN 0-7923-7766-4 . (Библия тестового стенда HDL)