数字IC实践项目(5)—开源单核片上系统PULPino(开源项目)

数字IC实践项目(5)—RISC-V开源单核片上系统PULPino(开源项目)

写在前面的话

  • PULPino是一个为RISC-V RI5CY和Zero-RISCY内核建立的单核系统芯片。PULPino重用了PULP的大部分组件。它使用独立的单端口数据和指令RAM。它包括一个引导ROM,其中包含一个引导装载器,可以通过SPI从外部闪存设备加载程序。
  • 下图是SoC的框图。SoC使用AXI作为其主要的互连,并有一个桥接APB用于简单的外围设备。AXI和APB总线都具有32位宽的数据通道。出于调试的目的,SoC包括一个高级调试单元,可以通过JTAG访问核心寄存器、两个RAM和内存映射的IO。两个RAM都通过总线适配器连接到AXI总线上。
    在这里插入图片描述

项目难度:⭐⭐⭐⭐⭐
项目推荐度:⭐⭐⭐⭐
项目推荐天数:14~42天

项目简介和学习目的

  • RISCY是一个有序的单问题核心,具有4个流水线阶段,完全支持基本整数指令集 (RV32I), 压缩指令(RV32C)和乘法指令集扩展(RV32M)。它可以配置为具有单精度浮点数 指令集扩展 (RV32F)。
  • Zero-riscy 是一个有序的单问题核心,具有 2 个管道阶段,它具有 完全支持基本整数指令集(RV32I)和 压缩指令(RV32C)。可配置为具有乘法指令集 扩展(RV32M)和减少的寄存器数量扩(RV32E)。 它旨在针对超低功耗和超低面积限制。
  • 当内核空闲时,平台可以进入低功耗模式, 其中只有一个简单的事件单元处于活动状态,其他所有内容都是时钟门控的,并且消耗的功率(泄漏)最小。
  • PULPino包含广泛的 外设,包括 I2S、I2C、SPI 和 UART。平台内部设备 可以通过JTAG和SPI从外部访问,允许预加载
    带有可执行代码的 RAM。在独立模式下,平台从 内部引导 ROM 并从外部 SPI 闪存加载其程序。

整个项目可用于RTL仿真和FPGA,并于2016年采用UMC 65nm成功流片。其具有完备的调试及说明文件。

软件环境要求

复现整个项目推荐在Linux系统并配置以下软件环境:

  • ModelSim(linux版本)(原始版本>= 10.2c对其进行了测试)
  • CMake >= 2.8.0,建议使用大于 3.1.0 的版本
  • RISCV工具链,需要riscv32-unknown-elf-gcc编译器和朋友。
  • python2 >= 2.6
  • Verilator 3.884 仅在使用 Verilator 评估 PULPino 时才需要。

项目实践环境:

FPGA开发环境:
前仿: Modelsim SE-64 2019.2
综合: Quartus (Quartus Prime 17.1) Standard Edition**

数字IC开发环境:
前仿: VCS 2016
综合:DC 2016

项目学习目的:
(1)熟练掌握项目中各文件的工程管理;
(2)熟悉System Verilog HDL仿真、FPGA综合工具以及了解数字IC设计工具及流程;
(3)学习SOC的基本结构和基础原理;
(4)学习PUIPino结构和各模块功能;
(5)熟练掌握System Verilog语法和验证方法;
(6)熟练掌握Modelsim、CMake、Python等开发工具。

CPU Core

PULPino同时支持RISC-V RI5CY和RISC-V zero-riscy。这两个内核具有相同的外部接口,因此是接口部分是兼容的。

RISCY Core 结构
在这里插入图片描述

Zero-RISCY Core 结构
在这里插入图片描述
对比上述两个CPU Core,可以发现Decoder、GPR、CSR、LSU、ALU等模块是相互复用的。

IP Cores

整个SOC系统涉及六个IP核,分别是:

(1)adv_dbg_if
在这里插入图片描述
(2)apb

(3)axi
在这里插入图片描述
(4)riscv

在这里插入图片描述

(5)zero-riscvy

在这里插入图片描述

(6)fpu
在这里插入图片描述

总结

整个项目涵盖了完整的SOC设计和验证,rtl和脚本齐全,不过需要注意的是其中riscv和zero-riscv等IP核经过了更新,时间跨度也比较长,在搭建软件环境和跑全流程方面会相对比较耗费时间,个人建议是从IP相关的知识进行学习,对于SOC设计感兴趣的同学可以选择继续学习,该开源平台每年几乎都在更新相关的工作。

感兴趣的同学可以查看pulp平台流片图:

苏黎世联邦理工学院集成系统实验室芯片库

项目地址

https://github.com/pulp-platform/pulpino

  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Ansible Core是Ansible的核心组件,它是一个开源的自动化平台。Ansible Core提供了一个简单的自动化语言,可以用来描述IT应用基础架构,并且可以通过运行Ansible Playbook来执行自动化任务。它具有以下特点: 1. **简单易用**:Ansible Core使用简单的自动化语言,不需要编写复杂的脚本或代码。通过编写Ansible Playbook,可以轻松地描述和管理基础架构。 2. **灵活性**:Ansible Core适应多种不同的工作流和环境。它可以管理各种类型的系统,包括物理服务器、虚拟机、容器和云平台。 3. **可扩展性**:Ansible Core可以与其他工具和平台集成,以满足不同的自动化需求。它支持插件机制,可以扩展功能和集成其他工具。 4. **高效性**:Ansible Core使用SSH协议进行通信,无需在被管理的主机上安装任何代理程序。这使得Ansible Core在执行任务时非常高效。 5. **可靠性**:Ansible Core具有强大的错误处理和回滚机制,可以确保任务的可靠执行。它还提供了丰富的日志和报告功能,方便故障排查和性能分析。 要安装Ansible Core,可以使用以下命令: ```shell yum install ansible -y ``` 要查看Ansible Core的版本,可以使用以下命令: ```shell ansible --version ``` 示例输出: ``` ansible 2.9.27 config file = /etc/ansible/ansible.cfg configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules'] ansible python module location = /usr/lib/python3.6/site-packages/ansible executable location = /usr/bin/ansible python version = 3.6.8 (default, Nov 9 2021, 14:44:26) [GCC 8.5.0 20210514 (Red Hat 8.5.0-3)] ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值