Soc芯片设计总览

一.SOC设计流程

 

Partition:模块功能分割。

从Design ->RTL freeze都是前端设计工程师的工作范围。

PD会产生SDF文件,用于后仿的仿真。

前端设计工程师:Verilog + Synthesis + SOC/IP + Linux + EDA + FPGA验证。

  1. 流片失败的原因:

 

最为致命的是设计的功能问题导致流片失败的主要原因。

书籍学习(Digital integrated Circuits A Design Perspective)

 

主流的是CMOS级电路的设计。

芯片量产的流程

  • 市场方面

    1. 市场调研
    2. 产品定义
    3. 方案设计
    4. 芯片需求
  • 芯片设计

  1. 芯片定义
  2. 模块划分
  3. 电路设计
  4. 验证
  5. 物理设计
  6. 流片
  7. 封装
  8. ATE测试
  • 测试量产

  1. 板级模块测试
  2. 系统级测试
  3. 稳定性测试
  4. 产品样机
  5. 产品小批量
  6. 芯片量产

SOC系统的架构

  1. CPU
  2. DSP
  3. IPs
  4. AMBA总线

 

SOC系统的设计是各类IPs的集成

接下来介绍CPU方面的内容

CPU

CPU分为控制通路和数据通路,其所做的工作由指令集决定。目前市场上常见的CPU为ARM的指令集。

分为以下几个阶段

 

分别对应取指,译码,取参,执行,存储,跳转这六个步骤

 CPU的性能优化技术

  1. 流水线技术
  2. 高级缓存(Cache)
  3. 超标量指令执行
  4. 可重构计算

可以了解ARM CPU的知识,有用

总线

常用的总线:AMBA  NoC

AMBA :AHB,ASB,AHB,APB,AXI

APB:常用的挂一些低速的设备

熟练掌握AMBA总线,有用 ->AHB,APB,AXI总线

中断控制器

INTC(中断控制器)通常为APB的Slave(从机)。

INTC通常有内部中断和外部中断两部分,可以对SOC中各个外设的中断进行管理,进行优先级的排队。

至少有三组寄存器:中断使能寄存器,中断状态寄存器,中断屏蔽寄存器

中断分为普通中断和快速中断。

中断源:

内部中断

RTC

UART

TIMER

DMAC

LCDC(错误响应,帧结束,帧开始)

SPI

外部中断

GPIO

中断触发类型:上升沿,下降沿,高电平,低电平;

外部中断信号特殊处理:去除毛刺,寄存,同步到总线时钟。

在使用外部中断时,首先需要清楚对应的中断状态寄存器。

 

中断的初始化配置步骤

1.屏蔽中断;

2.使能中断;

3.配置对应寄存器,接收中断使能;

4.打开中断屏蔽;

看门狗

防止系统失败的一种保证措施,通过软件间隔的对WATCHDOG进行服务,保证系统工作正常。

 

通用定时器(TIMER)

TIMER是片内集成的通用定时器,能够向系统提供定时中断,也可以通过外部时钟进行定时计数。

功耗管理模块(PMC)

功耗管理模块控制处理不同工作模式之间的切换,例如:slow,normal,idle和sleep。

目的:通过根据芯片不同的应用,通过动态管理芯片内部各个子模块的时钟源供给和系统和的工作频率。从而降低芯片的整体功耗。

数据传送方式

1.程序控制下的数据传送

通过CPU执行程序中的IO指令来进行传送

2.DMA

传送请求由外设向DMA控制器(DMAC)提出,后者向CPU申请总线,利用系统总线来完成外设和存储器间的数据传送。

   CPU委托DMAC为外设进行DMA传输的流程。