首页 > 其他分享 >芯片项目介绍

芯片项目介绍

时间:2023-02-26 14:57:06浏览次数:36  
标签:项目 芯片 IP 总线 介绍 中断 模块 CPU

项目芯片介绍

在项目中负责什么?有什么难点?如何实现?

  • 总线原理-AMBA总线(AHB,APB总线)

简介

需求

需要了解需求(芯片需要哪些模块,与哪些接口通信),这个项目是一个MCU的芯片,MCU中集成了一个轻量级的CPU,CPU以当前ARM的芯片为例(A系列芯片,M系列芯片)。

  • 芯片需要与外界进行通信,SD接口,USB接口。
  • 芯片具有计算功能,CPU和加速器进行一些计算,处理的数据需要存储,就需要存储器。NandFlash存储需要芯片内部有NandFlash控制器。
  • 芯片需要有高速总线和低速总线。
  • 项目芯片集成了32位CPU,包含SD,USB,NandFlash,SPI等高速通许接口以及GPIO,URAT,I2C等通用芯片。

参数

芯片内核电压:1.8V(电压越大,性能越高,功耗越高)
芯片IO电压:3.3V/1.8V(在IO中国有level shifter,可以升压或者降压,IO入口一端是高压,内核处是低电压)
芯片工艺:TSMC 018 Flash process(工艺决定了PPA,工艺越高,流片成本越高;Flash工艺,可以进行一个片上Flash集成)
芯片IP:DW IP;Analog IP;Soft IP

  1. 软核(Soft IP Core)
    供应商提供的VHDL的方式提供的IP,自己团队或者是外包进行DC和后端设计。可以给后端实现提供较大的空间。
  2. 固核(Firm IP Core)
    提供的是一个网表,将RTL进行了综合。
  3. 硬核(Hard IP Core)
    具体形状已经确定了,在SoC中要预留硬核IP的位置空间。硬核IP的定制化程度比较低。

模块

  • CPU - M系列轻量级处理器(32位)
    之前很多芯片都是使用的ARM的架构,成本较高;但是现在很多低端的芯片使用的是risk-V架构芯片(开源架构)
    RISC-V(发音为“risk-five”)是一个基于精简指令集(RISC)原则的开源指令集架构(ISA)
  • 片上存储器
    需要data存储器和instruction存储器,需要在片上规划存储器,提升CPU的访问存储执行效率,使用片外的存储器效率低。
    256k 程序Flash,其中8k/16k用于boot,其余用于UserCode
    64k SRAM,支持单周期读写
  • DMA控制器
    因为芯片中有很多存储器,所以需要实现存储器之间的信息通讯和传输,就需要DMA控制器。
    这个芯片提供三个独立的DMA通道,分别用于momery-momery,momery-spi(慢速通道),spi-momery的传输,三个通道可以同时使能
    DMA是挂载在总线上的使用的AHB总线,主要参数Burst Size,transfer size等可以配置
  • 中断控制器
    提供32个中断源;中断优先级可以配置
    在计算机中,中断控制器是一种集成电路,可帮助微处理器或CPU处理来自多个不同源(如外部I / O设备)的中断请求(Interrupt Request,以下简称IRQ),这些中断请求可能同时发生。中断控制器有助于确定 IRQ 的优先级,以便CPU在得到 IRQ 的相对优先级评估结果后,切换到最合适的中断处理程序 (Interrupt Service Routine,以下简称ISR)。
    中断器原理简介
    首先引出中断产生的原因,对于CPU而言,假如没有中断的概念,CPU会根据指令在内存中的存放顺序,依次取指,解码,执行通常情况下PC的值一般指向下一条需要处理的指令地址。
    当程序顺序执行时,PC每次根据指令字节数增加相应的值。以32位指令解码为例,每执行一条非跳转指令的情况下一般是增加4字节。执行过程中,若遇到跳转/返回指令,则跳转/返回到对应的PC地址执行。
    中断工作原理:计算技术里中断过程,就是主芯片的外部信号或内部信号,中断了该芯片正在执行的程序,主芯片转而处理由该信号引发的其他程序,结束后再回到中断的“断点”,继续执行原有程序。
  • Timer/Watchdog
    提供3个独立的Timer,提供32bit的Watchdog
    watchdog简介
    看门狗,又叫watchdog timer,是一个定时器电路,一般有一个输入,叫喂狗(kicking the dog/service the dog),一个输出到MCU的RST端,MCU正常工作的时候,每隔一段时间输出一个信号到喂狗端,给 WDT清零,如果超过规定的时间不喂狗(一般在程序跑飞时),WDT定时超过,就会给出一个复位信号到MCU,使MCU复位。防止MCU死机. 看门狗的作用就是防止程序发生死循环,或者说程序跑飞。

外部接口

  • SD Host接口
    SD Host兼容SDmem1.01和2.0协议
  • 外部存储器接口
    支持对片外SRAM,PSRAM,norflash的访问(16bit)
    提供四个片选,每个片选32M空间
  • NandFlash接口
    支持8bit SLC/MLC NandFlash
    支持2k,4k,8k page size
    支持硬件ECC纠错,ECC纠错能力(16b/24b/30b)/kb
    兼容onfi2.0规范(注意协议的版本)
  • SPI master/slave接口
    支持4-16bit传输
    提供RX,TXfifo
    支持DMA
  • UART 接口
    波特率可配置
    支持8、9bit等数据格式
    支持硬件奇偶校验
  • GPIO接口
    提供20个GPIO,其中6个独立,14个复用
    提供5个用中断功能的GPIO,中断触发模式可配置
  • JTAG调试接口

架构

  • AHB和APB总线通过Bridge进行连接,AHB作为主访问,APB作为从访问。只存在AHB到APB的访问,不存在APB到AHB的访问。

几种IP互联接口标准

  • IBM-CoreConnect(PLB/OPB/MCR)
  • ARM-AMBA
  • Silicore-Wishbone(OpenCore)
  • OCP

IP地址

  • 选择AMBA总线作为互联协议之后,如何区分总线上的不同的模块?通过不同地址空间的划分进行区分,给每个IP划分一个地址段;CPU访问一个模块的时候会去查找memory map表,查到相关的地址段之后,就会访问该地址段的模块。
  • AHB总线上最下的地址空间是1k

boot(初始化)方式

boot就是芯片上电之后对于不同的模块进行初始化的过程,初始化之后Soc才能正常进行运转。
芯片提供两种Boot方式

  • PFlash boot(Int)
  • Ext NorFlash boot

时钟架构

芯片架构除了功能模块划分,还需要进行时钟划分,所有的模块都需要时钟进行驱动。如果在SoC运作过程中时钟出现问题,整个SoC的功能都会出现问题。

  • 输出有CPU时钟和BUS时钟
  • 数据量传输大,就选择没有分频的时钟;数据量比较小,可以使用二分频的时钟,通过选择时钟进行降低功耗。

功能模式

  • Function Mode
    芯片进行处理的时候的模式
  • DFT Mode
    DFT,对于组合逻辑或者寄存器形成扫描链(scan_chain),通过scan_chain判断是不是功能正常。
    Logic_scan_mode
    CPU_test(CPU scan)
    Analog_test
    USB_phy_test
    Pflash_test
    通过PinMux模块(IO),进行pad复用
  • 正常在芯片内部形成scan_chain之后,用于测试的激励信号会来自与外部的基台,但是SRAM是不同的。
  • SRAM通常使用MBIST进行测试,SRAM一起集成的bist会自己产生激励,SRAM会读取bist的输出传递给bist,bist会有比较逻辑进行判断SRAM是不是完好--自建内测试。

Pinmux

芯片的引脚是有限的,但是很多模块都需要IO,如果给每一个IP都分配IO引脚就会造成引脚数量过多,为了解决这个问题,需要进行引脚的复用。
通过mux进行选择,

  • 输入信号,进行多选1
  • 输出信号,可以进行汇总输出

芯片的集成层次

  • core
    主要包括AHB,APB总线以及总线上的各个模块
  • Top
    主要包括core,cpu,clk_rst产生模块,Macro Wrapper,pinmux模块
  • Top_pad
    主要包括芯片的所有PAD,VR以及输出buffer

Libraries

  • 选择好工艺之后,会有工艺库,其中包含standcell,SRAM...

物理设计

FloorPlan

  • FloorPlan的输入是整个芯片的数据流

电源分布

封装形式

标签:项目,芯片,IP,总线,介绍,中断,模块,CPU
From: https://www.cnblogs.com/Icer-newer/p/17156205.html

相关文章

  • 《复试项目》报错汇总【持续更新】
    我推荐大家的学习路线是,先把我的视频花1~2天的时间刷完,然后再考虑做不做项目,如果时间紧张,把我的代码看懂,然后多准备准备机器学习相关的知识。如果有时间的话,那就二刷我的视......
  • springboot中jar包中 集成react前端项目
    1.前端打包复制到springboot项目中2.配置thymeleaf:prefix:classpath:/templates/suffix:.htmlcache:falseservlet:content-type:text/htmle......
  • maven项目中创建servlet类
    maven项目中创建servlet类【以下步骤都是在设置好maven(maven的环境变量配置和本地仓库的配置)和Tomcat后,进行以下步骤】创建web应用(用的是idea2022版本),按照图示进行创建,......
  • 910~911黑马旅游网项目导入,启动
    黑马旅游网项目导入,启动:1.项目导入初始化的项目:https://pan.baidu.com/s/1Fd-6zx4KaX-F7M5IhCWlEw提取码:btan,把给定的初始项目导入即可双击运......
  • Vue mixin混入的介绍
    功能:可以把多个组件共用的配置提取成一个混入对象使用方式:1、第一步:定义混合,例如:2、第二步:使用混合(全局混合和局部混合)(1)局部混合mixins:['XXX']  (2)全局混合Vue......
  • OpenSSL 介绍(4)--非对称加密
    本文主要介绍如何使用OpenSSL来进行非对称加解密,使用的算法为RSA,DSA算法的使用方法类似;文中所使用到的软件版本:OpenSSL1.1.1s、CentOS 7.9.2009。1、非对称加密算法......
  • class介绍初体验
     <!DOCTYPEhtml><html><head><metacharset="utf-8"><title></title></head><body><script>classShouji{......
  • 聚类算法(上):8个常见的无监督聚类方法介绍和比较
    无监督聚类方法的评价指标必须依赖于数据和聚类结果的内在属性,例如聚类的紧凑性和分离性,与外部知识的一致性,以及同一算法不同运行结果的稳定性。本文将全面概述Scikit-Le......
  • 自己从零写操作系统GrapeOS系列教程——4.GrapeOS开发环境介绍
    1.开发环境简介为了减少开发过程中不必要的麻烦,希望大家的开发环境尽量与我的保持一致。我的开发环境如下:Windows10电脑一台VisualStudioCode(最好是最新版)VirtualB......
  • Nmap介绍与安装
    一、概述:Nmap是一款开源、免费的网络探测、安全审计的工具电脑端安装了nmap工具之后,就可以利用nmap向其他主机发送数据包,其他主机收到数据包后会返回信息,nmap会根据这些......