MPSU / MIRISCV

Открытое RISC-V процессорное ядро MIRISCV для образовательных целей

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

MIRISCV CORE

MIRISCV - это процессорное ядро, которое поддерживает ISA RV32IM.

Структурная схема MIRISCV core

Основные характеристики

  • Поддержка стандартов ISA RV32I и RV32M
  • Только machine privilege mode
  • 4-х стадийный конвейер
  • Настроенное окружение под проверку CoreMark
  • Написан на SystemVerilog
  • Подробная документация

Содержимое репозитория

Директория Описание
doc Документация на проект
├─ miriscv Документация на блоки ядра
├─ performance_analysis Инструкции для расчёта удельной производительности процессорного ядра
└─ verification Документация на верификационное окружение
miriscv Исходные коды ядра MIRISCV и окружения для CoreMark
├─ rtl Исходные коды ядра MIRISCV
├─ sw Скомпилированный тест CoreMark
├─ tb Файл тестбенча
├─ testsoc Простая SoC для тестирования ядра и оценки производительности
├─ xdc Файл с ограничениями дизайна
└─ Makefile Makefile для запуска CoreMark
miriscv_verification Верификационное окружение
├─ core_miriscv Скрипты и дополнительные файлы для запуска верификации
└─ ibex Дополнительные скрипты и генератор RISCV инструкций

Работа с ядром MIRISCV

Информация о взаимодействии с окружением ядра MIRISCV находится в руководстве пользователя. Там же описаны способы верификации ядра.

Информацию о блоках ядра MIRISCV можно найти в документации на ядро MIRISCV откуда можно перейти на каждый отдельный блок.

Информацию о запуске CoreMark и подсчёта удельной производительности дизайна можно посмотреть в performance_analysis

Информацию о работе с логами можно найти в соответствующем руководстве. Перед прочтением этого руководства предполагается, что вы ознакомились с руководством пользователя.

О суперскалярности MIRISCV можно узнать здесь.

Как подключиться к серверу

    Гайд по подключению к серверу

      Если вы находитесь в локальной сети МИЭТ, т.е. сидите со стационарных компьютеров внутри МИЭТа или внутренного WiFi, тогда проигнорируйте следующий спойлер, иначе раскройте его.

      VPN
      • Подключитесь к МИЭТовской сети через OpenVPN.
      miet_vpn.png
      • Откроется следующее окно, в котором нужно будет ввести логин и пароль от МИЭТовской учётки.
      miet_vpn_connect.png
      • Успешное подключение выглядит так:
      miet_vpn_connect_success.png
    • Запустите TigerVNC

    Нужно будет ввести данный IP, но со своим значением порта. Номер порта и пароль выдаётся организаторами.

    Например: 82.179.178.13:0113

    Номер порта – 4 цифры.

    VNC_Viewer.png
    • После выскочит окно для ввода пароля, пароль будет выдан в первый день хакатона:
    VNC_Viewer_password.png
    • Успешное подключение к удалённой машине выглядит так:
    VNC_Viewer_success.png

Начало работы с репозиторием

При первом подключении на сервер необходимо выполнить все последующие шаги. Приблизительное время настройки - 5 минут.

В аккаунте GitHub команды, лежит репозиторий, в нем вы можете делать, что угодно. В частности, вы можете создавать и редактировать файлы из интерфейса GitHub, или склонировать репозиторий и работать с ним со своего компьютера.

Чтобы иметь доступ к этому функционалу нужно провести следующий ряд подготовительных работ.

  • Сначала сгенерируем ssh ключ. В терминале Linux прописываем команду, чтобы сгенерировать SSH-ключ:
ssh-keygen
  • На все дальнейшие запросы нажимаем Enter, ничего более не вводя. В терминал выдаст текст похожий на рисунок снизу.

ssh-keygen_console.png

Что такое SSH ключ?

Мы сгенерировали SSH-ключ. Он нужен, чтобы получить доступ к проектам на GitHub со своего компьютера и выполнять команды без постоянного ввода пароля, нужно, чтобы сервер нас узнавал.

  • Чтобы вывести на экран сгенерированный ключ введём следующую команду:
$ cat ~/.ssh/id_rsa.pub

Хочется отметить, важно, чтобы был скопирован именно публичный SSH-ключ, он отличается от приватного наличием ".pub" в конце!

После выполнения команды в терминале вы увидите длинную строку:

$ ssh-rsa <последовательность символов ключа>
  • Этот ключ надо добавить в GitHub. Полностью выделяйте и копируйте его. Буфер обмена между удаленным рабочим столом и локальным компьютером должен работать. При возникновении проблем убедитесь, что на локальном компьютере у вас выбрана английская раскладка.
Как добавить SSH ключ в GitHub?
  • Заходим в Settings в GitHub
github_settings.png

  • Оттуда переход в раздел "SSH and GPG keys"
github_SSH_and_GPG_keys.png

  • Нажимаем на кнопку "New SSH key"
github_new_ssh.png

  • В поле Title вписывайте то, как вы хотите назвать машину, с которой сидите в данный момент.
  • В поле Key вставьте скопированный публичный SSH-ключ
  • Нужно вписать следующие две команды для git
$ git config --global user.name "<имя пользователя>"
$ git config --global user.email <почта пользователя>

Например:

$ git config --global user.name "John Doe"
$ git config --global user.email johndoe@example.com
Зачем я прописал что-то в git config?

Нам нужно указать имя и адрес электронной почты. Это важно, потому что каждый коммит в Git содержит эту информацию, и она включена в коммиты, передаваемые вами, и не может быть далее изменена.

Все приготовления завершены, мы добились желаемого функционала, а именно вы можете создавать и редактировать файлы из интерфейса GitHub, или склонировать репозиторий и работать с ним со своего устройства.

Осталось пару шагов

  • Склонируйте репозиторий

Для этого скопируйте ссылку на репозиторий, как показано на рисунке ниже

git_clone.png

И введите в терминал следующие команды:

$ cd ~/
$ git clone <скопированная ссылка>
  • Перейдите в скаченный репозиторий
$ cd miriscv_hackathon

Готово, вы находитесь в скаченном репозитории, с которым вольны делать, что вам захочется. Успехов!

About

Открытое RISC-V процессорное ядро MIRISCV для образовательных целей

License:Other


Languages

Language:Assembly 46.7%Language:SystemVerilog 39.2%Language:Python 3.6%Language:VHDL 3.0%Language:C++ 2.1%Language:Tcl 2.0%Language:Makefile 1.5%Language:C 1.1%Language:Shell 0.4%Language:Filebench WML 0.2%Language:Forth 0.1%Language:Stata 0.1%Language:Batchfile 0.0%Language:Verilog 0.0%Language:Jinja 0.0%