Ни дня без строчки на Верилоге
Сборник задач увеличивающейся сложности
Юрий Панчул, 2021-2023
- Школа Синтеза Цифровых Схем
- Занятие первое: введение в маршрут проектирования и упражнения с комбинационной логикой
Задачи можно решать с любым симулятором верилога, который поддерживает SystemVerilog. А также c бесплатным симулятором Icarus Verilog, который хотя и не поддерживает весь SystemVerilog, но поддерживает Verilog 2005 с некоторыми элементами SystemVerilog, достаточных для решения наших задач. Icarus Verilog что используют с GTKWave, программой для работы с временными диаграммами. Для первых десяти задач GTKWave нам не понадобится, но его стоит установить вместе с Icarus Verilog на будущее.
Под Ubuntu и Simply Linux можно установить Icarus Verilog и GTKWave с помощью команды:
sudo apt-get install verilog gtkwave
Если у вас старая версия дистрибутива Linux (Ubuntu), то при установке Icarus
Verilog вы получите старую версию, которая не поддерживает always_comb
,
always_ff
и многие другие конструкции SystemVerilog. Как решить эту проблему:
-
Проверка версии iverilog
iverilog -v
Если версия iverilog меньше 11, переходим к пункту 2.
-
Установка предварительных пакетов
sudo apt-get install build-essential bison flex gperf readline-common libncurses5-dev nmon autoconf
-
Скачивание последней версии iverilog
На сегодняшний момент (12.10.2023) последняя версия iverilog: 12.0 Переходим по ссылке и скачиваем архив.
-
Сборка iverilog
-
Распакуйте архив:
tar -xzf verilog-12.0.tar.gz
-
Войдите в разархивированную папку:
cd verilog-12.0
-
Сконфигурируйте iverilog:
./configure --prefix=/usr
-
Протестируйте сборку Icarus
make check
В результате, в терминале появится несколько надписей
Hello, world!
-
Установите Icarus
sudo make install
-
Дополнительно для проверки кода на некоторые синтаксические и стилистические ошибки можно установить Verilator (версии 5.002+).
Для Ubuntu 23.04 и выше:
sudo apt-get install verilator
Для более ранних версий Ubuntu или других дистрибутивов можно установить Verilator вместе с OSS CAD SUITE
Для проверки добавьте опцию --lint
к скрипту:
./run_all_using_iverilog_under_linux_or_macos_brew.sh --lint
Результат появится в файле lint.txt
Версию Icarus Verilog для Windows можно загрузить с данного сайта
Видео инструкция по установке Icarus Verilog на Windows
Icarus можно поставить даже на Apple Mac, что необычно для EDA инструментация (EDA - Electronic Design Automation). Это можно сделать в консоли с помощью программы brew:
brew install icarus-verilog
Видео инструкция по установке Icarus Verilog на MacOS
Для проверки задач под Linux и MacOS, необходимо открыть консоль в папке с заданиями и запустить скрипт ./run_all_using_iverilog_under_linux_or_macos_brew.sh
. Он создаст файл log.txt с результатами компиляции и симуляции всех задач набора.
Для проверки задач под Windows необходимо открыть консоль в папке с заданиями и запустить пакетный файл run_all_using_iverilog_under_windows.bat
. Он так же создаст файл log.txt с результатами проверки.
После того, как тест для всех задачек покажет PASS, вы можете передать его на проверку преподавателю.
-
Харрис Д.М., Харрис С.Л., «Цифровая схемотехника и архитектура компьютера: RISC-V». К ней есть версия для планшета для предыдущего издания (на основе архитектуры MIPS), а к той есть более короткие слайды для лекций.
-
Романов А.Ю., Панчул Ю.В. и коллектив авторов. «Цифровой синтез. Практический курс»