~~~~~~~~~~~~~~~~~~~~ Arc.Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~ 
Номер скриншота №:
✰ 3E91B405C7AC6495531859708767876A__1714776060 ✰
Заголовок документа оригинал.:
✰ VHDL - Wikipedia ✰
Заголовок документа перевод.:
✰ VHDL — Википедия ✰
Снимок документа находящегося по адресу (URL):
✰ https://en.wikipedia.org/wiki/VHDL ✰
Адрес хранения снимка оригинал (URL):
✰ https://arc.ask3.ru/arc/aa/3e/6a/3e91b405c7ac6495531859708767876a.html ✰
Адрес хранения снимка перевод (URL):
✰ https://arc.ask3.ru/arc/aa/3e/6a/3e91b405c7ac6495531859708767876a__translat.html ✰
Дата и время сохранения документа:
✰ 16.06.2024 19:12:37 (GMT+3, MSK) ✰
Дата и время изменения документа (по данным источника):
✰ 4 May 2024, at 01:41 (UTC). ✰ 

~~~~~~~~~~~~~~~~~~~~~~ Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~~ 
Сервисы Ask3.ru: 
 Архив документов (Снимки документов, в формате HTML, PDF, PNG - подписанные ЭЦП, доказывающие существование документа в момент подписи. Перевод сохраненных документов на русский язык.)https://arc.ask3.ruОтветы на вопросы (Сервис ответов на вопросы, в основном, научной направленности)https://ask3.ru/answer2questionТоварный сопоставитель (Сервис сравнения и выбора товаров) ✰✰
✰ https://ask3.ru/product2collationПартнерыhttps://comrades.ask3.ru


Совет. Чтобы искать на странице, нажмите Ctrl+F или ⌘-F (для MacOS) и введите запрос в поле поиска.
Arc.Ask3.ru: далее начало оригинального документа

VHDL — Википедия Jump to content

VHDL

Из Википедии, бесплатной энциклопедии
VHDL
Парадигма параллельный , реактивный , поток данных
Впервые появился 1980-е годы
Стабильная версия
ИИЭР 1076-2019 / 23 декабря 2019 г .; 4 года назад ( 23.12.2019 )
Дисциплина набора текста сильный
Расширения имен файлов .vhd
Веб-сайт IEEE ВАСГ
Диалекты
VHDL-AMS
Под влиянием
Есть , [1] Паскаль
Исходный код VHDL для подписанного сумматора

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]

Примеры дизайна [ править ]

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

Простой логический элемент И в VHDL будет выглядеть примерно так:

 это комментарий VHDL) 
 /* 
     блока   VHDL   (  -- (   это комментарий   -  2008  )  *  / 
 -- 
 IEEE Library 
 импортируем std_logic из библиотеки   IEEE  ; 
  используйте   IEEE.std_logic_1164.   все  ; 

  -- это сущность сущности 
 ANDGATE   -   это 
   порт   (  
     I1   :   в   std_logic  ; 
     I2   :   в   std_logic  ; 
     O    :   вне   std_logic  ); 
  конечный   объект   ANDGATE  ; 

 это архитектура 
 RTL   ANDGATE   :   начало   O 
 ; 
   <   =   I1   и   I2   -- 
  конечная   архитектура   RTL  ; 

(Заметить, что RTLозначает проектирование уровня передачи регистров .) Хотя приведенный выше пример может показаться многословным новичкам в HDL, многие части либо необязательны, либо их нужно написать только один раз. Обычно такие простые функции являются частью более крупного поведенческого модуля, а не имеют отдельный модуль для чего-то столь простого. Кроме того, использование таких элементов, как std_logictype может на первый взгляд показаться излишним. Можно легко использовать встроенный 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,   когда   S   =   '1'   else   B  ; 

Более сложный пример мультиплексора с входами 4x2 и 2-битным селектором:

библиотека   IEEE  ; 
  используйте   IEEE.std_logic_1164.   все  ; 
  объектный   мультиплексор4   — это 
   порт  ( 
     a1        :   в    std_logic_vector  (  от 2   до   0  ); 
     a2        :   в    std_logic_vector  (  от 2   до   0  ); 
     a3        :   в    std_logic_vector  (  от 2   до   0  ); 
     a4        :   в    std_logic_vector  (  от 2   до   0  ); 
     sel       :   в    std_logic_vector  (  1   до   0  ); 
     b         :   out   std_logic_vector  (  2   до   0  ) 
   ); 
  конец   мультиплексора4  ; 
  архитектура   rtl   mux4   a2   - 
   декларативная часть: пусто 
 начало 
   p_mux   :   процесс  (  a1  ,  -  ,  a3  ,  a4  ,  sel  ) 
   начало 
     случая   sel   это 
       When   "00"   =>   b   <=   a1   ; 
        когда   «01»   =>   b   <=   a2   ; 
        когда   «10»   =>   b   <=   a3   ; 
        когда   другие   =>   b   <=   a4   ; 
      конец   дела  ; 
    завершить   процесс   p_mux  ; 
  конец   ртл  ; 

Шаблон защелки [ править ]

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

-- шаблон фиксации 1: 
 Q   <=   D   if   Enable   =   '1'   else   Q  ; 

  -- шаблон блокировки 2: 
 процесс  (  все  ) 
 начинается 
     Q   <=   D   , когда  (  Включить  ); 
  завершить   процесс  ; 

Шлепанцы типа D [ править ]

D-типа Триггер производит выборку входящего сигнала по нарастающему (или падающему) фронту тактового сигнала. В этом примере имеется асинхронный сброс с активным высоким уровнем и выборка по нарастающему фронту тактовой частоты.

DFF   :   процесс  (  все  )   начинается 
 , 
   если   RST   , то 
     Q   <=   '0'  ; 
    elsif   Rising_edge  (  CLK  )   , затем 
     Q   <=   D  ; 
    конец   , если  ; 
  завершить   процесс   DFF  ; 

Другой распространенный способ записи поведения, запускаемого по фронту, в VHDL — использование атрибута сигнала «событие». Между именем сигнала и именем атрибута должен быть написан один апостроф.

DFF   :   процесс  (  RST  ,   CLK  )   начинается 
 , 
   если   RST   , то 
     Q   <=   '0'  ; 
    elsif   CLK  'event   и   CLK   =   '1'   then 
     Q   <=   D  ; 
    конец   , если  ; 
  завершить   процесс   DFF  ; 

VHDL также подходит для «острых строк», таких как

DFF   :   Q   <=   '0',   когда   RST   =   '1',   иначе   D   , когда   нарастающий_фронт  (  clk  ); 

или

DFF   :   процесс  (  все  )   начинается  
 , 
   если   нарастающий_фронт  (  CLK  )   , затем 
     Q   <=   D  ; 
    конец   , если  ; 
    если   RST,   то 
     Q   <=   '0'  ; 
    конец   , если  ; 
  завершить   процесс   DFF  ; 

или:

библиотека   IEEE  ; 
  ИСПОЛЬЗУЙТЕ   IEEE.Std_logic_1164.   все  ; 

  сущность   RisingEdge_DFlipFlop_SyncReset   — это 
   порт  ( 
     Q            :     out   std_logic  ;     
     Clk          :   in      std_logic  ;   
     sync_reset   :   in      std_logic  ;   
     D            :   in      std_logic     
   ); 
  конец   RisingEdge_DFlipFlop_SyncReset  ; 

 архитектуры    Поведение   RisingEdge_DFlipFlop_SyncReset   Q  
 начало 
   процесса  (  Clk  ) 
   Begin  
     if   (  rising_edge  (  Clk  ))   then 
       if   (  sync_reset  =  '1'  )   then  
         <   =   '0'  ; 
        иначе  
         Q   <=   D  ;  
        конец   , если  ; 
      конец   , если  ;        
    завершить   процесс  ;   
  конец   Поведенческий  ; 

Это может быть полезно, если не все сигналы (регистры), управляемые этим процессом, должны быть сброшены.

Пример: счетчик [ править ]

Следующий пример представляет собой повышающий счетчик с асинхронным сбросом, параллельной загрузкой и настраиваемой шириной. Он демонстрирует использование типа unsigned, преобразования типов между unsigned и std_logic_vector, а также дженерики VHDL . Обобщенные шаблоны очень близки к аргументам или шаблонам в других традиционных языках программирования, таких как C++. Пример приведен на языке VHDL 2008.

библиотека   IEEE  ; 
  используйте   IEEE.std_logic_1164.   все  ; 
  используйте   IEEE.numeric_std.   все  ;      беззнакового типа 

  -- для сущности   COUNTER   является 
   общим   ( 
     WIDTH   :   in   natural   :=   32  ); 
    порт   ( 
     RST     :   в   std_logic  ; 
     CLK     :   в   std_logic  ; 
     LOAD    :   в   std_logic  ; 
     DATA    :   в   std_logic_vector  (  WIDTH  -  1   до   0  ); 
     Q       :   буфер   std_logic_vector  (  WIDTH  -  1   до   0  )); 
  конечный   объект   COUNTER  ; 

  архитектура   RTL   COUNTER   ,  

 начало 

   процесса  (  все  )  
   начало 
     , если   RST   то 
       Q   <=   (  other   =>   '0'  ); 
      elsifising_edge   ,  (  CLK  )   то 
       если   LOAD  =  '1'   , то 
         Q   <=   DATA  ; 
        иначе 
         Q   <=   std_logic_vector  (  беззнаковый  (  Q  )   +   1  ); 
        конец   , если  ; 
      конец   , если  ; 
    завершить   процесс  ; 

  конечная   архитектура   RTL  ; 

Более сложные счетчики могут добавлять операторы if/then/else внутри rising_edge(CLK) elsif для добавления других функций, таких как разрешение подсчета, остановка или пролонгация при некотором значении счета, генерация выходных сигналов, таких как сигналы подсчета терминалов, и т. д. Необходимо соблюдать осторожность при упорядочивании и вложении таких элементов управления, если они используются вместе, чтобы создать желаемые приоритеты и минимизировать количество необходимых логических уровней.

Конструкции только для моделирования [ править ]

Большую часть VHDL невозможно преобразовать в аппаратное обеспечение. Это подмножество известно как несинтезируемое или предназначенное только для моделирования подмножество VHDL и может использоваться только для прототипирования, моделирования и отладки. Например, следующий код сгенерирует тактовый сигнал с частотой 50 МГц. Его можно, например, использовать для управления тактовым входом в проекте во время моделирования. Однако это конструкция, предназначенная только для моделирования, и ее нельзя реализовать аппаратно. В реальном оборудовании часы генерируются извне; его можно уменьшить внутренне с помощью пользовательской логики или специального оборудования.

 процесса 
начало 
   CLK   <=   '1'  ;    подождите    10   нс  ; 
    CLK   <=   '0'  ;    подождите    10   нс  ; 
  завершить   процесс  ; 

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

 процесса 
начало 
   ожидание   START   ,   =   '1'  ;    -- дождитесь, пока START не станет высоким 
  
   для   i   в   от 1   до   10   цикле   -- затем подождите несколько периодов такта... 
     подождите   , пока   Rising_edge  (  CLK  ); 
    конец   цикла  ; 

    for   i   в   от 1   до   10   цикле  	 — записываем числа от 1 до 10 в DATA, 1 в каждом цикле 
     DATA   <=   to_unsigned  (  i  ,   8  ); 
      дождаться   повышения_границы   CLK  (  )  ; 
    конец   цикла  ; 

    -- дождаться изменения вывода 
   wait   on   RESULT  ; 
  
    -- теперь повышаем ACK для тактового периода 
   ACK   <=   '1'  ; 
    дождаться   повышения_границы   CLK  (  )  ; 
    ПОДТВЕРЖДЕНИЕ   <=   '0'  ; 

    -- и так далее... 
 завершить   процесс  ; 

Особенности VHDL-2008 [ править ]

Иерархические псевдонимы [ править ]

библиотека   ieee  ; 
  используйте   ieee.std_logic_1164.   все  ; 

  сущность   bfm    конечная   сущность  ; 
  архитектура   bfm     это 
     сигнал   en     :  std_logic  ; 
  начало 
     - вставьте сюда реализацию 
 конец   архитектуры  ; 

  //  ------------------------------------------ 
 библиотека   ieee  ; 
  используйте   ieee.std_logic_1164.   все  ; 

  объект   test1    конечный   объект  ; 
  Архитектура   test1   с    начинается 
 . 

     ibfm  :   объектом   работа  с   бфм  ; 
	
      -- 
     процесса 
       Псевдоним   testbench Probe_en     равен   <<  signal   .   тест1  .   ИБФМ  .   ru   :  std_logic  >>  ; 
      начать 
         зонд_ен     <=   '1'  ; 
          подождите    100   нс  ; 
          зонд_ен     <=   '0'  ; 		
          подождите    100   нс  ; 
          зонд_en     <=   '1'  ; 		
          подождите    100   нс  ;         
          std.env  .   стоп  (  0  ); 
      завершить   процесс  ; 
	
  конечная   архитектура  ; 

Стандартные библиотеки [ править ]

Также называются стандартными пакетами.

Стандартный пакет IEEE [ править ]

Стандартный пакет IEEE включает следующее: [18]

Симуляторы VHDL [ править ]

Коммерческий:

Другой:

  • 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]

См. также [ править ]

Ссылки [ править ]

  1. ^ Дэвид Р. Коэльо (30 июня 1989 г.). Справочник по VHDL . Springer Science & Business Media. ISBN  978-0-7923-9031-2 .
  2. ^ Министерство обороны (1992). Военный стандарт, Стандартные общие требования к электронному оборудованию . Проверено 15 ноября 2017 г.
  3. ^ Перейти обратно: а б 1076-1987 – Справочное руководство по стандартному языку VHDL IEEE . 1988. doi : 10.1109/IEESTD.1988.122645 . ISBN  0-7381-4324-3 .
  4. ^ 1076-2008 – Справочное руководство по стандартному языку VHDL IEEE . 2009. doi : 10.1109/IEESTD.2009.4772740 . ISBN  978-0-7381-6854-8 .
  5. ^ Рабочая группа IEEE P1076 Группа анализа и стандартизации VHDL (VASG)
  6. ^ 1076-1993 – Справочное руководство по стандартному языку VHDL IEEE . 1994. doi : 10.1109/IEESTD.1994.121433 . ISBN  0-7381-0986-Х .
  7. ^ 1076-2000 – Справочное руководство по стандартному языку VHDL IEEE . 2000. doi : 10.1109/IEESTD.2000.92297 . ISBN  0-7381-1948-2 .
  8. ^ 1076-2002 – Справочное руководство по стандартному языку VHDL IEEE . 2002. doi : 10.1109/IEESTD.2002.93614 . ISBN  0-7381-3247-0 .
  9. ^ МЭК 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 .
  10. ^ 1076c-2007 – Справочное руководство по языку VHDL стандарта IEEE, поправка 1: Интерфейс приложений процедурного языка . 2007. doi : 10.1109/IEESTD.2007.4299594 . ISBN  978-0-7381-5523-4 .
  11. ^ 61691-1-1-2011 — Поведенческие языки. Часть 1-1: Справочное руководство по языку VHDL . 2011. doi : 10.1109/IEESTD.2011.5967868 . ISBN  978-0-7381-6605-6 .
  12. ^ «IEEE 1076.6-2004 — Стандарт IEEE для синтеза уровня передачи регистров (RTL) VHDL» .
  13. ^ «ELEC3017 — Моделирование» (PDF) . Университет Саутгемптона. Архивировано (PDF) из оригинала 23 февраля 2017 г. Проверено 23 февраля 2017 г.
  14. ^ «Почему меня должны волновать прозрачные защелки?» . Дулос . Проверено 22 декабря 2012 г.
  15. ^ «Генерация часов» . Дулос . Проверено 22 декабря 2012 г.
  16. ^ Иржи Гайслер. «Метод структурированного проектирования VHDL» (PDF) . Архивировано (PDF) из оригинала 10 октября 2022 г. Проверено 15 ноября 2017 г.
  17. ^ «Логические операторы VHDL и присвоение сигналов для комбинаторной логики» . Учебное пособие по ПЛИС . 16 мая 2020 г. Проверено 23 августа 2020 г.
  18. ^ Кьюзано, Сильвия (5 апреля 2011 г.). «Типы данных и операторы VHDL, доступные в стандартных пакетах IEEE» (PDF) . Политехнический университет Турина . Архивировано (PDF) из оригинала 10 октября 2022 г.
  19. ^ «VCS: самое высокопроизводительное в отрасли решение для моделирования» . сайт Synopsis.com .
  20. ^ «Авторские права | Лицензии» . Документация GHDL — документация GHDL 0.36-dev . readthedocs.io.
  21. ^ Гассон, Ник (5 ноября 2011 г.). «Написание компилятора VHDL» .
  22. ^ Гассон, Ник (22 июля 2023 г.). «NVC — компилятор и симулятор VHDL» . Проверено 23 июля 2023 г.
  23. ^ «freehdl: По теме» . Архивировано из оригинала 10 февраля 2002 года.
Примечания

Дальнейшее чтение [ править ]

Внешние ссылки [ править ]

Arc.Ask3.Ru: конец оригинального документа.
Arc.Ask3.Ru
Номер скриншота №: 3E91B405C7AC6495531859708767876A__1714776060
URL1:https://en.wikipedia.org/wiki/VHDL
Заголовок, (Title) документа по адресу, URL1:
VHDL - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть, любые претензии не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, денежную единицу можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)