ВХДЛ

С Википедије, слободне енциклопедије
VHDL kod za označeni sabirač.

VHDL (енгл. VHSIC hardware description language) је језик за опис хардвера који се користи у аутоматизацији електронског дизајна за описивање дигиталних система и мешовитих-система као што су ФПГА (енгл. field-programmable gate array) односно интегрисана струјна кола дизајнирана да буду конфигурисана од стране потросача након производње. ВХДЛ се такође може сматрати паралелним програмским језиком опсте намене, креираним за програмирање паралелних рачунара.

Историјат[уреди | уреди извор]

Почетком 1983, ВХДЛ је оригинално развијен према захтеву Министарства одбране Сједињених Америчких Држава са намером да се документује понашање АСИЦ-а (енгл. application-specific integrated circuit (ASIC)), интегрисаног кола прилагођеног за одређену употребу, који су били саставни део опреме којом су снабдевани. Стандард МИЛ-СТД-454Н[1] у Захтеву 64 одељак 4.5.1 „ АСИЦ документација у ВХДЛ-у“ експлицитно захтева документацију „ Микроелектронских Уређаја“ у ВХДЛ-у.

Идеја да се АСИЦ може симулирати само на основу ове документације је била толико атрактивна да су развијени посебни логички симулатори који су могли да читају ВХДЛ фајлове. Следећи корак је био развој алата за синтезу логичких кола, који ће читати ВХДЛ фајлове, и на излаз пропагирати физичку дефиницију имплементације струјних кола.

Министарство одбране је захтевало да се што је више могуће синтаксе преузме из програмског језика Ада, како би се избегло изумирање концепта који је вец детаљно тестиран и проверен приликом развоја језика Ада,[тражи се извор] па је ВХДЛ подоста наследио, и концепт и синтаксу, од програмског језика Ада.

Првобитна верзија ВХДЛ-а, дизајнирана према ИЕЕЕ стандарду ИЕЕЕ 1076-1987,[2] укључивала је широк спектар типова података, укључујући нумеричке типове(интегер и реал), логичке (бит и боолеан), знаковне типове цхарацтер и временске (тиме), као и низове бит-ова који се зову бит_вецтор и низове цхарацтер-а зване стринг.

Проблем који није био решен овим издањем, била је „ вишенаменска логика“, где се узима у обзир јачина протока сигнала (без сигнала, слаб или јак сигнал) као и непозната вредност. То је описано у стандарду ИЕЕЕ 1164, који је дефинисао 9-вредносне логичке типове: скаларни стд_логиц и његова векторска верзија стд_логиц_вецтор.

Ажурирана верзија стандарда ИЕЕЕ 1076, 1993. године, учинила је синтаксу конзистентнијом, омогућила већу флексибилност при именовању и уведен је већи број карактерских типова како би подржала ИСО-8859-1 карактере, додат је и оператор негације ексклузивне дисјункије(xnor) итд.

Мање промене у стандарду (2000 и 2002) додале су идеју заштићених типова (слично концепту класе у C++) и уклоњена су одредјена ограничења која се односе на правила мапирања портова.

Поред ИЕЕЕ стандарда 1164, уведено је и неколико детских стандарда (енг. цхилд стандардс) како би се проширила функционалност језика. ИЕЕЕ стандард 1076.2 побољшао је управљање реалним и комплексним типовима. ИЕЕЕ стандард 1076.3 представио је означене и неозначене типове и тиме поједноставио аритметичке операције над векторима. ИЕЕЕ стандард 1076.1 (познатији као ВХДЛ-АМС) је проширио дизајн аналогних и мешовитих-сигнала струјних кола.

Неки други стандарди подржавају ширу употребу ВХДЛ-а, нарочито ВИТАЛ (енгл. VHDL Initiative Towards ASIC Libraries) и проширењу микроталасних електричних кола.

У Јуну 2006 године, ВХДЛ технички одбор Аццеллера (који је делегирао ИЕЕЕ за рад на следећем ажурирању стандарда) одобрио је такозвани Драфт 3.0 ВХДЛ-а 2006. Одржавајући потпуну компатибилност са старијим верзијама, овај предложени стандард обезбеђује многе надоградње које чине ВХДЛ код лакшим за писање и одржавање. Кључне промене се односе на укључивање детских стандарда (1164, 1076.2, 1076.3) у главни 1076 стандард, проширени скуп оператора, флексибилнију синтаксу за генерисање изјава, уградња ВХПИ (ВХДЛ Процедурал Интерфаце) (интерфејс за језике C/C++) и подскуп ПСЛ језика (енгл. Property Specification Language). Ове промене треба да побојшају квалитет ВХДЛ кода, и омогуће ширу употребу ВХДЛ језика за системски опис.

У фебруару 2008. године Аццеллера је одобрила ВХДЛ 4.0, неформално познат као ВХДЛ 2008, који је адресирао више од 90 проблема откривених током пробног периода за верзију 3.0 и укључио побољшане генеричке типове. Током 2008. Године, Аццеллера је објавила гласање да ВХДЛ 4.0 ИЕЕЕ буде укључен у у ИЕЕЕ 1076-2008. ВХДЛ стандард ИЕЕЕ 1076-2008[3] је објављен у јануару 2009. године.

Стандардизација[уреди | уреди извор]

ИЕЕЕ стандард 1076 дефинише ВХСИЦ језик за опис хардвера за ВХДЛ. Он је првобитно развијен на основу уговора Ф33615-83-C-1003 склопљеног са ваздухопловним снагама Сједињених Америчких Држава који је додељен 1983. године тиму са Интерметрицс-а, као стручњацима за језике и главним извођачем, Теxас Инструментс-у као експерту за дизајн чипова и ИБМ-у као експертима за израду рачунарских система. Језик је прошао кроз бројне ревизије и има различите суб-стандарде који су повезани са њим, који га проширују.

Стандард 1076 је био и наставља да буде прекретница у дизајну електронских система.

Ревизије[уреди | уреди извор]

  • ИЕЕЕ 1076-1987[2] прва стандардизована ревизија верзије 7.2 језика из ваздухопловства Сједињених Америчких Држава.
  • ИЕЕЕ 1076-1993[4] (такође објављена са. ISBN 978-1-55937-376-0) садржи значајна побољшања која су проистекла из неколико година повратних информација и резултата. Веровтано је најшире коришћена верзија са највећом подршком за алат продавача.
  • ИЕЕЕ 1076-2000[5] мала ревизија. Уводи употребу заштићених (енг. протецтед) типова.
  • ИЕЕЕ 1076-2002 мала ревизија верзије 1076-2000. Растерећена су правила везана за буффер порт-ове.
    • ИЕЦ 61691-1-1: 2004[6] ИЕЦ усваја ИЕЕЕ 1076-2002
  • ИЕЕЕ 1076-2008[7] ИЕЦ адоптион оф ИЕЕЕ 1076-2002
  • ИЕЕЕ 1076-2008[8] (раније познат под називом 1076-200x) велика ревизија објављена 2009-01-26. Међу осталим променама, овај стандард садржи основни подскуп ПСЛ-а, омогућава генерисање пакета и подпрограма и уводи употребу спољашњих имена
    • ИЕЦ 61691-1-1: 2011[9] ИЕЦ усваја ИЕЕЕ 1076-2008

Сродни стандарди[уреди | уреди извор]

  • ИЕЕЕ 1076.1 ВХДЛ Аналогни и мешовити сигнал (ВХДЛ-АМС)
  • ИЕЕЕ 1076.1.1 ВХДЛ-АМС Стандардни пакети (стдпкгс)
  • ИЕЕЕ 1076.2 ВХДЛ Математички пакети
  • ИЕЕЕ 1076.3 ВХДЛ Синтетизовани пакети (вхдлсyнтх)
  • ИЕЕЕ 1076.3 ВХДЛ Синтетизовани пакети - Флоатинг Поинт (фпхдл)
  • ИЕЕЕ 1076.4 Подешаване времена (ВХДЛ Иницијатива ка АСИЦ библиотекама: витал)
  • ИЕЕЕ 1076.6 ВХДЛ Синтеза интероперабилности
  • ИЕЕЕ 1164 ВХДЛ Вишенаменска логика (стд_логиц_1164)

Дизајн[уреди | уреди извор]

ВХДЛ се обицно користи за писање текстуалних модела који описују логичка кола. Такав модел се обрађује синтезним програмом, само ако је део логичког дизајна. Симулациони програм се користи за тестирање дизајна логике коришћењем симулационих модела за представљање логичких кола која су у складу са дизајном. Ова група симулационих модела се обично назива тестбенцх.

ВХДЛ симулатор је обично симулатор који покреће догађај.[10] То значи да се свака трансакција додаје у ред за тачно одређено време. На пример, ако пренос сигнала треба да се деси након једне наносекунде, догађај се додаје у ред за време +1нс. Нулто одлагање је такође дозвољено, али га и даље треба заказати: за ове случајеве се користи Делта одлагање, што представља бескрајно мали временски корак. Симулација се мења између два режима: извршење извођења, где се активирани искази процењују и обрада догађаја, где се догађаји у реду обрађују.

ВХДЛ има конструкторе који се баве паралелизмом својственим за хардверске пројекте, али ови конструткори(процеси) се разликују у синтакси од паралалених конструктора у Ади(задаци). Као у Ади, ВХДЛ је строго типизиран и није осетљив на мала и велика слова. Да би директно представљали операције које су уобичајене у хардверу, има много карактеристика у ВХДЛ-у које нису пронађене у Ади, као што је проширени скуп Боолеан оператора укључујуци негацију коњукције(нанд) и негацију дисјункције(xор).

ВХДЛ има улазно-излазне могућности и може да се користи као општи језик за обраду текста, али датотеке се најчешће користе од стране симулационог модела тестбенцх за податке о стимулацији или верификацији. Постоје неки ВХДЛ компајлери који граде извршне бинарне датотеке. У овом случају, можда би било могуће користити ВХДЛ да напише тестбенцх да би потврдио функционалност дизајна помоћу датотека на рачунару домаћина да дефинише стимулансе, да интерактује са корисником и да упореди резултате са очекиваним. Међутим, већина дизајнера оставља овај посао симулатору.

Релативно је лако неискусном програмеру да произведе код који успешно симулира, али који се не може интегрисати у прави уређај, или је превелики да би био практичан. Једна посебна замка је случајна производња прозирних реза више него D флип-флопова као елемената за складиштење.

У ВХДЛ ИДЕ-у се може дизајнирати хардвер (за ФПГА имплементацију као што су Xилинx ИСЕ, Алтера Qуартус, Сyнопсyс Сyнплифy или Ментор Грапхицс ХДЛ Десингер) за производњу шеме жељеног струјног кола. После тога, генерисана шема може бити верификована помоћу симулационог софтвера који приказује графике улаза и излаза кола након генерисања одговарајућег тестбенцх-а. Да бисте генерисали одговарајући тестбенцх за одређено коло или ВХДЛ код, уноси морају бити правилно дефинисани. На пример, за унос сата, потребна је петља или итеративни израз.[11]


Крајњи циљ је да када се ВХДЛ модел преведе на "капије и жице" који су мапирани на програмабилни логички уређај као што је ЦПЛД или ФПГА, онда је текући хардвер конфигурисан, уместо да се ВХДЛ код “извршава” као на неком облику процесорског чипа.

Предности[уреди | уреди извор]

Кључна предност ВХДЛ-а, када се користи за дизајн система, јесте да омогућава понашање потребног система да буде описано (моделирано) и верификовано(симулирано) пре него што алати синтезе преводе дизајн у стварни хардвер (капије и жице).

Друга предност је што ВХДЛ дозвољава опис паралелног система. ВХДЛ је језик за проток података, за разлику од процедуралних рачунских језика као што су БАСИЦ, C и асемблер, који сви раде секвенцијално, једну инструкцију истовремено.

ВХДЛ пројекат је вишенаменски. Када се једном креира, блок за израчунавање може се користити у многим другим пројектима. Међутим, многи формацијски и функционални блок параметри се могу подесити (параметри капацитета, величина меморије, база елемената, састав блока и медјусобно повезане структуре).

ВХДЛ пројекат је преносив. Када се креира за једну базу елемената, пројекат рачунарског уређаја може се пренети на другу базу елемената, на пример ВЛСИ са различитим технологијама.

Велика предност ВХДЛ-а у поређењу са оригиналним Верилог-ом јесте то што ВХДЛ има систем с пуним типом. Дизајнери могу да користе систем типа да напишу много више структурираног кода (посебно декларишући врсте записа).[12]

Синтетизабилни конструкти и ВХДЛ шаблони[уреди | уреди извор]

ВХДЛ се често користи за два различита циља: симулација електронских дизајна и синтеза таквих дизајна. Синтеза је процес у којем се ВХДЛ компајлира и мапира у технологију имплементације као што је ФПГА или АСИЦ. Многи ФПГА произвођачи имају бесплатне (или јефтине) алате за синтетизацију ВХДЛ-а за употребу са својим чиповима, где су АСИЦ алати често веома скупи.

Нису сви конструкти у ВХДЛ примерени за синтезу. На пример, већина конструктора који се експлицитно баве временом као што је чекање од 10 нс; нису синтетизовани упркос томе што су валидни за симулацију. Иако различити алати за синтезу имају различите могућности, постоји заједнички синтетизовани подскуп ВХДЛ-а који дефинише који језички конструкти и идиоми мапирају у обични хардвер за многе алате за синтезу. ИЕЕЕ 1076.6 дефинише подскуп језика који се сматра званичним подскупом синтезе. Уопштено се сматра "најбољом праксом" за писање врло идиоматског кода за синтезу, јер резултати могу бити нетачни или субоптимални за нестандардне конструкције.

О кашњењима[уреди | уреди извор]

Језик ВХДЛ уз низ кључних речи које служе за моделирање функционалности кола нуди и неке језичне конструкте који омогућавају специфицирање кашњења. На пример, већ смо се упознали с наредбом облика:

f <= a AND b AFTER 10 ns ;

Треба напоменути да ти језични конструкти нису синтетизабилни: опишете ли дигитално коло на такав начин и потом затражите од синтетизатора дигиталног кола да такав опис примени у Ваше програмабилно коло (на пример, ФПГА), синтетизатор ће наредбе кашњења занемарити. Наиме, приликом синтезе кола из ВХДЛ описа синтетизатор на располагању има програмабилно коло које сте му задали и које је остварено у одређеној технологији. У тој технологији, компоненте ће имати кашењења која су одређена самом технологијом и на која Ви (нити синтетизатор) не можете утицати.

Запитате ли се зашто онда такве наредбе уопште постоје, одговор је једноставан: како би се омогућило извођење што је могуће реалнијих симулација. Наиме, сваки озбиљнији алат за моделирање и синтезу дигиталног хардвера корисницима нуди могућност извођења неколико различитих врста симулација.

Најједноставнија симулација је симулација понашајног модела (енгл. Behavioral model simulation) код које симулатор симулира Ваш опис управо онако како сте га дизајнирали. Међутим, такав алат можете затражити и провођење симулације која узима у обзир зички размештај компонената у програмабилном колу и начин на који су компоненте међусобно повезане (енгл. Post place and route simulation). Оно што ће се у том тренутку догодити јесте да ће алат занемарити Ваш полазни опис и генерисати нови ВХДЛ опис који у обзир узима грађу програмабилних компонената и њихова стварна кашњења која ће описивати користећи наредбе попут претходне наведене уз АФТЕР10 нс . Такав опис потом ће послати симулатору на симулацију чиме ћете добити вернију слику онога што ће се у стварности догађати једном када се коначно коло синтетизира. Циљани корисник ових примитива нисте дакле Ви као дизајнер кола (иако Вам нико не брани да их користите, тако дуго док знате да се то не може тако синтетизирати) већ је то сам алат у којем радите развој и синтезу.

Из управо описаног разлога ни следећи исечак кода написаног у ВХДЛ-у који се у испитним колима често користи за генерисање сигнала такта није синтетизабилан.

process
begin
    cp <= '1';
    wait for 50 ns;
    cp <= '0';
    wait for 50 ns;
end process;

Наиме, рад описаног кола темељи се на претпоставци да је синтетизатор способан да осигура управо наведена кашњења, то наравно није случај. Стога овакви делови кода ће често бити коришћени у испитним склоповима које ће симулатор моћи да симулира, али их никада нећемо имати у описима кола које фзички треба синтетизовати: програмабилна кола ће за ову сврху морати да имају унапред произведено коло чији је задатак генерисање сигнала такта, или ће у једноставнијој варијанти имати засебан улаз преко којег ће корисник изнова морати довести прикладно генерисан сигнал такта (неким на пример релаксацијским осцилатором или кварцним осцилатором).

Примери дизајна[уреди | уреди извор]

Дизајн ВХДЛ-а садржи минималан број ентитета који описују интерфејс и архитектуру која садржи стварну имплементацију. Поред тога већина дизајна импортује модуле библиотека. Неки дизајнови такође садрже више архитектура и конфигурација.

Једноставно логичко коло АНД коло у ВХДЛ-у би изгледало на следећи начин:

-- (ovo je komentar u VHDL-u)

-- importujemo std_logic iz IEEE biblioteke
library IEEE;
use IEEE.std_logic_1164.all;

-- ovo je entitet
entity ANDGATE is
  port ( 
    I1 : in std_logic;
    I2 : in std_logic;
    O  : out std_logic);
end entity ANDGATE;

-- ovo je arhitektura
architecture RTL of ANDGATE is
begin
  O <= I1 and I2;
end architecture RTL;

(Обратите пажњу да је RTL ознака за дизајн преноса нивоа преноса ) Иако се претходни пример можда чини превише опширним за почетнике, многи делови кода су или необавезни или се морају писати само једном. Углавном кодови попут овог су део већег модула,уместо да постоје посебни модули за нешто тако једноставно. Поред тога, употреба елемената као што су стд_логиц може деловати превише. Једноставно могуће је користити уграђени тип бит и избећи увођење библиотеке на почетку. Међутим коришћење ове 9-вредносне логике (У,X,0,1,З,W,Х,L,-) уместо једноставних битова (0,1) нуди дизајнеру веома моћну алатку за симулирање и дебаговање, која тренутно не постоји ни у једном другом ХДЛ-у.

У примерима који следе, видећете да ВХДЛ може бити написан у веома компактном облику. Међутим искусни програмери избегавају ове компактне форме и користе опширнији стил програмирања ради боље читљивости и лакше одрживости кода. Још једна предност оваквг стила кодирања је мања потрошња ресурса који је се користе при програмирању на програмибилном логичком уређају као што је ЦПЛД.

МУX коло[уреди | уреди извор]

Мултиплексер или "МУX", како се обично назива, је једноставан конструкт врло чест у дизајну хардвера. Пример који следи показује једноставно 2-1 МУX, са улазима А и Б, селектора С и излазом X. Имајте на уму да постоје многи други начини да се изрази исти МУX у ВХДЛ-у.

X <= A when S = '1' else B;

Понашајни модел мултиплексера 2-1 са улазом за омогућавање:

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;

ENTITY mux21e IS PORT(
    d: IN STD_LOGIC_VECTOR(0 TO 1);
    a: IN STD_LOGIC;
    e: IN STD_LOGIC;
    y: out STD_LOGIC; 
);
END mux21e;

ARCHITECTURE arch OF mux21e IS
BEGIN
    process(d,a,e)
    begin
      if e='0' then
        y <= '0';
      elsif a='0' then
        y <= d(0);
      elsif a='1' then
        y <= d(1);
      else 
        y <= '0';
      end if;
    end process;
END arch;

Шаблон резе[уреди | уреди извор]

Транспарентна реза је у основи један бит меморије која се ажурира када се активирајући сигнал повећа. Опет, постоји много других начина на које се то може изразити у ВХДЛ-у.

-- reza primer 1:
Q <= D when Enable = '1' else Q;

-- reza primer 2:
process(D,Enable)
begin
  if Enable = '1' then
    Q <= D;
  end if;
end process;

D флип-флоп[уреди | уреди извор]

D флип-флоп се добија помоћу D резе, ограничавањем контролног сигнала на узлазни(силазни) руб циклуса сата. Овај примјер има асинхроно, активно-високо ресетовање и узорке на узлазу сата сата.

DFF : process(RST, CLK) is
begin
  if RST = '1' then
    Q <= '0';
  elsif rising_edge(CLK) then
    Q <= D;
  end if;
end process DFF;

Још један уобичајени начин писања понашања на ивици у ВХДЛ-у је са атрибутом сигнала догађаја. Један апостроф мора бити написан између имена сигнала и имена атрибута.

DFF : process(RST, CLK) is
begin
  if RST = '1' then
    Q <= '0';
  elsif CLK'event and CLK = '1' then
    Q <= D;
  end if;
end process DFF;

ВХДЛ може бити и једнолинијски као на пример:

DFF : Q <= '0' when RST = '1' else D when rising_edge(clk);

Или

DFF : process(RST, CLK) is
begin
  if rising_edge(CLK) then
    Q  <= D;
    Q2 <= Q1;
  end if;
  if RST = '1' then
    Q <= '0';
  end if;
end process DFF;

Бројач[уреди | уреди извор]

Следећи пример је пример бројаћа унапред(уп-цоунтер) са асинхроним ресетом, паралелним оптерећењем и ширином која се може конфигурисати. Он показује употребу неозначеног типа, конверзију између 'унсигнед' и 'стд_логиц_вецтор' типова и ВХДЛ генерика. Генерици су веома близу аргумената или шаблона у другим традиционалним програмским језицима као што су C ++.

library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.numeric_std.all; -- za neoznačene tipove

entity 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     : out std_logic_vector(WIDTH-1 downto 0));
end entity COUNTER;

architecture RTL of COUNTER is
  signal CNT : unsigned(WIDTH-1 downto 0);
begin
  process(RST, CLK) is
  begin
    if RST = '1' then
      CNT <= (others => '0');
    elsif rising_edge(CLK) then
      if LOAD = '1' then
        CNT <= unsigned(DATA); -- tip je preveden u neoznačen
      else
        CNT <= CNT + 1;
      end if;
    end if;
  end process;

  Q <= std_logic_vector(CNT); -- tip je vraćen u std_logic_vector
end architecture RTL;

Комплекснији бројачи могу додати иф/тхен/елсе изјаве у оквиру рисинг_едге (ЦЛК) елсиф за додавање других функција, као што је омогућавање, заустављање или пребацивање на неку бројчану вриједност, генерисање излазних сигнала као што су сигнали бројчаних терминала итд. Мора се узети у обзир сређивање и угњеждавање таквих контрола ако се користе заједно, како би се произвели жељени приоритети и минимизовао број потребних логичких нивоа...

Који може бити користан ако се не морају ресетовати сви сигнали (регистри) који су вођени овим процесом.

Само симулацијски(симулатион-онлy) конструкти[уреди | уреди извор]

Велики подскуп ВХДЛ-а не може се превести у хардвер. Овај подскуп је познат као несинтензибилан или подскуп ВХДЛ-а који се може само симулирати и може се користити само за прототипове, симулацију и дебаговање. На пример, следећи код ће генерисати сат са фреквенцијом од 50 МХз. На пример, може се користити да се на улаз доведе сигнал сата током симулације. То је, међутим, само симулацијски конструкт и не може се имплементирати у хардверу. У стварном хардверу, сат се генерише споља; може се смањити интерно помоћу корисничке логике или наменског хардвера.

process
begin
  CLK <= '1'; wait for 10 NS;
  CLK <= '0'; wait for 10 NS;
end process;

Само симулацијски конструкти могу се користити за изградњу сложених графика у врло кратком времену. Такав график се може користити, на пример, као вектори за тестирање сложеног дизајна или као прототип неке логике синтетизовања који ће се имплементирати у будућности.

process
begin
  wait until START = '1'; 
  
  for i in 1 to 10 loop -- čekaj neki vremenski period
    wait until rising_edge(CLK);
  end loop;

  for i in 1 to 10 loop  
    DATA <= to_unsigned(i, 8);
    wait until rising_edge(CLK);
  end loop;

  -- čekaj dok se vrednost izlaza ne promeni
  wait on RESULT;
  
  
  ACK <= '1';
  wait until rising_edge(CLK);
  ACK <= '0';

 
end process;

ВХДЛ симулатори[уреди | уреди извор]

Комерцијални:

  • Алдец Ацтиве-ХДЛ
  • Цаденце Инцисиве (Претходни производ: НЦ-ВХДЛ)
  • Ментор Грапхицс МоделСим. Специјалне верзије овог производа које користе различити ФПГА произвођачи нпр. Алтера, Латтице
  • Сyнопсyс ВЦС-MX
  • Xилинx Вивадо (а.к.а. xсим). Засновано на иСим-у од претходног ИСЕ тоол-цхаин. Xилинx Инц.

Остали:

  • боот. фром Фрее Ранге ВХДЛ басед он ГХДЛ анд ГТКWаве
  • ГХДЛ фром гхдл.фрее.фр, новија верзија доступна на ГитХуб
  • ВХДЛ Симили
  • Мисц ЕДА Утилитиес Бесплатни ВХДЛ Парсер, вхдл2верилог, вхдл2ипxацт
  • ЕДА Плаyгроунд – Бесплатни wеб претраживач базиран на ВХДЛ ИДЕ (користи Ривиера-ПРО и МоделСим за ВХДЛ симулације)
  • Ницк Гассон'с ВХДЛ цомпилер
  • фреехдл од Едwина Нароска

Референце[уреди | уреди извор]

  1. ^ Департмент оф Дефенсе (1992). Милитарy Стандард, Стандард генерал реqуирементс фор елецтрониц еqуипмент. Приступљено 15. 11. 2017. 
  2. ^ а б ИЕЕЕ Стандард ВХДЛ Лангуаге Референце Мануал. 1988. ИСБН 978-0-7381-4324-8. дои:10.1109/ИЕЕЕСТД.1988.122645. 
  3. ^ ИЕЕЕ Стандард ВХДЛ Лангуаге Референце Мануал. 2009. ИСБН 978-0-7381-6854-8. дои:10.1109/ИЕЕЕСТД.2009.4772740. 
  4. ^ ИЕЕЕ Стандард ВХДЛ Лангуаге Референце Мануал. 1994. ИСБН 978-0-7381-0986-2. дои:10.1109/ИЕЕЕСТД.1994.121433. 
  5. ^ ИЕЕЕ Стандард ВХДЛ Лангуаге Референце Мануал. 2000. ИСБН 978-0-7381-1948-9. дои:10.1109/ИЕЕЕСТД.2000.92297. 
  6. ^ ИЕЕЕ Стандард ВХДЛ Лангуаге Референце Мануал. 2002. ИСБН 978-0-7381-3247-1. дои:10.1109/ИЕЕЕСТД.2002.93614. 
  7. ^ ИЕЦ 61691-1-1 Ед.1 (ИЕЕЕ СТД 1076(ТМ)-2002): Бехавиоурал Лангуагес - Парт 1-1: ВХДЛ Лангуаге Референце Мануал. 2004. ИСБН 978-2-8318-7691-7. дои:10.1109/ИЕЕЕСТД.2004.95752. 
  8. ^ ИЕЕЕ Стандард ВХДЛ Лангуаге Референце Мануал - Процедурал Лангуаге Апплицатион Интерфаце. 2007. ИСБН 978-0-7381-5523-4. дои:10.1109/ИЕЕЕСТД.2007.4299594. 
  9. ^ Бехавиоурал лангуагес - Парт 1-1: ВХДЛ Лангуаге Референце Мануал. 2011. ИСБН 978-0-7381-6605-6. дои:10.1109/ИЕЕЕСТД.2011.5967868. 
  10. ^ „ЕЛЕЦ3017 - Симулатион” (ПДФ). Университy оф Соутхамптон. Приступљено 23. 2. 2017. 
  11. ^ „Цлоцк Генератион”. Доулос. Архивирано из оригинала 20. 01. 2013. г. Приступљено 22. 12. 2012. 
  12. ^ Јири Гаислер. „А струцтуред ВХДЛ Десигн Метход” (ПДФ). Приступљено 15. 11. 2017. 
Белешке

Додатна литература[уреди | уреди извор]

Спољашње везе[уреди | уреди извор]