导读:作者有幸在中国电子信息领域的排头兵院校“电子科技大学”攻读研究生期间,接触到前沿的数字IC验证知识,旁听到诸如华为海思、清华紫光、联发科技等业界顶尖集成电路相关企业面授课程,对数字IC验证有了一些知识积累和学习心得。为帮助想入门前端IC验证的朋友,思忱一二后,特开此专栏,以期花最短的时间,走最少的弯路,学最多的IC验证技术知识。
文章目录
一、SoC架构图:核心功能和设计目标
SoC是基于通用处理器这样的思路进行设计的,与PC设计思路一样。即通用处理器是由 CORE + MEM 两部分组成,修改软件来实现不同的功能,电脑还是同一个电脑,硬件组成还都是一样的。
SoC架构图四大组成部分:
- 1、核 CORE
- 2、存储 MEM
- 3、外设 IO
- 4、总线 BUS
SoC总的架构图如下:
1.1、SoC - 核 CORE
对于核来讲,现在主流的核有三类:
- CISC(Complex Instruction Set Computer - 复杂指令集计算机)
- x86为代表,公司有AMD和INTEL,PC和Server用这类核比较多。
- RISC(Reduced Instruction Set Computing - 精简指令集计算机)
- ARM为代表,手机芯片、嵌入式系统等用这类核比较多。
- ARM-M系列:低端,常用在微控制场景,如MCU
- ARM-R系列:中端,常用在实时场景,如医疗器械,路由交换机
- ARM-A系列:高端,常用在高端应用场景,如手机芯片
- ARM为代表,手机芯片、嵌入式系统等用这类核比较多。
- RISC-V(开源)
- 基于ARM和x86之间,可以进行灵活的切换和组装
- 暂没有成熟的商用体系,没有生态支撑
架构图,左上角为SoC系统的核,此处使用的是ARM 公司的Cortex-M3/M4内核。
同时,I-Code表示指令代码,D-Code表示数据代码。JTAG用来调试芯片,下载调试程序使用。
注:
I-Code
、D-Code
即I-Cache
、D-Cache
,这个可选的,并不是每个SoC都会用到,需要根据实际芯片的规模和需求!
1.2、SoC - 存储 MEM
架构图,中间部分为SoC系统的存储,此处包含PFlash和SRAM两种。
- PFlash(硬盘)中的数据掉电不丢失
- 如果PFlash不够用,可以外扩Flash,如
NFC(Nand Flash Controller)
- 如果PFlash不够用,可以外扩Flash,如
- SRAM(内存)中的数据掉电丢
- SRAM是静态随机存储器(Static Random Acess Memory),与之相对的还有一种是动态随机存储器(Dynamic Random Acess Memory)。DRAM需要不断的刷新才能保持住数据,SRAM是不需要刷新的!
- DRAM的密度很高,所以当存储数据容量很大的时候组出来的Memory面积就会小一些!SRAM通常用在小的SoC中!
- 如果SRAM不够用,可以外扩SRAM,比如上图中的
Ext_SRAM
- core上电后,会到PFlash中取它的指令,来读取系统要运行的“软件”(代码),在PFlash启动之后,把所需的软件下载至SRAM中,最终在SRAM里运行“软件”。
- 即BootLoader放在PFlash中,一上电便会将其load至SRAM中,CPU来SRAM取指来执行我们的程序!
- SRAM存储速率较PFlash速率快,故上电跑的程序是放在SRAM中,启动程序以及不需要的数据会存在PFlash中。
1.3、SoC - 外设 IO
外设 IO分为两部分:
- 一个是高速外设 IO(AHB 100MHz):DMA、Ext_SRAM Controller、SD_Memory、SD_Host
- 一个是低速外设 IO(APB 50MHz):SPI、UART、GPIO、I2C
1.3.1、 DMA
DMA(Direct Memory Access,直接存储器访问),使用场景如下:当CPU需要搬移SRAM中的大量数据时,此时如果使用CPU搬移,则会先将SRAM中的数据搬移至CPU的寄存器中,然后再取指令写操作等方式搬移至目的地。该方法效率较低,且占用了CPU的宝贵处理时间。此时就有了DMA的登场,CPU只需告诉DMA引擎,你需要从哪个地址搬移多少个数据到哪个地址,这样DMA就自己听话地去工作了,不再需要CPU的参与,减轻CPU的负荷