前端(把算法和协议做一个逻辑上的实现)
设计
验证(功能验证):EDA(主流)、FPGA(系统级)
后端(把逻辑的RTL实现为Netlist)
综合和timing的BES
DFX–验证制造工艺,还会涉及到一些功能的调试(也会用到一点EDA)、DFT–针对制造缺陷作测试
MemBist: MemBist主要针对Memory,如SRAM。在制造过程中,可能会存在缺陷,当芯片回来之后,我们要进行一些制造型测试!MemBist是进行内建自测试!
这种内建自测试与其他IP外设测试不一样,其他IP外设测试通常是通过GPIO灌激励,然后将经过这些逻辑之后的激励通过另外一些GPIO引出,然后去对比Partner。而内建自测试是我这个测试,对SRAM的测试不需要通过外部的管脚,在SRAM外部会包一层Bist逻辑,然后相当于在内部触发一个使能信号,然后它就可以往SRAM中灌各种激励,然后把经过逻辑之后的激励输出,就可以完成这样一个内建自测试。这就是MemBist的功能。
Spare Cells: Spare Cells 主要是放在顶层,用于芯片开发后期,在投片时忽然发现有BUG,这时候要做一个叫ECO(Engineering Change Order,手动修改集成电路的过程)的东西,这个时候就可能会涉及到一些cell的替换,如果之前已经放了Spare Cells的话,就可以直接用Spare Cells,不需要再重新增加cell。如果增加cells,可能会导致整个Die的面积放不下!所以相当于是提前预留放了一些为我们做ECO准备的Spare Cells,把面积在那占着,这样的话,整个FloorPlan就不用了动了!Cell在那放着,尽可能最小的去影响我们最终的FloorPlan。
IO MUX: 管脚复用,一个接口具有不同的功能。
无线通信+数据存储=相机数据的存储卡
无线通信:APB总线上的SPI接口–挂载WiFi芯片–实现无线通信和数据传输
SOC-SPI-》WIFI–》WLAN–》手机
数据存储: 之前主要使用NandFlash控制器,实现数据存储。该芯片(无NandFlash接口)采用了SD-Host接口,外接SD memory卡的方式进行数据存储。
场景描述
照片-通过-》SD-memory-暂存-》SRAM-通过-》SD Host-存储-》SD-memory
手机–》WIFI-下载-》SD-memory中的照片
数据流向
数据存储:
无线通信:
Slave和Master
高速IP具有M和S的双重功能,低速IP只具有S的功能,一般情况下,高速IP工作在M,CPU可以通过改变寄存器配置使IP工作在S。
IP总线地址映射
CPU访问某一空间是通过该空间的地址来访问的,一个地址空间对应1个Byte也就是8个bit
Pin-Mux(工程上一般会在顶层做PIN-Mux,减少PAD)和PAD
PAD:芯片与外部通信的一个接口
版图布局
模拟IP在外围放一圈(MEM、Flash、模拟IP)
SOC设计节点
RTL:编写RTL代码,进行功能验证(EDA仿真验证、FPGA原型验证)和代码复查
Netlist:通过综合工具,将其转化为Netlist,即将RTL代码映射(MAP)成门级网表(STD CELL),同时进行形式验证(RTL逻辑功能和Netlist的逻辑功能对比,看看综合工具是否把RTL某些功能给优化掉),时序验证(实现Netlist后,timing setup 能否满足)
GDSII:接下来进行物理实现,GDSII也是一个网表,只不过是包含了器件位置信息的网表。Netlist仅仅只是逻辑信息。然后进行一些后仿真和签收复查。
芯片:投片,在wafer上生成芯片,芯片回来后,需要做制造测试(ATE测试),ATE测试的partner是在前面做RTL时的DFx做的,Membist,Scan扫描,都是在前期做好的设计,芯片回来之后,会把这些电路启动,进行ATE测试!测芯片本身,有没有制造功能的问题!
注:所学验证主要是针对RTL进行一个逻辑功能的验证
初学者小知识:芯片=IC(intergrated circuit)=集成电路