基于 RISC-V SoC 的 1024 点 FFT 设计(10-02-08)RISC-V 交叉编译的功能验证

本文介绍了基于RISC-V的SoC设计中,1024点FFT的系统架构、硬件设计及交叉编译环境搭建。通过Spike模拟器和Vivado软件验证了编译工具的正确性和软件的可行性,确保了FFT功能和RISC-V处理器性能的准确性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

芯片原厂必学课程 - 第十篇章 - 基于 RISC-V SoC 的 1024 点 FFT 设计

10-02-08 RISC-V 交叉编译的功能验证

新芯设计:专注,积累,探索,挑战

引言

  本次项目主要设计了一个基于 RISC-V 指令集架构的 SoC,这是一个具有 1024 点的时频转换功能的 FFT 系统。在理想情况下,只要指令存储器和数据存储器的容量足够大,基本上可以实现任意点的 FFT。本章《基于 RISC-V SoC 的 1024 点 FFT 设计》针对 1024 点的 FFT,首先给出了 FFT 系统的整体架构和 RISC-V 内核的硬件设计。接着,对于 RISCV 交叉编译环境的搭建进行了相关的概述。最终,针对基于 RISC-V SoC 的 FFT 设计,构造了基于软硬件协同仿真验证的 UVM 框架,证实了大点数 FFT 的 C 软件程序及其 RISC-V 硬件设计系统功能的正确性。

  基于 RISC-V 交叉编译的环境搭建完成之后,对于其中的编译工具功能的正确性以及软件开发环境的可行性,可以通过下文的两种方式来加以验证。

  NOTES:本文来自《芯片原厂必学课程 - 第十篇章 - 基于 RISC-V SoC 的 1024 点 FFT 设计》技术专栏


🌏 一、基于 Spike 模拟器的验证方式

  这是一种通过安装 Spike 模拟器,自动构建虚拟的 RISC-V 指令集架构,来对最终的 ELF 可执行文件进行验证的方式。这里,Spike 模拟器几乎支持任意的指令集模块组合和架构位数,可以测试我们所搭建的 RISC-V 交叉编译工具链是否可以正常工作以及源程序的代码编写是否是正确的。这里,以一个基于简单的加法、乘法以及串口打印功能组合而成的 Demo.c 文件为例。

10-02-08-01 Demo.c 的代码示意图

  按照前面的 RISC-V 交叉编译流程,对 Demo.c 进行交叉编译,生成一系列的文件。

10-02-08-02 对 C 程序交叉编译之后生成的各种文件示意图

  最终,通过“spike pk Demo”命令来调用 Spike 模拟器,进而执行 Demo 文件,相关的仿真结果如下所示。在 PC 主机的 Linux 客户端上正确显示了“This year is 2021”,从而证实了所搭建的基于 Linux 的 RISC-V 交叉编译环境是可以正常工作的。

10-02-08-03 Spike 模拟器仿真图


🌏 二、基于 RISC-V 软核和 Vivado 软件的验证方式

  第一种验证方式主要是针对软件编译工程师而言,较为简单。而对于想要进一步验证自己所设计的 RISC-V 处理器能否正常工作的设计人员来说,则可以采用基于 RISC-V 软核和 Vivado 软件的第二种验证方式。这种验证方式的前提是你必须要有一个 RISC-V 处理器,无论是软核的还是硬核的。软核就是指该 RISC-V 处理器是由 Verilog 等硬件描述语言设计和封装而成的一个 IP,硬核就是指该 RISC-V 处理器经过流片生成的实际的集成电路。

  以基于 Verilog 设计的 RISC-V 软核且基础开发环境为 Xilinx 的 Vivado 软件为例。首先,将 Demo 可执行文件转为 Demo.coe 格式的 ROM 初始化文件,载入到 RISC-V 处理器的指令存储器中。接着,搭建简单的测试平台,编写相应的仿真激励文件。最后,查看 UART 接口对应的寄存器“UART_REG1”的时序仿真波形,可以转为有符号十进制的格式来查看。如下所示,最终得到的UART寄存器的数据为“2021”。这样就不仅仅验证了本次 GCC 工具链的开发以及 RISC-V 交叉编译环境搭建的正确性,同时,还验证了 C 程序以及 RISC-V 处理器核指令执行的功能的正确性。

10-02-08-04 Vivado 仿真时序图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

新芯设计

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值