如何基于 RISC

您所在的位置:网站首页 低帮篮球鞋怎么搭配 如何基于 RISC

如何基于 RISC

#如何基于 RISC| 来源: 网络整理| 查看: 265

如何基于 RISC-V CPU 集成一个 RISC-V SoC 呢?(上) 引言🌏 一、RISC-V CPU RTL 生成🌏 二、MEMORY && ICG 替换🌏 三、集成准备工作

引言

  这里以玄铁 E907 CPU 来作为一个简单的专题,指导数字 IC 集成工程师如何基于 RISC-V CPU 集成一个 RISC-V SoC!!!   简单介绍一下,E907 是嵌入式领域的 RISC-V 兼容的 32 位高性能微处理器,采用了 RV32IMAFDCP ISA 指令集架构,主要应用于通用的高性能微处理器、音频处理、工业控制等领域中。

RISC-V E907 架构图

🌏 一、RISC-V CPU RTL 生成

  首先,我们需要根据平头哥提供的玄铁 E907的数据包,来生成 RTL 代码。当然,如果你想自己设计一个 RISC-V CPU 我也是不会阻止你的。这里的 E907 CPU 可以配置具有各种各样的功能和模式,例如:是否配置浮点单元、是否配置 DSP 单元、配置的 ICache/DCache 的大小、配置 AXI 总线的工作场景、是否配置 BHT/BTB 模块、配置中断数量、配置检测单元或者调试资源等等。   如果你未来想成为一名 RISC-V CPU 设计工程师,或者对于 CPU 的内部设计比较感兴趣的话,可以熟悉一下它的仿真环境和测试用例,非常有助于 E907 的功能实现、使用方法和 SoC 集成工作等等。此外,这里还提供了 E907 的标准集成的参考设计、SDC 约束、Lint 流程、Waive 文件等等,这些都在平头哥提供的玄铁 E907 的 SMART 平台包里面。

🌏 二、MEMORY && ICG 替换

  接着,E907 RTL 代码生成完毕之后,就需要替换如下的一些 ASIC 单元。   MEMORY 的替换:由于 ASIC 是基于特定的工艺器件来设计和制造的,此时就会遇到 E907 内部的存储单元和你本地的存储单元的不匹配现象。例如 E907 的存储单元 LIB 是基于 22 纳米的,然而你的存储单元 LIB 是基于 18 纳米的,这就需要替换了,或者说,E907 的存储单元 LIB 是基于 2048X32 大小的,然而你的存储单元 LIB 是基于 1024X16 大小的,这也就需要拼接了。如果你的存储单元 LIB 的端口数量、端口位宽、电平极性等等也不一样的话,就还要额外进行一些特殊的连接设计了。   ICG 的替换:同样的,工艺库提供了基于特定工艺的 ICG,即 Clock Gating,这也是需要替换的,值得注意的是,需要选择和 E907 提供的 ICG 一样的真值表和沿触发的工艺库。此外,可以增加一个宏定义,令 ICG 在 FPGA 实现中可以直接绕过(Bypass)。

🌏 三、集成准备工作

  通常情况下,为了保证一定的稳定性以及便于用户的升级更新,平头哥的 CPU 接口的大部分信号总是差不多的,当然,这因人而异,有时候可能差那么若干根信号,就需要额外花费很大的精力去设计和集成了。对于 E907,大致划分了时钟信号、复位信号、DFT 信号、中断信号、调试信号、AXI 总线信号、AHB 总线信号、运行观测信号、低功耗系统信号等等,对于以上常见的信号分组,在 SoC 中充当什么角色呢?如何去集成呢?集成的时候需要注意什么呢?详见下文《如何基于 RISC-V CPU 集成一个 RISC-V SoC 呢?(下)》。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3