❝https://riscv.org/
RISC-V (читай после меня: «риск-пять») — это архитектура набора команд с открытым исходным кодом (ISA), основанная на принципах сокращенного набора команд (RISC).
Здесь следует уточнить два понятия: спецификация набора команд (Specification) и реализация процессора (Implementation) — это два понятия разных уровней, и их следует различать. Набор инструкций (ISA) — это стандарт спецификации, который часто записывается и описывается в книге или нескольких листах бумаги, тогда как реализация процессора представляет собой исходный код, завершенный на основе спецификации набора команд. RISC-V — это спецификация набора команд.
Основываясь на наборе команд x86/ARM/RISC-V, мы можем спроектировать и реализовать микроархитектуру процессора для формирования исходного кода и, наконец, сформировать микросхему посредством записи на ленту. Спецификации набора команд и права интеллектуальной собственности, реализуемые процессором, независимы и их нельзя путать.
«RISC-V имеет открытый исходный код» означает, что спецификация набора команд является открытым исходным кодом, открытой и бесплатной (открытой и бесплатной), что существенно отличается от наборов команд x86 и ARM, но это не означает, что конкретная реализация процессора является открытой и бесплатной. также с открытым исходным кодом и бесплатно.
На основе спецификации набора команд RISC-V сообщество открытого исходного кода может либо разработать бесплатную версию реализации процессора с открытым исходным кодом (например, ядро Rocket, разработанное Беркли и т. д.), либо коммерческая компания может разработать платную авторизованную версию. реализации процессора (например, отечественный Pingtou Ge Xuantie 910, ядро Xinlai N200 и ядро USi Weihe WH-32 и т. д.).
(Источник выше: https://mp.weixin.qq.com/s/9PX5n_ZPjWM1OyqnijlIPw, авторские права принадлежат автору статьи)
В настоящее время многие отечественные институты и компании занимаются соответствующей работой над архитектурой RISC-V. Xinlai и Pingtou занимаются IP. GigaDevice запустила специальную линейку продуктов GD32VF103 на основе Xinlai N200. Некоторые компании работают над Pingtou на основе IP Xinlai Brother. используется в качестве SoC, Canaan Technology выпустила его в прошлом году С выпуском K210, предназначенного для аудио и видео AI, компания Zhongke Lanxun выпустила серию чипов Bluetooth на основе архитектуры RISC-V с огромными поставками. Она утверждает, что является первой компанией в мире с более чем 100 миллионами RISC-чипов. V, и все они оснащены отечественной операционной системой IoT RT-Thread с открытым исходным кодом. Публичный аккаунт: OpenFPGA
(Ссылка на источник выше: https://www.zhihu.com/question/274106611/answer/975894883, авторские права принадлежат автору)
более полныйиз Сводный вид《Знакомство с архитектурой набора команд RISC-V и знакомство с отечественными и зарубежными производителями》。
Следующее примерно отсортировано по сложности реализации:
Полное описание проекта:
❝https://liangkangnan.gitee.io/2020/04/29/%E4%BB%8E%E9%9B%B6%E5%BC%80%E5%A7%8B%E5%86%99RISC-V%E5%A4%84%E7%90%86%E5%99%A8/ ❞
Реализовано одноядерное 32-битное небольшое процессорное ядро RISC-V (tinyriscv), написанное на языке verilog. Целью разработки является тестирование процессоров серии ARM Cortex-M3. tinyriscv имеет следующие возможности:
общая архитектура
❝https://gitee.com/liangkangnan/tinyriscv ❞
Подробные инструкции по дизайну на китайском языке, очень подходят для начала работы!
❝https://github.com/ridecore/ridecore
RIDECORE (RISC-v Dynamic Execution CORE) — процессор RISC-V с нарушением порядка, написанный на Verilog HDL.
RIDECORE из Микроархитектура основана на“Современный дизайн процессора:суперскалярный процессориз База”(https://www.waveland.com/browse.php?t=624&r=d|259)。поэтому,Мы рекомендуемиспользоватьсемьясуществоватьделатьиспользовать RIDECORE Прочтите эту книгу и нашу документацию, прежде чем (doc/ridecore_document.pdf)。
На данный момент прототип нашей FPGA был создан на плате Xilinx VC707. Прототип может работать на тактовой частоте 50 МГц.
Структура райдкода следующая:
RISC-V, который можно «пощупать».
Небольшое ядро ЦП RISC-V, реализованное с использованием SystemVerilog. Это версия RV-CPU с AHB и кешем (полный список команд RV32I (без Fence, Fence.i, ecall, ebreak)).
nanoFOX в настоящее время работает на следующих платах FPGA:
Вся папка проекта организована очень четко, каждая плата имеет отдельную папку, а файлы моделирования готовы. Сборка проекта также проста, и ее стоит попробовать.
Ссылки:
Адрес проекта
❝https://github.com/Dmitriy0111/nanoFOX
Внедрите RISC-V с открытым исходным кодом с нуля за одну ночь!
Хотя код небольшой и грубый по сравнению с другими реализациями RISC-V, он очень удобен (прост) для новичков или новичков в RISC-V. Несмотря на свою простоту, DarkRISCV обладает множеством впечатляющих функций:
Не могу дождаться, чтобы попробовать!
❝https://github.com/darklife/darkriscv
На самом деле, это не нуждается в представлении, это небольшой и полноценный RISC-V.
PicoRV32 — это ядро ЦП, реализующее набор инструкций RISC-V RV32IMC. Он может быть сконфигурирован как ядро RV32E, RV32I, RV32IC, RV32IM или RV32IMC и дополнительно включает встроенный контроллер прерываний.
Функции:
❝Официальный адрес: https://bitbucket.org/casl/shakti_public.
❝https://github.com/cliffordwolf/picorv32
CVA6 — это 6-уровневый ЦП, реализующий 64-битный набор инструкций RISC-V. Он полностью реализует расширения I, M, A и C, как описано в Томе I: User-Level ISA V 2.3 и Privilege Extensions Draft 1.10. Он реализует три уровня разрешений M, S, U для полной поддержки Unix-подобных операционных систем. Публичный аккаунт: OpenFPGA
Он имеет настраиваемый размер, отдельный TLB, аппаратный PTW и прогнозирование ветвей (целевой буфер ветвей и таблица истории ветвей). Основная цель разработки — уменьшить длину критического пути.
❝https://github.com/openhwgroup/cva6
Реализация RISC-V, написанная на SpinalHDL. Вот некоторые характеристики:
Ниже представлена наибольшая частота работы и потребляемые ресурсы:
VexRiscv small (RV32I, 0.52 DMIPS/Mhz, no datapath bypass, no interrupt) ->
Artix 7 -> 243 Mhz 504 LUT 505 FF
Cyclone V -> 174 Mhz 352 ALMs
Cyclone IV -> 179 Mhz 731 LUT 494 FF
iCE40 -> 92 Mhz 1130 LC
VexRiscv small (RV32I, 0.52 DMIPS/Mhz, no datapath bypass) ->
Artix 7 -> 240 Mhz 556 LUT 566 FF
Cyclone V -> 194 Mhz 394 ALMs
Cyclone IV -> 174 Mhz 831 LUT 555 FF
iCE40 -> 85 Mhz 1292 LC
VexRiscv small and productive (RV32I, 0.82 DMIPS/Mhz) ->
Artix 7 -> 232 Mhz 816 LUT 534 FF
Cyclone V -> 155 Mhz 492 ALMs
Cyclone IV -> 155 Mhz 1,111 LUT 530 FF
iCE40 -> 63 Mhz 1596 LC
VexRiscv small and productive with I$ (RV32I, 0.70 DMIPS/Mhz, 4KB-I$) ->
Artix 7 -> 220 Mhz 730 LUT 570 FF
Cyclone V -> 142 Mhz 501 ALMs
Cyclone IV -> 150 Mhz 1,139 LUT 536 FF
iCE40 -> 66 Mhz 1680 LC
VexRiscv full no cache (RV32IM, 1.21 DMIPS/Mhz 2.30 Coremark/Mhz, single cycle barrel shifter, debug module, catch exceptions, static branch) ->
Artix 7 -> 216 Mhz 1418 LUT 949 FF
Cyclone V -> 133 Mhz 933 ALMs
Cyclone IV -> 143 Mhz 2,076 LUT 972 FF
VexRiscv full (RV32IM, 1.21 DMIPS/Mhz 2.30 Coremark/Mhz with cache trashing, 4KB-I$,4KB-D$, single cycle barrel shifter, debug module, catch exceptions, static branch) ->
Artix 7 -> 199 Mhz 1840 LUT 1158 FF
Cyclone V -> 141 Mhz 1,166 ALMs
Cyclone IV -> 131 Mhz 2,407 LUT 1,067 FF
VexRiscv full max perf (HZ*IPC) -> (RV32IM, 1.38 DMIPS/Mhz 2.57 Coremark/Mhz, 8KB-I$,8KB-D$, single cycle barrel shifter, debug module, catch exceptions, dynamic branch prediction in the fetch stage, branch and shift operations done in the Execute stage) ->
Artix 7 -> 200 Mhz 1935 LUT 1216 FF
Cyclone V -> 130 Mhz 1,166 ALMs
Cyclone IV -> 126 Mhz 2,484 LUT 1,120 FF
VexRiscv full with MMU (RV32IM, 1.24 DMIPS/Mhz 2.35 Coremark/Mhz, with cache trashing, 4KB-I$, 4KB-D$, single cycle barrel shifter, debug module, catch exceptions, dynamic branch, MMU) ->
Artix 7 -> 151 Mhz 2021 LUT 1541 FF
Cyclone V -> 124 Mhz 1,368 ALMs
Cyclone IV -> 128 Mhz 2,826 LUT 1,474 FF
VexRiscv linux balanced (RV32IMA, 1.21 DMIPS/Mhz 2.27 Coremark/Mhz, with cache trashing, 4KB-I$, 4KB-D$, single cycle barrel shifter, catch exceptions, static branch, MMU, Supervisor, Compatible with mainstream linux) ->
Artix 7 -> 180 Mhz 2883 LUT 2130 FF
Cyclone V -> 131 Mhz 1,764 ALMs
Cyclone IV -> 121 Mhz 3,608 LUT 2,082 FF
У VexRiscv есть официальная SoC: Briey, которая использует интерфейс AXI. Как и Rocket Chip, он поддерживает моделирование Verilator+OpenOCD+GDB. Как и Rocketchip, он использует инструмент sbt-интерпретатор Scala.
О спине,Можно просмотреть《От Verilog к SpinalHDL》。
❝https://github.com/SpinalHDL/VexRiscv
Все вышеперечисленные небольшие проекты подходят для понимания и начала работы с RISC-V. Самая большая особенность — это простота. Самое главное, что их можно запускать на платах для разработки FPGA, а требования к FPGA не высоки.
Далее идут еще несколько зрелых проектов.
Плоскоголовый брат без меча 100
Каталог документов выглядит следующим образом:
|--Project //open source project work directory
|--riscv_toolchain //tool chain install directory download from t-head.cn
|--wujian100_open //wujian100_open project get from github
|--case //test case example for simulation
|--doc //wujian100_open user guide
|--fpga //FPGA script
|--lib //compile script for simulation
|--regress //regression result
|--sdk //software design kit
|--soc //Soc RTL source code
|--tb //test bench
|--tools //simulation script and setup file
|--workdir //simulation directory
|--LICENSE
|--README.md
❝https://github.com/T-head-Semi/wujian100_open
RISC-V, разработанный Xinlai Technology. core&SOC,даSI-RISCV/e200_opensource (https://github.com/SI-RISCV/e200_opensource) Расширенная версия.
В этом репозитории размещены проекты ядра процессора Hummingbirdv2 E203 RISC-V с открытым исходным кодом и SoC, которые разработаны и открыты для использования компанией Nuclei System Technology, ведущей компанией в области IP и решений RISC-V, базирующейся в материковом Китае. Публичный аккаунт: OpenFPGA
Это обновленная версия проекта Hummingbird E203, поддерживаемая в SI-RISCV/e200_opensource, поэтому мы называем ее Hummingbirdv2 E203.
В этой новой версии мы имеем следующие обновления.
Добро пожаловать на https://github.com/riscv-mcu/hbird-sdk/, чтобы использовать комплект разработки программного обеспечения Hummingbird E203.
Добро пожаловать на https://www.rvmcu.com/community.html, чтобы принять участие в обсуждении Hummingbird E203.
❝https://github.com/SI-RISCV/e200_opensource
❝https://github.com/riscv-mcu/e203_hbirdv2
«Xiangshan» разработан на основе языка Chisel, поддерживает многоядерность, использует внеочередное выполнение, 11-уровневый конвейер и 6 запусков. Ожидается, что основная частота составит 1,3 ГГц при использовании 28-нм процесса TSMC, а основная частота — 2 ГГц при использовании 14-нм процесса SMIC. Оценка производительности составляет 7/ГГц (SEPC2006). Другими словами, первая версия архитектуры Yanqi Lake сравнивается с ARM A72/A73.
Целью архитектуры Nanhu второго поколения «Сяншань» является 10/G, а основная частота достигает 2 ГГц с использованием 14-нм процесса SMIC. По параметрам эталон архитектуры Nanhu — A76, а SPEC06 достигает 20 баллов на основной частоте 2G. Если эта цель разработки может быть достигнута, производительность центрального процессора не будет иметь аналогов среди процессоров RISC-V.
Архитектура следующая:
Домашняя страница Чжиху: https://www.zhihu.com/people/openxiangshan
Введение в долото и позвоночник «https://zhuanlan.zhihu.com/p/89249985».
❝https://github.com/OpenXiangShan/XiangShan
TreeCore — это серия простых в освоении процессоров RISC-V и связанной с ними интегрированной среды разработки на основе VSCode под названием TreeCore с богатыми, подробными и интерактивными онлайн-руководствами, подходящими для начинающих. IDE на базе VSCode объединяет функции анализа кода и моделирования сигналов, а также может автоматически находить и собирать определенные цепочки инструментов, IP-ядра и зависимости библиотек от облачных серверов для разработки процессоров или приложений.
особенность:
❝https://github.com/microdynamics-cpu/tree-core-ide
(UCB) Скалярный процессор: 64Кусочек、5-этапная сборочная линия、А вот процессор выполнения последовательности запуска, оказывается:
Rocket также написан на языке Chisel;
❝https://github.com/freechipsproject/rocket-chip
(UCB) Суперскалярный процессор выполнения вне очереди;
❝https://github.com/riscv-boom/riscv-boom
(UCB) 32-битный процессор с открытым исходным кодом для обучения. Написанный Chisel, он поддерживает 5 типов процессоров: однотактные процессоры, двухуровневые конвейерные процессоры, трехуровневые конвейерные процессоры, пятиуровневые конвейерные процессоры и процессоры, исполняемые микрокодом. Публичный аккаунт: OpenFPGA
Первые процессоры для учебных целей были написаны на языке Chisel и не имели практической коммерческой ценности. Он давно не обновлялся.
Структура относительно понятна, например описание различной глубины PipeLine (1-го, 2-го, 3-го и 5-го порядка соответственно); ее можно использовать в качестве хорошего демонстрационного кода;
❝https://github.com/ucb-bar/riscv-sodor
VARVI — это простой 32-битный процессор с открытым исходным кодом, разработанный и выпущенный энтузиастом RISC-V Томми Торном. Он реализует RV32I и использует Verilog. Цель — четко и точно реализовать RV32I.
❝https://github.com/tommythorn/yarvi
Разработано совместно ETH Zurich и Болонским университетом, Италия. 32-битный, набор инструкций: RV32I/RV32C/RV32M, расширенные многоядерные инструкции RISC-V;
❝Веб-сайт: https://www.pulp-platform.org/.
❝https://github.com/pulp-platform/pulpino
Массовый параллельный RISC-V (до 1000 ядер), 2-3-ступенчатый конвейер, 32-битный, из которых 32 процессора RISC-V реализованы на плате разработки Artix-7 35T, 80 ядер реализованы на PYNQ-; Z1 реализован 1680-ядерный RISC-V на UltraScale; исходный код не является открытым;
Говоря о RISC-V с открытым исходным кодом, мы не можем не упомянуть серию Riscy, особенно RISC-V, которая широко используется. Ibex — это ядро, созданное на основе нулевого риска, поддерживающее RV32IMC и некоторые инструкции серии Z и поддерживаемое LowRISC. Ibex небольшой и компактный, с подробной документацией и богатыми учебными материалами. Он поддерживает verilator. Вы можете использовать verilator+openOCD+GDB для отладки во время моделирования. Это очень удобно для тех, кто сильно зависит от Verilator, таких как я.
Ibex поддерживает два режима привилегий: машинный режим и пользовательский режим, которые позволяют реализовать более широкие функции, чем один машинный режим. Ibex разработан с использованием системы verilog, что является хорошей новостью для традиционных инженеров ИС. Ibex теперь также поддерживает кэш инструкций, что повышает производительность, но установка кэша сильно раздует ядро, что полезно для изучения конструкции контроллера кэша.
Ibex использует собственный интерфейс, такой как TLUL, а официальный SoC — PULP. Проект Google OpenTitan также основан на Ibex. Существует довольно много соответствующих учебных материалов по дизайну.
❝https://github.com/lowRISC/ibex
❝Документация: https://ibex-core.readthedocs.io/en/latest/introduction.html.
SweRV EH1 — одно из ядер RISC-V, разработанное WD. Оно поддерживает RV32IMC, двойной запуск, однопоточный и 9-уровневый конвейер. Производительность, как следует сказать, довольно хорошая. Он может работать на частоте 1 ГГц при 28 нм. Также имеется подробный документ, достойный выпуска крупного производителя.
SweRV разработан с использованием Verilog/System Verilog и использует интерфейс AXI. Он весьма удобен для студентов, знакомых с AMBA и не желающих изучать Chisel и Scala. И поддержите верилятор, вам должно понравиться. Стоит отметить, что SweRV имеет кеш инструкций и реализует множество пользовательских инструкций по обслуживанию кеша, которые очень стоит изучить.
❝https://github.com/chipsalliance/Cores-SweRV
Шедевр для продвинутого обучения, произведенный крупным производителем.
Официально произведено.
Международная лаборатория открытого исходного кода RISC-V (RIOS: RISC-V International Open Source Lab), возглавляемая лауреатом премии Тьюринга 2017 года профессором Дэвидом Паттерсоном, выпустила первый в мире RISC с полностью открытым исходным кодом, который может работать под управлением Linux. Проект микрокомпьютерной системы V PicoRio используется для создать более прозрачную, маломощную и легко настраиваемую высокопроизводительную платформу периферийных вычислений. Самая большая особенность PicoRio заключается в том, что все, от конструкции процессора до конструкции печатной платы и основного программного обеспечения операционной системы, имеет открытый исходный код. Базовая архитектура использует новейшую технологию набора команд RISC-V с открытым исходным кодом. В дополнение к высококачественной интеллектуальной собственности промышленного уровня с открытым исходным кодом PicoRio также предоставит эталонные проекты SoC с открытым исходным кодом и подробную документацию по интеграции. PicoRio основан на процессоре с открытым исходным кодом и поддерживается многими IP-адресами. Что касается программного обеспечения, PicoRio разработала общую архитектуру программного обеспечения с богатой операционной средой и поддержкой других программ, поэтому у нее мощная программная экосистема. Выпуск PicoRio знаменует собой переход лаборатории RIOS в стадию реального производства. После этого RIOS Lab будет стремиться создать более открытый исходный код, более низкое энергопотребление и более безопасную экосистему программного и аппаратного обеспечения в рамках экосистемы RISC-V и будет отвечать за поддержку всей аппаратной системы и архитектуры программного обеспечения PicoRio.
Проект PicoRio охватывает портирование платформы RISC-V и поддержку ядра Chromium OS и механизма JavaScript V8. Может запускать полные системы Linux и FreeRTOS. В 2021 году проект PicoRio завершит разработку и проверку чипа уровня ARM A75, который будет использоваться в планшетах/ноутбуках RISC-V, где все прикладное программное обеспечение и хранилище работают в облаке (аналогично Chromebook).
Ссылки:
Адрес проекта
❝https://rioslab.org
Эта статья изначально создана автором OpenFPGA и не может быть воспроизведена без моего разрешения!Этап завершен!
NOWДействуйте сейчас!
Наилучшая информация для изучения Xilinx FPGA — это официальное руководство. В следующей таблице обобщено основное вводное содержание некоторых руководств. Следуйте за мной, и оно будет постоянно обновляться...
имя файла | основное название | Краткое введение в содержание | Есть ли китайская версия? | |
---|---|---|---|---|
UG476 | 7 Series FPGAs GTX/GTH Transceivers | Введение в GTX и GTH, необходимое для изучения PCIe, serdes и т. д. | нет | |
UG471 | 7 Series FPGAs SelectIO Resources | Описывает ресурсы SelectIO, доступные в ПЛИС 7-й серии. | нет | |
UG1114 | PetaLinux Tools Documentaton | Справочное руководство документации PetaLinux Tools | Да, версия 2019.2. | |
UG949 | Руководство по методологии проектирования UltraFAST для Vivado Design Suite | Методология проектирования Xilinx® UltraFast™ представляет собой набор передовых методов оптимизации процесса проектирования современных устройств. Масштаб и сложность этих проектов требуют определенных шагов и задач проектирования, чтобы обеспечить успех на каждом этапе проектирования. Следование этим шагам и передовому опыту поможет вам достичь желаемых целей проектирования максимально быстро и эффективно. | Да, версия 2018.1 | |
Руководство по IP | pg057 | FIFO Generator | Руководство пользователя генератора FIFO IP | нет |
pg104 | Complex Multiplier | Руководство пользователя комплексного множителя IP | нет | |
pg122 | RAM-Based Shift Register | Руководство пользователя сдвигового регистра IP | нет |