您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > SOPC学习问题集答案
一、名词解释什么是IC、ASIC、SOC、SOPC、EDA、嵌入式系统等IC:是半导体元件产品的统称,包括:集成电路、三极管、特殊电子元件。ASIC:专用IC。是指为特定的用户、某种专门或特别的用途而设计的芯片组。SOC:片上系统。随IC设计与工艺的提高,使原先由许多IC组成的电子系统可集成到一个芯片上,构成SOC。SOPC:可编程的片上系统。是Altera公司提出来的一种灵活、高效的SOC解决方案。也可认为是基于FPGA解决方案的SOC。EDA:电子设计自动化。EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言HDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。二、简答题1,嵌入式系统的基本架构如何?2,构成SOPC的方案有几种途径?简述它们的实现方法并比较优劣。构成SOPC的方案有三种途径,1.基于FPGA嵌入IP硬核的SOPC系统;2.基于FPGA嵌入IP软核的SOPC系统;3.基于HardCopy技术的SOPC系统1)基于FPGA嵌入IP硬核的应用。这种SOPC系统是指在FPGA中预先植入处理器。这使得FPGA灵活的硬件设计与处理器的强大软件功能有机地结合在一起,高效地实现SOPC系统。2)基于FPGA嵌入IP软核的应用。这种SOPC系统是指在FPGA中植入软核处理器,如:NIOSII核等。用户可以根据设计的要求,利用相应的EDA工具,对NIOSII及其外围设备进行构建,使该嵌入式系统在硬件结构、功能特点、资源占用等方面全面满足用户系统设计的要求。3)基于HardCopy技术的应用。这种SOPC系统是指将成功实现于FPGA器件上的SOPC系统通过特定的技术直接向ASIC转化。把大容量FPGA的灵活性和ASIC的市场优势结合起来,实现对于有较大批量要求并对成本敏感的电子产品,避开了直接设计ASIC的困难。3,简述NiosII处理器系列包括哪几种内核?并说明具体特点。NiosII处理器系列包括三种内核分别是NiosII/f(快速)、NiosII/e(经济)、NiosII/s(标准)。NiosII/f(快速):性能最高,但占用的逻辑资源最多。NiosII/e(经济):占用的逻辑资源最少,但性能最低。NiosII/s(标准):平衡的性能和尺寸。NiosII/s内核比第一代的NiosCPU更快,占用的资源更少。4,简述可配置嵌入式软核处理器的优势。优势:1.提供合理的性能组合;2.提升系统的性能;3.降低系统成本;4.延长产品的生命周期。5,基于NiosII软核处理器的SOPC开发需要用到哪些开发工具软件?答:需要用到QuartusII、SOPCBuilder以及NiosIIIDE6,SOPC开发分为哪两个部分,简述其开发流程,并画出SOPC开发流程框图。答:SOPC开发分为两个部分:基于QuartusII、SOPCBuilder的硬件设计、基于NiosIIIDE的软件设计。NiosIICPU的基本开发流程为:(1)在QuartusII中新建一个工程(硬件)。(2)在SOPCBuilder中根据自己的需要加入各种IP核。(3)利用SOPCBuilder产生QuartusII能够识别的文件。(4)在(1)中新建的工程中加入(3)中生成的文件。(5)加入输入、输出以及双向端口,并根据需要对其命名。(6)对(5)中命名的输入、输出核双向端口根据选定的FPGA进行引脚分配。(7)编译工程。(8)下载编辑代码到FPGA。(9)利用NiosIIIDE新建另一个工程(软件)。(10)根据(2)中的资源,编写项目需要的代码。(11)编译、下载并调试,查看运行结果,直到正确。(12)如果需要,将(11)中生成的代码下载到代码Flash中。7,以控制LED闪烁的简单NiosII处理器系统为例,详细说明SOPC的开发过程。1.分析系统需求。2.启动QuartusII软件和新建实例设计工程。3.启动新的SOPCBuilder系统。4.在SOPCBuilder中定义并生成系统。5.集成SOPCBuilder系统到QuartusII工程。6.选择芯片型号并进行管脚分配。7.设置编译选项并编译硬件系统。8.下载硬件设计到目标FPGA。9.使用NiosIIIDE开发用户程序。10.调试用户程序。11.运行程序。8,简述NIOSII体系架构。9,简述NIOSII处理器结构。10,NiosII处理器支持哪两个复位信号?并详细说明之。NiosII处理器支持两个复位信号:reset和cpu_resetrequest。reset:是一个强制处理器核立即进入复位状态的全局硬件复位信号。cpu_resetrequest:是一个可以让CPU复位但不影响NiosII系统其它外设的局部复位信号。11,简述NiosII处理器的异常与中断。12,简述Avalon交换结构总线特点,并比较它与传统CPU总线的区别。特点:1.所有外设的接口与Avalon总线时钟同步,不需要复杂的握手/应答机制。这样就简化了Avalon总线的时序行为,而且便于集成高速外设。Avalon总线以及整个系统的性能可以采用标准的同步时序分析技术来评估。2.所有的信号都是高电平或低电平有效,便于信号在总线中高速传输。在Avalon总线中,由数据选择器(而不是三态缓冲器)决定哪个信号驱动哪个外设。因此外设即使在未被选中时也不需要将输出置为高阻态。3.为了方便外设的设计,地址、数据和控制信号使用分离的、专用的端口。外设不需要识别地址总线周期和数据总线周期,也不需要在未被选中时使输出无效。分离的地址、数据和控制通道还简化了与片上用户自定义逻辑的连接。区别:Avalon交换结构总线使用从属设备仲裁技术,使并行多控制器操作最大限度地提高系统性能。如果多个控制器同时存取从属设备,则由从属设备仲裁决定哪一个控制器得到从属设备的存取权。在传统的总线中,单个仲裁器控制一个或多个总线控制器跟总线从属设备进行通信,由于每次只能有一个控制器可以存取系统总线而形成带宽瓶颈。13,典型的SOPCBuilder外设IP在功能上可分成哪几部分?典型的SOPCBuilder外设IP在功能上可分成以下几部分:1.外设行为逻辑:实现了外设所要完成的功能;2.寄存器:提供了访问行为逻辑的存储器映射;3.Avalon总线接口:是访问寄存器的物理接口;4.软件驱动子程序:提供了应用程序访问外设的接口。14,简述PIO外设IP使用方法,详细叙述PIO内核相关寄存器软件编程方法,如何初始化PIO内核,并书写PIO中断服务程序。答:使用方法:控制LED、获取开关量、控制显示设备、配置非片上设备或与其进行通信编程方法:读写数据寄存器IORD_ALTERA_AVALON_PIO_DATA(base)IOWR_ALTERA_AVALON_PIO_DATA(base,data)读写方向寄存器IORD_ALTERA_AVALON_PIO_DIRECTION(base)IOWR_ALTERA_AVALON_PIO_DIRECTION(base,data)读写中断屏蔽寄存器IORD_ALTERA_AVALON_PIO_IRQ_MASK(base)IOWR_ALTERA_AVALON_PIO_IRQ_MASK(base,data)读写边沿捕捉寄存器IORD_ALTERA_AVALON_PIO_EDGE_CAP(base)IOWR_ALTERA_AVALON_PIO_EDGE_CAP(base,data)中断初始化staticvoidButton_ISR_Init(void){void*pEdge_Capture=(void*)&Edge_Capture;//允许4个按键中断IOWR_ALTERA_AVALON_PIO_IRQ_MASK(S1_S4_BASE,0xf);//清除中断标志寄存器IOWR_ALTERA_AVALON_PIO_EDGE_CAP(S1_S4_BASE,0x0);//注册中断alt_irq_register(S1_S4_IRQ,pEdge_Capture,Button_Irq_Handler);}中断服务程序staticvoidButton_Irq_Handler(void*context,alt_u32id){volatileint*edge_capture_ptr=(volatileint*)context;//保存中断标志寄存器*edge_capture_ptr=IORD_ALTERA_AVALON_PIO_EDGE_CAP(S1_S4_BASE);//中断服务处理//把对应的LED点亮IOWR_ALTERA_AVALON_PIO_DATA(D5_D8_BASE,*edge_capture_ptr);…….IOWR_ALTERA_AVALON_PIO_EDGE_CAP(S1_S4_BASE,0);//清除中断标志寄存器}15,综述定时器内核,详细叙述定时器内核相关寄存器软件编程方法,如何初始化定时器内核,并书写定时器中断服务程序。SOPCBuilder中的Timer核是一个32位、基于Avalon接口的软核,它有以下特性:启动、停止核复位都可由软件控制两种计数模式:单次向下计数模式和连续向下计数模式向下计数周期寄存器可屏蔽中断(当计数器递减到0的时候)可工作在看门狗模式可提供一个端口输出,使其产生周期性的脉冲兼容32位和16位处理器读写状态寄存器IORD_ALTERA_AVALON_TIMER_STATUS(base)IOWR_ALTERA_AVALON_TIMER_STATUS(base,data)读写控制寄存器IORD_ALTERA_AVALON_TIMER_CONTROL(base)IOWR_ALTERA_AVALON_TIMER_CONTROL(base,data)读写周期寄存器IORD_ALTERA_AVALON_TIMER_PERIODL(base)IOWR_ALTERA_AVALON_TIMER_PERIODL(base,data)IORD_ALTERA_AVALON_TIMER_PERIODLH(base)IOWR_ALTERA_AVALON_TIMER_PERIODH(base,data)读写计数器快照寄存器IORD_ALTERA_AVALON_PIO_TIMER_SNAPL(base)IOWR_ALTERA_AVALON_PIO_TIMER_SNAPL(base,data)IORD_ALTERA_AVALON_PIO_TIMER_SNAPH(base)IOWR_ALTERA_AVALON_PIO_TIMER_SNAPH(base,data)定时器中断初始化staticvoidTimer_ISR_Init(void)//初始化中断{//清除Timer1中断标志寄存器IOWR_ALTERA_AVALON_TIMER_STATUS(TIMER1_BASE,0);//注册Timer1中断alt_irq_register(TIMER1_IRQ,NULL,Timer1_Irq_Handler);//允许Timer1中断IOWR_ALTERA_AVALON_TIMER_CONTROL(TIMER1_BASE,0x01);//-----------------------}定时器中断服务程序staticvoidTimer1_Irq_Handler(void*context,alt_u32id){//驱动LED1闪烁LED1=(LED1+1)%4;IOWR_ALTERA_AVALON_PIO_DATA(LED1_BASE,LED1);//清除Timer1中断标志寄存器IOWR_ALTERA_AVALON_TIMER_STATUS(TIMER1_BASE,0);}16,综述UART内核,详细叙述UART内核相关寄存器软件编程方法,如何初始化UART内核,并书写UART
本文标题:SOPC学习问题集答案
链接地址:https://www.777doc.com/doc-4633548 .html