1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/xshadower-riscv-fpga-toolchain

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README.md 9 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 24.11.2024 02:34 c7df0f0

riscv-fpga-toolchain

Введение

Tinyriscv — простой и понятный, исходный документ автора превосходен. Здесь tinyriscv переносится на платформу разработки на основе отечественного FPGA (Anlogic Tang). Эта компиляция объединит цепочку инструментов RISC-V, компилятор Windows x86 TCC (разработка инструментов для стороны Windows), среду моделирования Iverilog и т. д. Эта цепочка инструментов поддерживает только Windows.

Tinyriscv: https://gitee.com/liangkangnan/tinyriscv

Anlogic Tang введение и ресурсы: https://wiki.sipeed.com/hardware/tang/zh/

Руководство Anlogic Tang: http://tang.lichee.pro/

TCC: https://bellard.org/tcc/

Iverilog/GTKwave версия для Windows: http://bleyer.org/icarus/

Ресурсы tinyriscv на плате Tang могут работать с максимальной памятью 48M (выше 48M, ядро может работать с кодом, но JTAG может нормально обращаться к RAM и периферийным устройствам).

avatar avatar

В среде TD разработка всего RTL-компиляции занимает около 8 минут.

Структура каталогов

sdk — содержит среду Tinyriscv sdk.

fpga — каталог, содержащий соответствующий код Verilog, проект TD, а также код и сценарии моделирования. Каталог sim содержит код моделирования, каталог test содержит соответствующий тестовый код C, каталог tb содержит тестовые скрипты Verilog (согласуется с tinyriscv).

tools — каталог, в котором хранятся инструменты и цепочки инструментов.

Аппаратные зависимости

  1. Плата разработки Anlogic Tang FPGA. avatar

  2. Имитатор cmsis-dap (имитатор поставляется с USB-преобразователем последовательного порта) или имитатор jlink (jlink не может напрямую использовать команду jlink или ozone для отладки RV, необходимо настроить jlink как openocd, который можно вызывать, см. эту статью для настройки https://blog.csdn.net/qingwufeiyang12346/article/details/45954595). avatar

  3. USB-последовательный порт (отладочный последовательный порт).

Программные зависимости

  1. Для компиляции проекта FPGA необходимо установить среду разработки TD. Если вы хотите запустить сценарий для компиляции, вам необходимо добавить путь установки к переменной среды PATH (процесс установки будет предлагать).
  2. Если вам нужно моделирование, вам необходимо установить Iverilog и добавить путь установки в переменную среды PATH.

Использование

Компиляция FPGA
  1. Перейдите непосредственно в каталог fpga и откройте prove.al, чтобы скомпилировать проект с помощью IDE TD.
  2. Запустите cmd.bat, откройте окно командной строки и запустите скрипт fpga_compile.bat для компиляции. Этот скрипт вызывает fpga/compile.tcl для компиляции.
Компиляция SDK

Запустите cmd.bat, откройте командное окно и запустите скрипт sdk.bat для компиляции библиотеки. После завершения компиляции запустите make test для компиляции тестового проекта. По завершении компиляции в корневом каталоге будет создана папка out, и выходные файлы elf, bin, dump и другие будут помещены в соответствующие папки в папке out.

Моделирование
  1. Запустите cmd.bat, откройте окно командной строки, перейдите в каталог fpga/sim и при необходимости отдельно скомпилируйте, запустив команду compile_rtl.py .. для запуска компиляции Iverilog RTL. (Примечание: по умолчанию PLL включён, компиляция не пройдёт, необходимо удалить связанный с PLL код для моделирования, как показано на рисунке ниже, часть, связанная с clk, должна быть изменена). avatar

  2. Запустите sim_new_nowave.py ../tests/example/simple/simple.bin inst.data для создания файла inst.data (необходимо сначала перейти в каталог tests/example/simple и запустить make для компиляции), а затем запустить компиляцию.

  3. Запустите fpga/sim/sim.bat, чтобы автоматически открыть инструмент GTKWave для просмотра формы сигнала моделирования. Как показано на рисунке ниже. avatar

Отладка
  1. Используйте IDE TD или сценарий для загрузки сгенерированного битового файла на целевую плату.
  2. Запустите cmd.bat, откройте окно командной строки и запустите скрипт openocd.bat. Этот скрипт вызовет openocd с использованием tinyriscv_jlink.cfg (если используется cmsis-dap, его необходимо изменить на tinyriscv_cmsisdap.cfg), и он будет работать нормально, как показано ниже. avatar
  3. Запустите скрипт putty.bat и выберите telnet, как показано ниже.
  4. Введите команды в окне putty для отладки. Ниже приведены некоторые часто используемые команды отладки openocd:
halt	- приостановить работу процессора
reset	- сбросить целевую плату
resume 	- возобновить выполнение
resume 0x123456   - возобновить выполнение с адреса 0x123456
reg <register>    - вывести значение регистра

load_image <File Name> <Addr>	   - записать двоичный файл по указанному адресу
пример: load_image image.bin 0x4000000 - записать image.bin по адресу 0x4000000

dump_image <File Name> <Addr> <Size> 

verify_image <File Name> <Addr> [bin|ihex|elf] 	

step [Addr]	- без адреса: выполнить один шаг с текущего местоположения; с адресом: выполнить один шаг с адреса Addr
poll		- запросить состояние целевой платы
bp <Addr> <Length> [hw] - установить точку останова по адресу Addr, длина инструкции равна Length, hw представляет собой аппаратную точку останова
rbp <Addr>		 - удалить точку останова в адресе Addr

mdw <Addr> [Count]  - отобразить Count (по умолчанию 1) слов (4 байта) из физического адреса Addr
mdh <Addr> [Count]  - отобразить Count (по умолчанию 1) полуслов (2 байта) из физического адреса Addr
mdb <Addr> [Count]  - отобразить Count (по умолчанию 1) байт из физического адреса Addr
mww <Addr> <Value>  - записать Value в физический адрес Addr, размер: одно слово (4 байта)
mwh <Addr> <Value>  - записать Value в физический адрес Addr, размер: половина слова (2 байта)
mwb <Addr> <Value>  - записать Value в физический адрес Addr, размер: один байт

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/xshadower-riscv-fpga-toolchain.git
git@api.gitlife.ru:oschina-mirror/xshadower-riscv-fpga-toolchain.git
oschina-mirror
xshadower-riscv-fpga-toolchain
xshadower-riscv-fpga-toolchain
master