Icarus Verilog — компілятор мови опису апаратури Verilog, призначений для симуляції та веріфікації. Програма має можливість підключення модулів розширення симуляції та кодогенерації.
Автор | Stephen Williams |
---|---|
Стабільний випуск | 10.0 (23 серпня 2015 ) |
Версії | 12.0 (11 червня 2023)[2] |
Нестабільний випуск | 10.1.1 (10 лютого 2016 ) |
Платформа | Крос-платформна |
Операційна система | Linux, Windows, FreeBSD, Mac OS X, OpenSolaris |
Мова програмування | |
Ліцензія | GPL, MIT |
Репозиторій | github.com/steveicarus/iverilog |
Вебсайт | iverilog.icarus.com |
Симуляція виконується віртуальною машиною. Результати симуляції записуються у стандартному форматі [en] (англ. Value Change Dump — дамп зміни значень), для перегляду результатів симуляції у вигляді графіків сигналів необхідна відповідна програма, наприклад, GTKWave.
Програма є вільною й розповсюджується під ліцензією GPL, частина файлів коду програми має ліцензію MIT
Icarus Verilog працює в операційних системах GNU/Linux, Windows, FreeBSD, Mac OS X та OpenSolaris.
Історія
Автором програми є Стефан Вільямс (англ. Stephen Williams), який почав працювати над програмою в 1998 році. У інтерв'ю журналу він відповів на запитання щодо віку проекту:
LinuxJournal: Як довго Ви працюєте над Icarus Verilog? Stephen Williams: Мої логи показують, що його було внесено в CVS в листопаді 1998 року. У мене було кілька невдалих спроб, принаймні два роки до цього. Якщо не зраджує пам'ять (а це трапляється рідко), я думаю, що я був на шляху до цього майже рік, перш ніж проект потрапив у CVS.
Оригінальний текст (англ.)LJ: How long have you been developing Icarus Verilog?
SW: My logs show that it was introduced to CVS in November 1998. I had a few false starts for at least two years before then. If memory serves (and it rarely does), I think I was on the current path for close to a year before it got into CVS.
Програма розвивається у відповідності з принципом відкритого програмного забезпечення, у розробці беруть участь всі, хто хоче і може приєднатися до проекту. Навіть логотип Icarus Verilog було зроблено та включено до проекту у відповідності з цим принципом:
LinuxJournal: Ви можете розповісти нам про логотип? Stephen Williams: Звичайно. Стів Вілсон може розповісти докладніше, але, в загальних рисах, логотип було намальовано дядьком Стіва, відставним художником-графіком. Цей художник, Чарльз Вілсон, подарував композицію з метою представлення Icarus Verilog і я високо ціную внесок. Він використовується досі без змін.
Отже, як ви бачите, рух Open Source поширюється за межі програмного забезпечення.
Оригінальний текст (англ.)LJ: Can you tell us about the logo?
SW: Certainly. Steve Wilson can fill in more details, but basically it was drawn by a retired graphic artist, Steve's uncle. The artist, Charles Wilson, donated the design for the purpose of representing Icarus Verilog, and I appreciate the contribution. It's been used thusly ever since.
So you see, this Open Source Movement has a reach even beyond computer software.
Підтримка стандартів
Стабільна версія 0.9.7 підтримує такі стандарти мови Verilog (рівень підтримки можна вибрати ключами компілятора iverilog):
- IEEE 1364–1995 (Verilog-95);
- IEEE 1364–2001 (Verilog-2001);
- IEEE 1364–2005 (Verilog-2005).
За умовчанням використовується версія 2005-го року.
Нестабільна версія 0.10.0 на додаток до перерахованого підтримує мову SystemVerilog:
- IEEE 1800–2005 (SystemVerilog-2005);
- IEEE 1800–2009 (SystemVerilog-2009);
- IEEE 1800–2012 (SystemVerilog-2012).
Підтримка стандарту SystemVerilog в процесі розробки, у версії 0.10.0 підтримується лише мала частина можливостей.
Для підключення модулів розширення симуляції використовується інтерфейс VPI (англ. Verilog Procedural Interface — інтерфейс процедур Verilog). Модулі мають бути написані на мові C або з використанням інтерфейсу PLI (англ. Programming Language Interface — інтерфейс мов програмування). Обидва інтерфейси описано в стандарті IEEE 1364.
Склад пакета
Пакет Icarus Verilog складається з таких основних програм:
- iverilog
- Власне препроцесор та компілятор мови Verilog. Виконує трансляцію вихідного коду на Verilog у файл програми моделювання або у перелік зв'язків (netlist) для подальшої обробки.
- vvp
- Віртуальна машина, яка виконує програму моделювання, створену компілятором iverilog.
- iverilog-vpi
- Утиліта для спрощення компіляції модулів VPI. Приймає на вході перелік файлів вихідних текстів на мовах C, C++ та об'єктних файлів, на виході видає зібраний vpi-модуль.
Також до пакета входить набір програм конвертації форматів vcd2fst, vcd2lxt, vcd2lxt2, vcd2vzt, vzt2vcd, vztminer, lxt2miner та lxt2vcd.
Використання
Всі програми пакета Icarus Verilog викликаються з командного рядка, режим роботи програм задається ключами. В найпростішому варіанті використання в командному рядку компілятора iverilog перераховують лише файли текстів на мові Verilog, наприклад:
iverilog tb.v shiftreg.v
Компліятор згенерує файл програми моделювання з іменем за умовчанням a.out
. Цей файл слід передати на виконання симулятору:
vvp a.out
Файл a.out
є текстовим файлом, але в операційній системі Лінукс він є виконуваним командним файлом (скриптом) і на його початку у спеціальному форматі записано, яку програму командна оболонка має викликати для інтерпретації:
#! /usr/bin/vvp :ivl_version "0.9.2 " "(v0_9_2)"; :vpi_time_precision + 0; :vpi_module "system";
Тому в Лінукс для запуску симуляції достатньо викликати файл a.out
як програму:
./a.out
Для спрощення роботи можна створити командний файл або make-файл, в якому записано часто виконувані дії.
Приклад простого проекту
Як приклад розглянемо симуляцію 5- регістру зсуву, в якому циркулюють два одиничних біти:
module shiftreg ( input wire clk, output reg [4:0] q ); always @(posedge clk) q <= {q[3:0], q[2:1]==0}; endmodule
Регістр не має входу скидання в початковий стан і повинен сам виходити на потрібний режим з будь-якого початкового стану. Тому кореневий файл проекту тестування — випробувальний стенд — крім генерації тактового сигналу містить команди примусового занесення деяких неприпустимих комбінацій у регістр q
екземпляра модуля shiftreg
з іменем DUT
(від англ. Device Under Test, назва екземпляра може бути довільна).
module tb; reg clk; wire [4:0] q; /* Екземпляр модуля shiftreg для тестування */ shiftreg DUT(clk, q); /* Період тактового сигналу - 10 умовних одиниць часу */ always#5 clk = ~clk; initial begin clk = 1; @(negedge clk); /* заносимо неприпустиму комбінацію 10101 */ DUT.q = 5'h15; repeat(10) @(negedge clk); /* заносимо неприпустиму комбінацію 01111 */ DUT.q = 5'h0F; repeat(10) @(negedge clk); $finish; end /* Виводимо на друк (умовний) час та виходи регістра */ initial $monitor("%4d %b", $time, q); endmodule
Викликаємо компілятор (ключ -o tb
заміняє ім'я за умовчанням a.out
на tb
) і відразу викликаємо програму симуляції. По команді $monitor
у випробувальному стенді на термінал виводяться моменти часу, в які змінється стан регістра q
, та новий стан регістра. Стан лінії clk
нас у даному випадку не цікавив.
$ iverilog -o tb tb.v shiftreg.v $ ./tb 0 xxxxx 5 10101 10 01010 20 10100 30 01000 40 10001 50 00011 60 00110 70 01100 80 11000 90 10001 100 00011 105 01111 110 11110 120 11100 130 11000 140 10001 150 00011 160 00110 170 01100 180 11000 190 10001 200 00011
У результаті симуляції видно, що рядках зі значенням часу 5 та 105 в регістр заносяться неприпустимі комбінації, але через деякий час (в рядках з часом 40 та 130) він виходить на режим, коли в ньому зсуваються дві одинички.
Таким чином — переглядом виходу симулятора в консолі — можна лише нашвидкоруч перевірити прості рішення. Для перегляду діаграм у графічному вигляді слід у файлі випробувального стенду замінити рядок з initial $monitor(...);
таким кодом:
/* Виводимо всі внутрішні сигнали об’єкта DUT у vcd-файл */ initial begin $dumpfile("out.vcd"); $dumpvars(0,DUT); end
У процесі симуляції буде створено файл out.vcd
, який можна буде переглянути програмою GTKWave.
Додаткові можливості
Компілятор iverilog має ключ -t
(target), яким можна задати тип компіляції (кодогенерації). За умовчанням використовується тип цільового файлу vvp
, тобто генерація коду для віртуальної машини vvp, цей варіант описано вище.
Вказавши іншу ціль, можна виконати такі дії:
Перевірка синтаксису
Ціль null
(ключ -t null
) вимикає власне кодогенерацію, проводиться лише аналіз вхідних файлів. Цю ціль зручно використовувати для перевірки синтаксису протягом редагування файлів проекту.
Генерація VHDL-файлу
Ціль vhdl
(ключ -t vhdl
) призначено для конвертації Verilog-файлів у відповідний їм VHDL-код. Наприклад:
iverilog -t vhdl -o shiftreg.vhdl shiftreg.v
Цей виклик компілятора з файлом shiftreg.v
з описаного вище прикладу створить файл shiftreg.vhdl
-- This VHDL was converted from Verilog using the -- Icarus Verilog VHDL Code Generator 0.9.2 (v0_9_2) library ieee; use ieee.std_logic_1164.all; use ieee.numeric_std.all; use std.textio.all; -- Generated from Verilog module shiftreg (shiftreg.v:1) entity shiftreg is port ( clk : in std_logic; q : out unsigned(4 downto 0) ); end entity; -- Generated from Verilog module shiftreg (shiftreg.v:1) architecture FromVerilog of shiftreg is signal q_Reg : unsigned(4 downto 0); begin q <= q_Reg; -- Generated from always process in shiftreg (shiftreg.v:6) process (clk) is begin if (rising_edge(clk)) then q_Reg <= (q_Reg(0 + 3 downto 0) & (q_Reg(1 + 1 downto 1) = "00")); end if; end process; end architecture;
Встановлення програми
Встановлення програми Icarus Verilog може бути виконане двома способами — встановлення готових виконуваних файлів та самостійне збирання з вихідних текстів.
Встановлення двійкових файлів
Для перерахованих вище операційних систем існують вже готові пакунки Icarus Verilog.
Для Unix-подібних ОС як сам Icarus, так і необхідна для зручної роботи програма перегляду GTKWave присутні у сховищі програм цих систем. Збирання, тестування та оновлення пакунків проводить група підтримки відповідного дистрибутиву. Встановити програми можна, користуючись менеджером пакунків системи, наприклад, в Ubuntu можна скористатися графічним інтерфейсом до менеджера пакунків Synaptic або встановити необхідні програми з командного рядка командою:
sudo apt-get install verilog gtkwave
Для Windows підтримку збирання пакетів взяв на себе Pablo Bleyer Kocik. З його сайту можна завантажити інсталятори стабільних версій програми й так званий development snapshot — результат компіляції «знімка» стану вихідних кодів програми на певну дату, який включає в себе найсвіжіші можливості програми, але може працювати нестабільно. До складу інсталяторів включено і Windows-версію програми GTKWave. Програми зібрано пакетом MinGW. Встановлення додаткових компонентів не потрібне.
Компіляція з вихідного коду
Icarus Verilog є консольною програмою, написаною таким чином, щоб мінімально залежати від операційної системи. Проте, програму розраховано на оточення UNIX-подібних систем та відповідні бібліотеки. В операційній системі Windows для збирання пакета можна використати середовища MinGW та Cygwin.
Вихідні коди можна отримати з репозиторію IcarusVerilog на сайті GitHub.
У керівництві зі встановлення дано рекомендації щодо компіляції програми для Linux, Windows, FreeBSD, Mac OS X та OpenSolaris.
Примітки
- . Архів оригіналу за 17 серпня 2016. Процитовано 6 серпня 2016.
- Release 12.0 — 2023.
- Перелік модулів розширення (плагінів) Icarus Verilog [ 19 липня 2013 у Wayback Machine.] (англ.)
- В Лінукс дивись перелік у файлі /usr/share/doc/iverilog/copyright.
- . Архів оригіналу за 9 травня 2012. Процитовано 27 липня 2013.
- . Архів оригіналу за 14 грудня 2019. Процитовано 4 серпня 2013.
- Ключі компілятора iverilog [ 17 травня 2013 у Wayback Machine.] (англ.)
- IEEE Standard for Verilog Hardware Description Language
- Див. файли документації iverilog,
man iverilog
у Лінукс та файлC:\iverilog_devel\share\man\man1\iverilog.1
у Windows - IEEE Standard for SystemVerilog — Unified Hardware Design, Specification, and Verification Language
- . Архів оригіналу за 9 березня 2016. Процитовано 1 серпня 2013.
- Ключі віртуальної машини симулятора vvp [ 30 листопада 2012 у Wayback Machine.] (англ.)
- . Архів оригіналу за 23 липня 2013. Процитовано 1 серпня 2013.
- Сховище проекту IcarusVerilog [ 1 червня 2016 у Wayback Machine.] на сайті GitHub
- Керівництво по встановленню Icarus Verilog [ 17 травня 2013 у Wayback Machine.] (англ.)
Посилання
- Офіційний сайт Icarus Verilog [ 7 грудня 2020 у Wayback Machine.] (англ.);
- Wiki проекту Icarus Verilog [ 29 вересня 2013 у Wayback Machine.] (англ.) на сайті Wikia;
- Сховище вихідних кодів проекту IcarusVerilog [ 1 червня 2016 у Wayback Machine.] на сайті GitHub;
- Сторінка Icarus Verilog [ 6 серпня 2020 у Wayback Machine.] (англ.) на сайті SourceForge.net;
- Icarus Verilog для Windows [ 23 липня 2013 у Wayback Machine.] (англ.) на персональному сайті Pablo Bleyer Kocik.
- Michael Baxter Open Source in Electronic Design Automation // Linux Journal, Вип. 82, лютий 2001 [ 9 травня 2012 у Wayback Machine.] (англ.)
- Stephen Williams, Michael Baxter Icarus Verilog: Open-Source Verilog More Than a Year Later // Linux Journal, Вип. 99, липень 2001 [ 16 вересня 2012 у Wayback Machine.] (англ.)
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
U Vikipediyi ye statti pro inshi znachennya cogo termina Icarus znachennya Icarus Verilog kompilyator movi opisu aparaturi Verilog priznachenij dlya simulyaciyi ta verifikaciyi Programa maye mozhlivist pidklyuchennya moduliv rozshirennya simulyaciyi ta kodogeneraciyi Icarus VerilogAvtorStephen WilliamsStabilnij vipusk10 0 23 serpnya 2015 8 rokiv tomu 2015 08 23 Versiyi12 0 11 chervnya 2023 2 Nestabilnij vipusk10 1 1 10 lyutogo 2016 8 rokiv tomu 2016 02 10 PlatformaKros platformnaOperacijna sistemaLinux Windows FreeBSD Mac OS X OpenSolarisMova programuvannyaC LicenziyaGPL MITRepozitorijgithub com steveicarus iverilogVebsajtiverilog icarus com Simulyaciya vikonuyetsya virtualnoyu mashinoyu Rezultati simulyaciyi zapisuyutsya u standartnomu formati en angl Value Change Dump damp zmini znachen dlya pereglyadu rezultativ simulyaciyi u viglyadi grafikiv signaliv neobhidna vidpovidna programa napriklad GTKWave Programa ye vilnoyu j rozpovsyudzhuyetsya pid licenziyeyu GPL chastina fajliv kodu programi maye licenziyu MIT Icarus Verilog pracyuye v operacijnih sistemah GNU Linux Windows FreeBSD Mac OS X ta OpenSolaris IstoriyaAvtorom programi ye Stefan Vilyams angl Stephen Williams yakij pochav pracyuvati nad programoyu v 1998 roci U interv yu zhurnalu vin vidpoviv na zapitannya shodo viku proektu LinuxJournal Yak dovgo Vi pracyuyete nad Icarus Verilog Stephen Williams Moyi logi pokazuyut sho jogo bulo vneseno v CVS v listopadi 1998 roku U mene bulo kilka nevdalih sprob prinajmni dva roki do cogo Yaksho ne zradzhuye pam yat a ce traplyayetsya ridko ya dumayu sho ya buv na shlyahu do cogo majzhe rik persh nizh proekt potrapiv u CVS Originalnij tekst angl LJ How long have you been developing Icarus Verilog SW My logs show that it was introduced to CVS in November 1998 I had a few false starts for at least two years before then If memory serves and it rarely does I think I was on the current path for close to a year before it got into CVS Programa rozvivayetsya u vidpovidnosti z principom vidkritogo programnogo zabezpechennya u rozrobci berut uchast vsi hto hoche i mozhe priyednatisya do proektu Navit logotip Icarus Verilog bulo zrobleno ta vklyucheno do proektu u vidpovidnosti z cim principom LinuxJournal Vi mozhete rozpovisti nam pro logotip Stephen Williams Zvichajno Stiv Vilson mozhe rozpovisti dokladnishe ale v zagalnih risah logotip bulo namalovano dyadkom Stiva vidstavnim hudozhnikom grafikom Cej hudozhnik Charlz Vilson podaruvav kompoziciyu z metoyu predstavlennya Icarus Verilog i ya visoko cinuyu vnesok Vin vikoristovuyetsya dosi bez zmin Otzhe yak vi bachite ruh Open Source poshiryuyetsya za mezhi programnogo zabezpechennya Originalnij tekst angl LJ Can you tell us about the logo SW Certainly Steve Wilson can fill in more details but basically it was drawn by a retired graphic artist Steve s uncle The artist Charles Wilson donated the design for the purpose of representing Icarus Verilog and I appreciate the contribution It s been used thusly ever since So you see this Open Source Movement has a reach even beyond computer software Pidtrimka standartivStabilna versiya 0 9 7 pidtrimuye taki standarti movi Verilog riven pidtrimki mozhna vibrati klyuchami kompilyatora iverilog IEEE 1364 1995 Verilog 95 IEEE 1364 2001 Verilog 2001 IEEE 1364 2005 Verilog 2005 Za umovchannyam vikoristovuyetsya versiya 2005 go roku Nestabilna versiya 0 10 0 na dodatok do pererahovanogo pidtrimuye movu SystemVerilog IEEE 1800 2005 SystemVerilog 2005 IEEE 1800 2009 SystemVerilog 2009 IEEE 1800 2012 SystemVerilog 2012 Pidtrimka standartu SystemVerilog v procesi rozrobki u versiyi 0 10 0 pidtrimuyetsya lishe mala chastina mozhlivostej Dlya pidklyuchennya moduliv rozshirennya simulyaciyi vikoristovuyetsya interfejs VPI angl Verilog Procedural Interface interfejs procedur Verilog Moduli mayut buti napisani na movi C abo C z vikoristannyam interfejsu PLI angl Programming Language Interface interfejs mov programuvannya Obidva interfejsi opisano v standarti IEEE 1364 Sklad paketaPaket Icarus Verilog skladayetsya z takih osnovnih program iverilog Vlasne preprocesor ta kompilyator movi Verilog Vikonuye translyaciyu vihidnogo kodu na Verilog u fajl programi modelyuvannya abo u perelik zv yazkiv netlist dlya podalshoyi obrobki vvp Virtualna mashina yaka vikonuye programu modelyuvannya stvorenu kompilyatorom iverilog iverilog vpi Utilita dlya sproshennya kompilyaciyi moduliv VPI Prijmaye na vhodi perelik fajliv vihidnih tekstiv na movah C C ta ob yektnih fajliv na vihodi vidaye zibranij vpi modul Takozh do paketa vhodit nabir program konvertaciyi formativ vcd2fst vcd2lxt vcd2lxt2 vcd2vzt vzt2vcd vztminer lxt2miner ta lxt2vcd VikoristannyaVsi programi paketa Icarus Verilog viklikayutsya z komandnogo ryadka rezhim roboti program zadayetsya klyuchami V najprostishomu varianti vikoristannya v komandnomu ryadku kompilyatora iverilog pererahovuyut lishe fajli tekstiv na movi Verilog napriklad iverilog tb v shiftreg v Kompliyator zgeneruye fajl programi modelyuvannya z imenem za umovchannyam a out Cej fajl slid peredati na vikonannya simulyatoru vvp a out Fajl a out ye tekstovim fajlom ale v operacijnij sistemi Linuks vin ye vikonuvanim komandnim fajlom skriptom i na jogo pochatku u specialnomu formati zapisano yaku programu komandna obolonka maye viklikati dlya interpretaciyi usr bin vvp ivl version 0 9 2 v0 9 2 vpi time precision 0 vpi module system Tomu v Linuks dlya zapusku simulyaciyi dostatno viklikati fajl a out yak programu a out Dlya sproshennya roboti mozhna stvoriti komandnij fajl abo make fajl v yakomu zapisano chasto vikonuvani diyi Priklad prostogo proektu Yak priklad rozglyanemo simulyaciyu 5 registru zsuvu v yakomu cirkulyuyut dva odinichnih biti module shiftreg input wire clk output reg 4 0 q always posedge clk q lt q 3 0 q 2 1 0 endmodule Registr ne maye vhodu skidannya v pochatkovij stan i povinen sam vihoditi na potribnij rezhim z bud yakogo pochatkovogo stanu Tomu korenevij fajl proektu testuvannya viprobuvalnij stend krim generaciyi taktovogo signalu mistit komandi primusovogo zanesennya deyakih nepripustimih kombinacij u registr q ekzemplyara modulya shiftreg z imenem DUT vid angl Device Under Test nazva ekzemplyara mozhe buti dovilna module tb reg clk wire 4 0 q Ekzemplyar modulya shiftreg dlya testuvannya shiftreg DUT clk q Period taktovogo signalu 10 umovnih odinic chasu always 5 clk clk initial begin clk 1 negedge clk zanosimo nepripustimu kombinaciyu 10101 DUT q 5 h15 repeat 10 negedge clk zanosimo nepripustimu kombinaciyu 01111 DUT q 5 h0F repeat 10 negedge clk finish end Vivodimo na druk umovnij chas ta vihodi registra initial monitor 4d b time q endmodule Viklikayemo kompilyator klyuch o tb zaminyaye im ya za umovchannyam a out na tb i vidrazu viklikayemo programu simulyaciyi Po komandi monitor u viprobuvalnomu stendi na terminal vivodyatsya momenti chasu v yaki zminyetsya stan registra q ta novij stan registra Stan liniyi clk nas u danomu vipadku ne cikaviv iverilog o tb tb v shiftreg v tb 0 xxxxx 5 10101 10 01010 20 10100 30 01000 40 10001 50 00011 60 00110 70 01100 80 11000 90 10001 100 00011 105 01111 110 11110 120 11100 130 11000 140 10001 150 00011 160 00110 170 01100 180 11000 190 10001 200 00011 U rezultati simulyaciyi vidno sho ryadkah zi znachennyam chasu 5 ta 105 v registr zanosyatsya nepripustimi kombinaciyi ale cherez deyakij chas v ryadkah z chasom 40 ta 130 vin vihodit na rezhim koli v nomu zsuvayutsya dvi odinichki Takim chinom pereglyadom vihodu simulyatora v konsoli mozhna lishe nashvidkoruch pereviriti prosti rishennya Dlya pereglyadu diagram u grafichnomu viglyadi slid u fajli viprobuvalnogo stendu zaminiti ryadok z initial monitor takim kodom Pereglyad rezultatu simulyaciyi u programi GTKWave Vivodimo vsi vnutrishni signali ob yekta DUT u vcd fajl initial begin dumpfile out vcd dumpvars 0 DUT end U procesi simulyaciyi bude stvoreno fajl out vcd yakij mozhna bude pereglyanuti programoyu GTKWave Dodatkovi mozhlivostiKompilyator iverilog maye klyuch t target yakim mozhna zadati tip kompilyaciyi kodogeneraciyi Za umovchannyam vikoristovuyetsya tip cilovogo fajlu vvp tobto generaciya kodu dlya virtualnoyi mashini vvp cej variant opisano vishe Vkazavshi inshu cil mozhna vikonati taki diyi Perevirka sintaksisu Cil null klyuch t null vimikaye vlasne kodogeneraciyu provoditsya lishe analiz vhidnih fajliv Cyu cil zruchno vikoristovuvati dlya perevirki sintaksisu protyagom redaguvannya fajliv proektu Generaciya VHDL fajlu Cil vhdl klyuch t vhdl priznacheno dlya konvertaciyi Verilog fajliv u vidpovidnij yim VHDL kod Napriklad iverilog t vhdl o shiftreg vhdl shiftreg v Cej viklik kompilyatora z fajlom shiftreg v z opisanogo vishe prikladu stvorit fajl shiftreg vhdl This VHDL was converted from Verilog using the Icarus Verilog VHDL Code Generator 0 9 2 v0 9 2 library ieee use ieee std logic 1164 all use ieee numeric std all use std textio all Generated from Verilog module shiftreg shiftreg v 1 entity shiftreg is port clk in std logic q out unsigned 4 downto 0 end entity Generated from Verilog module shiftreg shiftreg v 1 architecture FromVerilog of shiftreg is signal q Reg unsigned 4 downto 0 begin q lt q Reg Generated from always process in shiftreg shiftreg v 6 process clk is begin if rising edge clk then q Reg lt q Reg 0 3 downto 0 amp q Reg 1 1 downto 1 00 end if end process end architecture Vstanovlennya programiVstanovlennya programi Icarus Verilog mozhe buti vikonane dvoma sposobami vstanovlennya gotovih vikonuvanih fajliv ta samostijne zbirannya z vihidnih tekstiv Vstanovlennya dvijkovih fajliv Dlya pererahovanih vishe operacijnih sistem isnuyut vzhe gotovi pakunki Icarus Verilog Dlya Unix podibnih OS yak sam Icarus tak i neobhidna dlya zruchnoyi roboti programa pereglyadu GTKWave prisutni u shovishi program cih sistem Zbirannya testuvannya ta onovlennya pakunkiv provodit grupa pidtrimki vidpovidnogo distributivu Vstanoviti programi mozhna koristuyuchis menedzherom pakunkiv sistemi napriklad v Ubuntu mozhna skoristatisya grafichnim interfejsom do menedzhera pakunkiv Synaptic abo vstanoviti neobhidni programi z komandnogo ryadka komandoyu sudo apt get install verilog gtkwave Dlya Windows pidtrimku zbirannya paketiv vzyav na sebe Pablo Bleyer Kocik Z jogo sajtu mozhna zavantazhiti instalyatori stabilnih versij programi j tak zvanij development snapshot rezultat kompilyaciyi znimka stanu vihidnih kodiv programi na pevnu datu yakij vklyuchaye v sebe najsvizhishi mozhlivosti programi ale mozhe pracyuvati nestabilno Do skladu instalyatoriv vklyucheno i Windows versiyu programi GTKWave Programi zibrano paketom MinGW Vstanovlennya dodatkovih komponentiv ne potribne Kompilyaciya z vihidnogo kodu Icarus Verilog ye konsolnoyu programoyu napisanoyu takim chinom shob minimalno zalezhati vid operacijnoyi sistemi Prote programu rozrahovano na otochennya UNIX podibnih sistem ta vidpovidni biblioteki V operacijnij sistemi Windows dlya zbirannya paketa mozhna vikoristati seredovisha MinGW ta Cygwin Vihidni kodi mozhna otrimati z repozitoriyu IcarusVerilog na sajti GitHub U kerivnictvi zi vstanovlennya dano rekomendaciyi shodo kompilyaciyi programi dlya Linux Windows FreeBSD Mac OS X ta OpenSolaris Primitki Arhiv originalu za 17 serpnya 2016 Procitovano 6 serpnya 2016 Release 12 0 2023 Perelik moduliv rozshirennya plaginiv Icarus Verilog 19 lipnya 2013 u Wayback Machine angl V Linuks divis perelik u fajli usr share doc iverilog copyright Arhiv originalu za 9 travnya 2012 Procitovano 27 lipnya 2013 Arhiv originalu za 14 grudnya 2019 Procitovano 4 serpnya 2013 Klyuchi kompilyatora iverilog 17 travnya 2013 u Wayback Machine angl IEEE Standard for Verilog Hardware Description Language Div fajli dokumentaciyi iverilog man iverilog u Linuks ta fajl C iverilog devel share man man1 iverilog 1 u Windows IEEE Standard for SystemVerilog Unified Hardware Design Specification and Verification Language Arhiv originalu za 9 bereznya 2016 Procitovano 1 serpnya 2013 Klyuchi virtualnoyi mashini simulyatora vvp 30 listopada 2012 u Wayback Machine angl Arhiv originalu za 23 lipnya 2013 Procitovano 1 serpnya 2013 Shovishe proektu IcarusVerilog 1 chervnya 2016 u Wayback Machine na sajti GitHub Kerivnictvo po vstanovlennyu Icarus Verilog 17 travnya 2013 u Wayback Machine angl PosilannyaOficijnij sajt Icarus Verilog 7 grudnya 2020 u Wayback Machine angl Wiki proektu Icarus Verilog 29 veresnya 2013 u Wayback Machine angl na sajti Wikia Shovishe vihidnih kodiv proektu IcarusVerilog 1 chervnya 2016 u Wayback Machine na sajti GitHub Storinka Icarus Verilog 6 serpnya 2020 u Wayback Machine angl na sajti SourceForge net Icarus Verilog dlya Windows 23 lipnya 2013 u Wayback Machine angl na personalnomu sajti Pablo Bleyer Kocik Michael Baxter Open Source in Electronic Design Automation Linux Journal Vip 82 lyutij 2001 9 travnya 2012 u Wayback Machine angl Stephen Williams Michael Baxter Icarus Verilog Open Source Verilog More Than a Year Later Linux Journal Vip 99 lipen 2001 16 veresnya 2012 u Wayback Machine angl