课程概要
友晶的RISC-V on T-Core 系列课程以使用 Intel® Max 10 FPGA 的 T-Core 板卡为平台,介绍RISC-V处理器的设计、实现及应用,该课程分为设计篇及实战应用篇。不仅从理论上对RISC-V处理器架构进行了深入浅出的解析,详细讲解了如何使用Verilog代码进行RISC-V各模块的实现;还从实战出发,提供了step by step的设计实例,寓教于乐地介绍了RISC-V On T-Core 的环境搭建和开发流程。
认识RISC-V
RISC-V是加州大学伯克利分校设计并发布的一种免费而且开放的指令集架构。与大多数CPU指令集不同,RISC-V具有极强的扩展性,其应用可以覆盖IoT设备、桌面计算机、高性能计算机等众多领域。作为一个开放的指令集,它的准入门槛极低,支持根据具体场景选择适合的指令集,设计、制造和销售RISC-V芯片和软件。除了开源和免费这两个最大的优点外,RISC-V还具有易于移植、模块化设计、完整的工具链等特点。
友晶T-Core板卡搭配RISC-V的优势
Terasic T-Core 是一款由 MAX10 系列逻辑容量最大的 FPGA 所驱动的高度灵活的平台和配置工具。作为 RISC-V 入门套件,T-Core 完全支持 RISC-V CPU。开发人员在开发基于 RISC-V 的应用程序时,可以轻松上手同时享受极大的灵活性。
第一讲[ link ] - RISC-V架构处理器基础
本讲系统介绍了RISC-V架构处理器的基础理论知识,同时也对RISC-V 处理器在 T-Core 上的实现进行了描述。
课程讲义[ link ], Q&A [ link ]
第二讲[ link ] - RISC-V处理器ALU设计与实现
本讲主要介绍了 ALU 的设计和设计,同时对 T-Core 开发板上实现的 RISC-V 处理器 ALU 的关键代码进行了讲解。
课程讲义[ link ], Q&A [ link ]
第三讲[ link ] - RISC-V处理器指令周期设计与实现
本讲主要介绍了单指令周期 CPU 数据通路和控制器的设计,同时对 T-Core 开发板上实现的 E203 指令的执行过程进行了分析。
课程讲义[ link ], Q&A [ link ]
第四讲[ link ] - RISC-V处理器流水线设计及实现
本讲系统介绍了处理器流水线的概念,并详述了流水线设计所带来的冲突冒险及其解决办法,同时对 RISC-V on T-Core 的流水线代码进行了解析。
课程讲义[ link ], Q&A [ link ]
第五讲[ link ] - RISC-V 处理器内存结构设计与实现
本讲着重介绍了存储器层次化结构中 Cache 的原理及改进方法、虚拟存储器的管理两大方面,并且对 RISC-V on T-Core 的存储器系统的代码进行了讲解,同时对 RISC-V on T-Core 的存储器系统的代码进行了解析。
课程讲义[ link ], Q&A [ link ]
第六讲[ link ] - RISC-V 处理器中断与异常处理机制及实现
本讲着重介绍了中断与异常的概念和处理机制,并分别对单指令周期数据通路中的中断和异常的处理实现与流水线数据通路中的中断和异常的处理实现进行了讲解,同时对 RISC-V on T-Core 的中断与异常代码进行了解析。
课程讲义[ link ], Q&A [ link ]
第七讲[ link ] - RISC-V处理器的可扩展性设计与实现
本讲介绍了RISC-V 处理器的可扩展性设计与实现,尤其是如何在 RISC-V on T-Core 上实现一个自定义的 DOT 指令的代码。
课程讲义[ link ], Q&A [ link ]
第八讲[ link ] - RISC-V on T-Core 的开发流程
本讲从RISC-V on T-Core 的框架出发, 系统介绍RISC-V CPU 在 T-Core 上的实现及其嵌入式设计的流程。
课程讲义[ link ], Q&A [ link ], 范例Demo[ link ]
第九讲[ link ] - RISC-V 实战演练之 GPIO 与 UART
本讲对RISC-V on T-Core 的 GPIO 结构与GPIO寄存器读写,以及软件上如何对GPIO中断进行处理进行了介绍,并且详述了如何使用寄存器控制的方式实现串口的收发操作及如何使用bsp预先设计好的printf功能在uart0打印字符等。
课程讲义[ link ], Q&A [ link ] , 范例Demo[ link ]
第十讲[ link ] - RISC-V 实战演练之定时器、PWM、I2C、SPI
本讲对RISC-V on T-Core 的四个外设——定时器、PWM、I2C、SPI作了系统介绍,并且针对每一个外设,还设计了相应的实验。
课程讲义[ link ], Q&A [ link ] , 范例Demo[ link ]
第十一讲[ link ] - RISC-V 实战演练之自定义指令
本讲主要介绍了自定义指令的软件流程,并且设计了一个矩阵乘法的实验来验证 dot 自定义指令对性能的提升。
课程讲义[ link ], Q&A [ link ] , 范例Demo[ link ]
第十二讲[ link ] - RISC-V 实战演练之FreeRTOS
本讲介绍了常见的操作系统及 FreeRTOS 系统特性及 FreeRTOS 的工作原理,还通过实例,阐述了将 FreeRTOS 移植到 RISC-V 的关键内容和创建 FreeRTOS 工程中进行工程配置的注意事项,并通过具体代码对 FreeRTOS 实时任务调度原理进行了讲解。