SOC,是System on Chip的缩写,翻译过来就是系统级芯片,也有称片上系统。既然是系统,单个就称不上系统,只有多个个体的组合才能称之为系统,所以,SOC强调的是一个整体。用“麻雀虽小五脏俱全”来形容SoC,再确切不过了。SoC是模仿计算机系统,微缩成了一个微系统。在我接触过的SOC芯片中,硬件的大概的组成是:核心(core),存储,外设接口(高速外设和低速外设),总线,中断模块,时钟模块等。在验证阶段,这些都是用verilog代码实现的,你是看不到实体的。先简单说一下这几个的概念,以后再逐一展开。核心类似于计算机中的CPU(中央处理器),包含多个小模块,存储分为很多种,像SRAM,DRAM,ROM之类的;外设接口可以理解为芯片对外的通信接口,与外界交互的接口;总线就像一根藤,而核心、存储、外设就像挂在藤上的葫芦娃,总线是这些“葫芦娃“交流的窗口。 SOC是一个整体的概念,再细化一下,便到了每个模块。在一个SOC成型之前,设计工程师用verilog代码把每个模块敲出了,粗略进行模块级的验证,在模块级验证通过之后,会通过总线把各个模块集成在一起。目前来说,应用比较广泛的总线协议是AMBA总线,包括AXI,ASB,AHB,APB,我在工作中最常接触到的就是AXI和APB,前者主要是挂一些高速的核心外设,DDR之类的,APB主要是挂一下低速的外设,先大概了解一下,以后再细讲。“挂”概念就是,通过例化化相互间的信号线连在一起。国内很多公司都是买的IP,也就是模块,然后把这些IP,集成到一起,组成一个SOC芯片。默认情况下,这些IP都是好的,所以这类公司的验证工程师干的活就是验证连接性,也就是验证集成是否正确,功能是否达到。这种对包括核心、外设、总线和存储等的验证,这也就是系统级的验证。当然,并不是所有的模块都是买,也有一些小的模块是可以自己写的。
|