
В последнее время повышенным интересом пользуются статьи, затрагивающие аспекты работы с процессорами, имеющими архитектуру RISC-V. В предыдущих статьях: Создание процессора со свободной архитектурой RISC-V. Часть 1. и Создание процессора со свободной архитектурой RISC-V. Часть 2. мы рассказывали о примере аппаратной реализации процессора с архитектурой RISC-V с использованием программируемых вентильных матриц.
В данной статье, мы установим GNU С++ компилятор, создадим и настроим первый проект для архитектуры RISC-V.

В далеком 2015 году, в нашей статье Первый проект для VE-EP4CE10E. Часть 1. мы рассказывали о установке связки IDE Eclipse и свободного компилятора GNU ARM GCC. В принципе, за это время, появился фирменный пакет для разработки от компании ST Microelectronics под названием System Workbench For STM32. В одной из статей мы обязательно расскажем о нем. Но у нас проекты не только для контроллеров STM32. Поэтому начиная новый проект, мы решили обновить используемые нами инструменты до актуальной версии. Как оказалось, за 5 лет многие пункты нашей статьи устарели, поэтому представляем Вашему вниманию обновленную инструкцию:

Во время написания нашей статьи Реализация упрощенного протокола TCP с использованием NIOS II неожиданно вышла новая версия Intel® Quartus® Prime Design Software v19.1. Не долго думая мы решили перейти на новую версию пакета разработки от компании Intel. В принципе никто ни каких подводных камней не ожидал. Все прошлые версии Intel® Quartus® обновлялись без каких-либо проблем. Но в этот раз все пошло не по плану )))) Как оказалось, теперь для установки требуется Windows Subsystem for Linux. Если вам интересен процесс установки новой версии пакета Intel® Quartus®, добро пожаловать под кат!

В данном проекте мы создадим систему на основе софт процессора Nios II, ядро Ethernet-интерфейса с поддержкой скоростей 10/100/1000, контроллер SGDMA, контроллер SDRAM и другие аппаратные компоненты для передачи и приема TCP пакетов. В дизайн добавлены два модуля фазовой автоподстройки частоты для генерации тактовых сигналов с различными частотами, чтобы тактировать трехскоростную систему Ethernet (которая реализует функцию MAC) для работы на скорости 10/100/1000 Мбит/с. После сборки аппаратной системы и загрузки схемы в ПЛИС, мы запустим прикладную программу, написанную на языке Си. На основе входных сигналов от платы наша программа устанавливает и закрывает TCP-соединение, передает и принимает кадры данных от порта Ethernet платы. Кадры Ethernet передаются на основе протокола Stop and Wait, а таймер процессора NIOS используется для повторной передачи кадров после таймаута.

После некоторых раздумий я решил написать статью о симуляции Verilog проектов с помощью пакета программ icarus-verilog. Мне кажется, что это лучший способ «быстро попробовать» возможности симуляции. Конечно, среда симуляции ModelSim компании Mentor Graphics (или ModelSim-Altera Edition) - это мощное средство, но освоить ее несколько труднее.
Сейчас мы быстренько скачаем из интернета icarus-verilog, установим его и попробуем что нибудь просимулировать...
Первое, что нужно сделать – это посетить сайт http://www.icarus.com/eda/verilog/ - отправная точка для изучения Icarus Verilog. Это свободный проект, то есть при желании можно даже посмотреть исходные тексты всех программ, и компилятора и симулятора Verilog. Здесь есть ссылки на документацию и откуда скачивать файлы для установки. Конечно, есть пакеты программ и для Linux и для Windows.

На нашем сайте уже было несколько ознакомительных статей по языку описания аппаратуры Verilog.
Конечно, в тех ознакомительных статьях было невозможно рассказать все. Именно поэтому я продолжаю освещать некоторые возможности и особенности языка Verilog.
Сейчас речь пойдет о специальных ключевых словах языка Verilog, используемых для симуляции проектов. Симуляция очень важный этап разработки. Перед проверкой проекта в чипе FPGA или CPLD очень желательно промоделировать поведение всех его модулей.