东南大学soc课件4-SoC架构(6学时)

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1SoC架构2课时安排周次内容1SoC架构12SoC架构23系统总线14系统总线25SoC存储子系统6SoC各种接口模块3课时安排周次内容7电子系统级ESL设计8可重构计算9芯片验证10低功耗设计11复习4目录•1、SoC整体架构•2、CPU•3、总线•4、系统控制模块5什么是SoC逻辑单元Analog静态RAMCPU内核PAD6oSoC整体架构BUSCPU外部存储器控制器EMI系统控制模块各种接口7SEP0718DDR2NOR/SRAM/SDRAMNANDVICPMURTCTIMERDMACARM11GPULCDCI2SSPISDIOUARTI2CTOUCHPWMUSBOTGGPIOHDMICODEC系统与时钟控制多媒体系统外设与接口存储系统GPS系统MULTI-LAYERBUSVPU88SEP0718结构图DOWNSIZERLCDCVPUBUS1-AHB64DMAC1ARM11NOR/SRAMNANDDOWNSIZERBUS3-AHB32DMAC2SDIO(2)ESRAM(96kB)PWMRTCVICHDMIGPIOGPIO(AO)TOUCH/ADCTIMERBUS5-APB32UART(4)SPI(3)I2CI2SHDMILCDCI2SPHYGPSAUDIOCODECGPUSYSCTRLAUDIOCODECGPSCTRLBUS4-APB32BUS2-AHB32DDR23PHYUSBDMAUSBOTGPHYPMU9Samsung6410910SamsungS5PV2101011Telechips89001112累计流片20余次10多种SoC芯片65nm,千万门级设计经验几款SoC芯片的版图SEP071865nmTSMC13工作站×14瘦客户机×30SUN大型服务器HPserver×20矢量信号源可编程电源频谱分析仪网络分析仪逻辑分析系统6GHZ混合信号测试深亚微米EDA软件芯片设计环境14芯片量产流程芯片需求分析芯片定义模块划分电路设计验证物理设计流片封装ATE测试板级模块测试系统级测试稳定性测试产品样机产品小批量芯片量产14市场调研产品定义方案设计芯片需求15目录•1、SoC整体架构•2、CPU•3、总线•4、系统控制模块16CPU–SoC中的内核•CPU所做的工作由其指令集决定•CPU的控制和数据通路执行指令集中的各种指令17指令集ISA要完成哪些工作?•以ARM为例–分支指令–数据处理指令•寄存器传送•算术运算•逻辑运算指令•比较指令•乘法指令–存储器访问指令•Load/Store内存访问指令•批量Load/Store内存访问指令•SWP操作指令–SWI系统调用指令–状态寄存器访问指令18控制和数据通路19CPU性能优化技术•流水线技术•高速缓存(Cache)技术•超标量指令执行•可重构计算流水线技术•流水技术无助于减少单个任务的处理延迟(latency)但有助于提高整体工作负载的吞吐率•多个不同任务同时操作,使用不同资源•潜在加速比=流水线级数•流水线的速率受限于最慢的流水段•流水段的执行时间如果不均衡,那么加速比就会降低•开始填充流水线的时间和最后排放流水线的时间降低加速比•相关将导致流水线暂停21目录•1、SoC整体架构•2、CPU•3、总线•4、系统控制模块22总线–SoC的桥梁•CPU、高速设备、低速设备、外部存储器控制接口、系统控制模块等等SoC中各个模块之间的数据传输。•SoC中的各个IP模块以统一的接口和总线通信,避免了挂接在不同SoC架构中接口部分代码的重新编写。•常用的总线:AMBA、NoC23目录•1、SoC整体架构•2、CPU•3、总线•4、系统控制模块–中断控制器–RTC–Watchdog–DMAC–PMC–ICE–Timer24中断控制器•对SoC芯片中各个外设的中断进行管理,进行优先权排队,并送出Irq信号给CPU•连接在APB总线上INTCnIRQIRQ1IRQ2IRQNARMVectorTableFIQIRQ(Reserved)DataAbortPrefetchAbortSoftwareInterruptUndefinedInstructionReset0x1C0x180x140x100x0C0x080x040x00ARM7TDMIINTC内部中断外部中断中断服务程序执行中断产生中断返回25INTC在SoC芯片中的位置INTC26信号列表名称位宽方向说明APB总线接口pclk1bitinAPBclockpreset1bitinAPBresetpsel1bitinAPBperipheralpenable1bitinAPBenablepwrite1bitinAPBwritecontrolpaddr8bitsinAPBaddresspwdata32bitsinAPBwritedataprdata32bitsoutAPBreadbackdata来自其他外设的中断源信号int_srcnuminnumisthewholenumberofinterruptmaximumnumberis64输出到cpu的irq和fiqirq1bitoutirqrequestconnecttoprocessorfiq1bitoutfiqrequestconnecttoprocessor27INTC整体框架APBorAHBapb_interfaceint_genint_srcpriority_logic(irq)irq_statusVectorInterruptControllerpriority_logic(fiq)fiq_statusfiqirqApb_interface:是INTC与总线的接口模块;而又同时是INTC的控制模块,里面有INTC所有的寄存器信息;Int_gen:用于接收中断源,选择中断源为irq或者fiq;中断屏蔽;软件中断。Priority_logic:用于软件中断优先级屏蔽,并且在所有的未被屏蔽的中断信号里面选出优先级最高的中断源,并产生中断信号,分为irq模块和fiq模块;28Irq中断产生IRSR:IRQ原始中断状态寄存器当对应的中断源无效时,该位为0IFR:IRQ软件强制中断寄存器,是否软件强制该位对应的中断源发出中断信号IER:中断允许寄存器,是否允许对应中断源的IRQ中断信号。ISR:中断状态寄存器,当对应中断源或使能位(IER)无效时,该位才为0IMR:中断屏蔽寄存器,是否屏蔽对应的IRQ中断信号IMSR:屏蔽状态寄存器,对应的中断源、使能位无效或屏蔽位有效时,该位才为0IFSR:最终中断状态寄存器,只有优先级大于IPLR寄存器所设置的中断源才能在此寄存器相应位置位IPLR:中断优先级寄存器,设置普通中断的优先级门限,只有优先级大于此值的中断才能通过优先级过滤逻辑送到CPU29Fiq中断产生•FIRSR:FIQ原始中断状态寄存器•FIFR:FIQ软件强制中断寄存器•FIER:FIQ中断允许寄存器•FISR:FIQ中断状态寄存器•FIMR:FIQ中断屏蔽寄存器•FIFSR:FIQ中断最终状态寄存器30中断源-内部中断•RTC–秒中断、分中断、定时中断、Watchdog中断•UART–数据发送结束中断,数据接收有效中断•TIMER–定时/计时中断•DMAC–DMA错误和DMA传输完成•LCDC–错误响应、帧结束、帧起始•SPI–FIFO空满、发送FIFO下溢、接收FIFO上溢31中断源-外部中断•比内部中断复杂,不可控•通常和GPIO口复用•中断源触发方式–上升沿触发–下降沿触发–高电平触发–低电平触发•外部中断信号特殊处理–去除毛刺、寄存、同步到总线时钟•外部中断需要清除32使用外部中断1、清除外部中断–在使用外部中断以前,必须先清除在此之前的中断信号2、配置GPIO控制寄存器–先配置管脚方向为输入–再配置中断触发类型–最后配置管脚模式为中断模式3、配置中断寄存器–设置INTC的中断屏蔽寄存器的相应位屏蔽中断–设置INTC的相应位以允许该中断源产生的中断33ARM异常向量表ExceptionTypeModeVectorAddressResetSupervisor0x00000000UndefinedInstructionUndefined0x00000004SoftwareInterrupt(SWI)Supervisor0x00000008PrefetchAbort(Instructions)Abort0x0000000CDataAbortAbort0x00000010IRQ(Interrupt)IRQ0x00000018FIQ(FastInterrupt)FIQ0x0000001C34异常处理方式Birq_handler(Reserved)Bdata_abort_handlerBprefetch_abort_handlerBSWI_handlerBUndef_handlerBreset_handlerFIQ0x1CIRQ0x180x14DataAbort0x10PrefetchAbort0x0CSWI0x08Undef0x04Reset0x00fiq_handlerirq_handler35异常处理程序•LDRpc,RESET_ENTRY•LDRpc,UNDEF_ENTRY•LDRpc,SWI_ENTRY•LDRpc,PABORT_ENTRY•LDRpc,DABORT_ENTRY•LDRpc,SYSERR_ENTRY•LDRpc,IRQ_ENTRY•LDRpc,FIQ_ENTRY••RESET_ENTRYDCDInitialise_Target•UNDEF_ENTRYDCDUNDEF_Handler•SWI_ENTRYDCDSWI_Handler•PABORT_ENTRYDCDABORT_Handler•DABORT_ENTRYDCDABORT_Handler•SYSERR_ENTRYDCD0•IRQ_ENTRYDCDIRQ_Handler•FIQ_ENTRYDCDFIQ_Handler36IRQ异常处理程序(汇编)•IRQ_Handler••入栈,保存现场•IMPORTint_vector_handler•BLint_vector_handler•出栈,恢复现场•SUBSPC,LR,#437IRQ异常处理程序(C)•externvoidint_vector_handler(void)•{•U32intnum;•U8i=0;••intnum=*(RP)(INTC_IFSTAT);•while(intnum!=1)•{•intnum=intnum1;•i++;•}•(*vector[i].handler)();•return;•}•INT_VECTORvector[]={•/*interruptnumber,handler*/•{INT_NULL,NULL},•{INT_EXT0,NULL},•{INT_EXT1,NULL},•{INT_EXT2,NULL},•{INT_EXT3,NULL},•{INT_EXT4,NULL},•{INT_EXT5,NULL},•{INT_EXT6,NULL},•{INT_EXT7,NULL},•{INT_EXT8,NULL},•{INT_EXT9,NULL},•{INT_EXT10,NULL},•{INT_EXT11,NULL},•{INT_EXT12,NULL},•{INT_EXT13,NULL},•{INT_EXT14,NULL},•{INT_SSI,ssi_handler},•{INT_UART,uart_handler},•{INT_WD,NULL},•{INT_GPT,NULL},•{INT_EMI,NULL},•{INT_DMA,NULL},•};38UART中断的初始化配置•VOIDint_uart0(VOID)•{•UNSIGNEDsysclk=50000000;//系统时钟•UNSIGNEDbaudrate=57600;//波特率•UNSIGNEDdatabit=8;//数据位••INTrecie=1;//接

1 / 88
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功