Skip to content

Latest commit

 

History

History
149 lines (92 loc) · 8.61 KB

README_ru.md

File metadata and controls

149 lines (92 loc) · 8.61 KB

Сборник задач на SystemVerilog для Школы Синтеза Цифровых Схем

English

Ни дня без строчки на Верилоге

Сборник задач увеличивающейся сложности

Юрий Панчул, 2021-2024

Ссылки

Инструкция по установке

Задачи можно решать с любым симулятором верилога, который поддерживает SystemVerilog. А также c бесплатным симулятором Icarus Verilog, который хотя и не поддерживает весь SystemVerilog, но поддерживает Verilog 2005 с некоторыми элементами SystemVerilog, достаточных для решения наших задач. Icarus Verilog что используют с GTKWave, программой для работы с временными диаграммами. Для первых десяти задач GTKWave нам не понадобится, но его стоит установить вместе с Icarus Verilog на будущее.

Установка на Linux

Под Ubuntu и Simply Linux можно установить Icarus Verilog и GTKWave с помощью команды:

sudo apt-get install verilog gtkwave


Замечание:

Если у вас старая версия дистрибутива Linux (Ubuntu), то при установке Icarus Verilog вы получите старую версию, которая не поддерживает always_comb, always_ff и многие другие конструкции SystemVerilog. Как решить эту проблему:

  1. Проверка версии iverilog

    iverilog -v

    Если версия iverilog меньше 11, переходим к пункту 2.

  2. Установка предварительных пакетов

    sudo apt-get install build-essential bison flex gperf readline-common libncurses5-dev nmon autoconf
  3. Скачивание последней версии iverilog

    На сегодняшний момент (12.10.2023) последняя версия iverilog: 12.0 Переходим по ссылке и скачиваем архив.

  4. Сборка 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

Дополнительно для проверки кода на некоторые синтаксические и стилистические ошибки можно установить Verilator (версии 5.002+).

Для Ubuntu 23.04 и выше:

sudo apt-get install verilator

Для более ранних версий Ubuntu или других дистрибутивов можно установить Verilator вместе с OSS CAD SUITE

В OSS CAD SUITE для настройки окружения рекомендуется использовать export PATH="<extracted_location>/oss-cad-suite/bin:$PATH", так как source <extracted_location>/oss-cad-suite/environment потребует дополнительного unset VERILATOR_ROOT

Для проверки добавьте опцию --lint или -l к скрипту: ./run_linux_mac.sh --lint

Результат появится в файле lint.txt


Установка на Windows

Версию Icarus Verilog для Windows можно загрузить с данного сайта

Видео инструкция по установке Icarus Verilog на Windows

Установка на Apple Mac

Icarus можно поставить даже на Apple Mac, что необычно для EDA инструментация (EDA - Electronic Design Automation). Это можно сделать в консоли с помощью программы brew:

brew install icarus-verilog

Видео инструкция по установке Icarus Verilog на MacOS

Выполнение и проверка заданий

Для проверки задач под Linux и MacOS, необходимо открыть консоль в папке с заданиями и запустить скрипт ./run_linux_mac.sh. Он создаст файл log.txt с результатами компиляции и симуляции всех задач набора.

Для проверки задач под Windows необходимо открыть консоль в папке с заданиями и запустить пакетный файл run_windows.bat. Он так же создаст файл log.txt с результатами проверки.

После того, как тест для всех задачек покажет PASS, вы можете передать его на проверку преподавателю.

Альтернатива GTKWave

Вместо GTKWave можно использовать программу для просмотра диаграмм Surfer.

Surfer выглядит гораздо лучше на современных мониторах (особенно в Wayland), работает быстрее и может использоваться из браузера без установки.

Surfer

Рекомендуемая литература, которая поможет в решении задач

  1. Харрис Д.М., Харрис С.Л., «Цифровая схемотехника и архитектура компьютера: RISC-V». К ней есть версия для планшета для предыдущего издания (на основе архитектуры MIPS), а к той есть более короткие слайды для лекций.

  2. Романов А.Ю., Панчул Ю.В. и коллектив авторов. «Цифровой синтез. Практический курс»