点滴汇聚

不积跬步无以至千里,不积小流无以成江海

在芯片开发的前期,RTL代码还在开发中,FPGA原型验证平台也没有可用的环境。这时候我们可以根据SoC spec在Qemu中开发一个新的Virtual Platform,那么BSP软件团队就可以提前完成一些软件环境的准备,比如最小系统。这样当RTL0.1释放后,我们可以直接复用这些软件在FPGA验证,从而减小搭建软件环境的压力和缩小验证时间。随着Qemu里面模拟的外设越来越多,我们可以把更多的软件function在Qemu里面完成开发和验证,然后再迁移到FPGA原型平台上进行验证,从而完善软件的时序方面的逻辑。通过这样的验证手段,让我们软件准备提前,缩短FPGA的占用时间,减少验证成本。

阅读全文 »

从eMMC中加载镜像并启动是我们常见开发板的启动方式,通过Qemu模拟eMMC设备,这样我们可以在Qemu上直接验证我们很多相关的逻辑功能,比如eMMC的启动、文件系统的mount、文件读写等。

阅读全文 »

在新增Qemu芯片平台之后,我们就可以基于这个平台进行最小系统的移植适配,从而加快系统软件的开发节奏。随着Qemu里面模拟的外设越来越多,我们BSP里面的很多驱动都可以先在这个芯片平台上完成function逻辑的验证,等验证到一定程度,我们再迁移到FPAG上集中验证一遍,从而大大节省验证的时间代价和成本,因为Qemu里面调试极其方便。

阅读全文 »

随着芯片开发的规模越来越大,验证无处不在,在整个开发流程中能够将系统软件的开发尽量向左前移,那么我们开发的芯片就能够更早地推向市场,甚至抢占先机。

使用Qemu来模拟仿真我们开发的芯片,从而能够让软件开发人员与芯片设计人员并行开发,但是Qemu通常是没有我们自研芯片的虚拟平台(VP),因此我们要根据芯片手册,新增实现一个虚拟原型或者虚拟芯片平台,也就是说基于Qemu现有的代码,我们新开发一个自研芯片的虚拟原型(VP),基于这个开发的虚拟原型(VP),我们可以开始进行BSP代码开发,不用再等待FPGA原型验证环境准备好,就能够提前推进系统软件代码的开发验证。

阅读全文 »

本文将展示如何使用qemu+systemC来完成IP的simulation,复用已有的高级语言实现的benchmark来剖析IP的性能。

阅读全文 »

现在越来越多的公司开始关注和使用RISC-V,或者已经有一些公司开始把RISC-V集成到自己的芯片中,但是市面上还是缺乏一款优秀的RISC-V开发板,既能满足软件开发验证使用,又能提供丰富的学习例程。

在无RISC-V开发板的情况下,为了能够学习验证RISC-V相关的代码,通过Qemu模拟器搭建RISC-V运行环境,这样也能完全达到实验学习的目的。

阅读全文 »

在嵌入式的环境下经常使用的rootfs都是高度定制的,没有与发行版相似的包管理工具(比如apt-get、yum等),因此我们不能通过一条命令就把eBPF相关的工具安装好,通常我们都要先交叉编译依赖的所有库源代码,然后在交叉编译工具的源代码,整个过程耗时又容易出错。本文说明如何在ubuntu-base-aarch64-rootfs上静态编译链接eBPF相关的工具,这样就能方便地把eBPF工具集成到高度定制的嵌入式rootfs中。

阅读全文 »

本文主要阐述内存规整「compaction」的原理和实现细节。

阅读全文 »
0%