代码编织梦想

如何基于 RISC-V CPU 集成一个 RISC-V SoC 呢?(上)

引言

  这里以玄铁 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 呢?(下)》。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/MicroTalent12/article/details/128794395

RISC-V学习笔记【取指】-爱代码爱编程

处理器取指 每条指令在存储器空间中所处的地址称为它的指令PC,取址指处理器核将指令(按照其指令PC值对应的存储器地址)从存储器中读取出来的过程 取址的目标如下: 快速取址连续取址可能面对的问题如下: 指令的编码宽度不相等,导致PC地址与地址边界无法对齐分支跳转指令执行后,可能导致跳转到另一个不连续的PC处,取址时需要从新的PC值对应的存储器地址读出

RISC-V学习笔记【调试】-爱代码爱编程

蜂鸟E203的开源调试实现 蜂鸟E203在处理器内核外集成了一套调试外设,能够支持完整的GDB调试功能,并可以通过openocd经由jtag接口实现在线调试 调试机制 交互调试Interactive Debug 交互调试是处理器提供的最常见的一种调试功能,指调试器软件能够直接对处理器取得控制权,进而对其以一种交互的方式进行调试 一般的交互调试要求

Imagination宣布推出基于RISC-V的CPU产品系列-爱代码爱编程

Imagination Catapult系列CPU产品采用RISC-V指令集架构(ISA),专为异构计算解决方案设计打造 英国伦敦,2021年12月6日——Imagination Technologies宣布推出Catapult系列RISC-V中央处理器(CPU)产品系列,这些全面创新设计的CPU产品旨在满足下一代异构计算的需求。 RISC-V是

基于RISC-V的智能边缘处理器研究及FPGA实现-爱代码爱编程

随着深度学习的发展,卷积神经网络的硬件加速成为当下研究的热点,特别是在边缘端对于实时性要求更高。因此,将可重构的神经网络加速器和通用CPU 组合构建一个 SoC 的加速方式,既有通用性,又可以针对具体问题进行优化。 文章工作: 本文提出一种基于 RISC-V 开源指令集架构的卷积神经网络加速器及其硬件设计,并构建一个人脸识别网络去测试该架构。

RISC-V相关概念整理-爱代码爱编程

目录 1.RISC-V的概念 2.RISC-V的易错点 3.SoC(片上系统) 4.内核 5.协处理器 6.敏捷开发 6.1 敏捷开发的概念 6.2 敏捷开发模式的分类 7.MMIO 7.1 MMIO的概念 7.2 Port I/O和MMIO的主要区别 8.Verilog HDL 9.Chisel 10.RTL生成器 10.1

risc-v基金会董事谭章熹:risc-v,从边缘逐渐向中央扩展_开源头条的博客-爱代码爱编程

 在过去,由于技术闭环,导致处理器发展遇到了一些瓶颈。2010年,UC Berkeley开发了开源的RISC-V,从此,集自由、简单、高效于一体的RISC-V得到了广泛应用。 2022年7月21日,由中国开源软件推进联盟主办,赛迪传媒、《软件和集成电路》杂志社联合承办,CSDN独家直播的“第十七届开源中国开源世界高峰论坛”上,RISC-V基金会董事、清华

【2022集创赛】芯来riscv杯全国三等奖作品:基于risc-v的生理信号加速专用soc_极术社区的博客-爱代码爱编程

本篇文章是2022年第六届全国大学生集成电路创新创业大赛芯来RISC-V杯三等奖作品分享,参加极术社区的**【有奖征集】分享你的2022集创赛作品,秀出作品风采**活动。 1.团队介绍 参赛单位:上海理工大学

数字电路的明珠——cpu,也谈risc-爱代码爱编程

目录 引言CISC 与 RISC RISCARMMIPS RISC-VRISC-V 架构的特点 引言 伯克利教授 Patterson 曾领导了 RISCⅠ的开发,他在其计算机体系结

rocketchip risc-爱代码爱编程

2019年10月份,RISCV发布了一版新的硬件代码,并对Debug调试部分进行了对应的升级修改,随后一直沿用2019年的版本至今,目前版本为0.13.2版本。本文重点研究对应的升级和修改意义,以及在后续SoC集成时的处理方法。阅读本文之前,请对RISCV的Debug调试有个基础的了解,比如JTAG五线或四线连接、调试软件openOCD、RISCV调试过程