sopc考试复习.doc_第1页
sopc考试复习.doc_第2页
sopc考试复习.doc_第3页
sopc考试复习.doc_第4页
sopc考试复习.doc_第5页
免费预览已结束,剩余3页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Nios的基本组成1.由32个32位通用寄存器r0-r31组成的寄存器组;2.支持算数、关系、逻辑、移位和循环操作的算数逻辑单元;3.支持用户自定义定制指令的定制指令逻辑接口;4.一个简单的、非向量异常控制器;5.支持32个外部硬件中断的中断控制器;6.分开的指令总线和数据总线;7.指令和数据缓冲存储器;8.指令和数据紧耦合存储器接口;9.JTAG调试模块。2、Nios的特点 1) NIOS处理器采用流水线技术、单指令流的32位通用RISC处理器2) 提供全32位的指令集、数据总线和地址总线3) 提供32个通用寄存器4) 提供32个外部中断源5) 提供结果为32位的单指令32*32乘除法6) 提供专用指令计算结果为64位和128位的乘法7) 可以定制单精度浮点计算指令8) 单指令桶形移位寄存器9) 对各种片内外设的访问及与片外外设和存储器的接口10)硬件辅助的调试模块,在IDE环境下,可完成开始、停止、断点、单步执行、指令跟踪等基本调试和高级调试功能11)基于GNU C/C+工具集和Eclipse IDE的软件开发环境12)ALTERA公司的SignalTap逻辑分析仪,实现对指令、数据、FPGA设计中的逻辑信号进行实时分析13)所有NISO处理器均兼容的指令系统14)高达218DMIPS的性能3、什么是SoPC? 英文全称是什么?列举3种构成SoPC的方案?System On Programmable Chip,可编程的片上系统。是Altera公司提出来的一种灵活、高效的SOC解决方案。SOPC将处理器、存储器、I/O、LVDS、CDR等系统设计需要的功能模块集成到一个可编程器件上,构成一个可编程的片上系统。现今SOPC可以认为是基于FPGA解决方案的SOC。方案:基于FPGA嵌入IP硬核的SOPC系统;基于FPGA嵌入IP软核的SOPC系统;基于HardCopy技术的SOPC系统4、Nios的三种操作模式 管理模式:除了不能访问与调试有关的寄存器(bt、ba和bstatus)外,无其它访问限制。一般系统代码运行在管理模式下,应用程序代码可在管理模式下正常运行。当处理器运行在管理模式下,U位是0。处理器复位后立即进入管理模式。用户模式:是管理模式功能访问的一个受限子集,它不能访问控制寄存器和一些通用寄存器(et、bt、ea、ba,访问他们会产生一个异常)。应用代码在用户模式与管理模式下均能正常运行。用户模式为管理多任务OS提供更高的可靠性,系统代码把控制权交给应用代码前,可以选择切换到用户模式。调试模式:拥有最大的访问权限,可以无限制地访问所有的功能模块,U位为零。系统代码和应用代码在调试模式下不能运行。模式之间的切换:处理器复位后即进入管理模式(U为0),执行eret(异常返回指令,把estatus寄存器的内容复制到status寄存器,之后跳转到ea寄存器所指地址处)指令后,切换到用户模式(复位后第一次进入用户模式必须对estatus和ea寄存器进行正确的设置,并执行一条eret指令)。当某种异常出现时,处理器重新进入管理模式,异常将清除U位。只有在执行断点指令或JTAG调试模块通过硬件强制产生一个断电之后,处理器才进入调试模式。当从调试模式退出时,处理器恢复进入调试模式以前的状态。5、Nios的异常分类 Nios的异常包括:硬件中断和软件异常。软件异常可分为软件陷阱异常、未定义指令异常和其他异常。硬件中断:status中PIE位为1,中断请求irqn有效,ienable寄存器相应位为1,硬件才能产生中断。软件陷阱:当执行程序中的trap指令时,产生软件陷阱异常。未定义指令异常:当处理器执行未定义指令时(不是硬件实现的有效指令)产生未定义指令异常。异常处理判断哪个指令产生异常,如果指令不能通过硬件执行,可以在一个异常服务程序中通过软件方式执行。其他异常:其它异常类型是为将来系统扩展准备的。中断处理流程:(1)把status寄存器内容复制到estatus寄存器中,保存当前处理器状态;(2)清除status寄存器的U位为0,强制处理器进入超级用户状态;(3)清除status寄存器的PIE位为0,禁止所有的硬件中断;(4)把异常返回地址写入ea寄存器(r29);(5)跳转到异常处理地址。异常处理优先级:硬件中断软件陷阱未定义指令其它异常6、Nios的内核类型Nios II/f (快速):性能最高,但占用的逻辑资源最多。Nios II/e (经济):占用的逻辑资源最少,但性能最低。Nios II/s (标准):平衡的性能和尺寸。NiosII/s内核比第一代的Nios CPU更快,占用的资源更少。7、掌握Avalon 从端口的信号,分析基本的从端口的读写时序 从端口传输常用的信号:1.address信号 2.readdata、writedata信号 3.chipselect、read、write信号 4.byteenable、writebyteenable信号 5.begintransfer信号 6.irq、reset、clk、waitrequest信号:信号类型宽度方向必需功能及使用描述基本信号类型clk1InNoAvalon从端口的同步时钟,所有的信号必须与clk同步,异步外设可以忽略clk信号。chipselect1InNoAvalon从端口的片选信号,片选有效时才接受一次传输,无效时忽略传输周期。address132InNo连接Avalon交换架构和从端口的地址线,指定了从外设地址空间的一个字的地址偏移。可以访问一个字,从每个地址访问一个完整的数据单元(其位数取决于与readdata、writedata宽度)。read1InNo读从端口的请求信号。当从端口不输出数据时不使用该信号。若使用了该信号,则必须使用readdata或data信号。readdata(注)11024OutNo读传输时,输出到Avalon交换架构的数据线。若使用了该信号,则data信号不能使用。write1InNo写从端口的请求信号。当从端口不从Avalon交换架构接收数据,不需要该信号。若使用了该信号,必须使用writedata或data信号,writebyteenable信号不能使用。writedata(注)11024InNo写传输时,来自Avalon交换架构的数据线。若使用了该信号,data信号不能使用。byteenable2, 4, 6, 8,16, 32, 64,128InNo字节使能信号。在对宽度大于8位的存储器进行写传输时,该信号用于选择特定的字节段。若使用了该信号,writedata信号页必须使用,writebyteenable信号不能使用。writebyteenable2, 4, 6, 8,16, 32, 64,128InNo相当于byteenable信号和write信号的逻辑与操作。若使用了该信号,writedata信号必须使用,write和byteenable信号不能使用。begintransfer1InNo在每次传输的第一个周期内有效,使用用法取决于具体的外设。其它信号Irq1,32InNo中断请求信号。如果Irq信号是一个32位的矢量信号,那么它的每一位直接对应一个从端口上的中断信号,它与中断优先级没有任何的联系;如果Irq是一个单比特信号,那么它是所有从外设的Irq信号的逻辑或,中断优先级由irqnumber信号确定。irqnumber6InNo只有在irq信号为单比特信号时,才使用irqnumber信号来确定外设的中断优先级。Irqnumber的值越小,所代表的中断优先级越高。reset1InNo全局复位信号。实现跟外设相关。resetrequest1OutNo允许外设将整个Avalon系统复位。复位操作立即执行。注:如果从端口使用动态地址对齐,信号宽度必须是2的幂如果从端口同时使用readdata和writedata信号,这两个信号的宽度必须相等如果从端口使用动态地址对齐,信号宽度必须是2的幂。从端口的基本读传输:从端口的基本写传输:主端口信号:信号类型信号宽度方向必需功能及使用描述基本信号类型clk1InYesAvalon主端口的同步时钟,所有的信号必须与clk同步。waitrequest1InYes迫使主端口等待,直到Avalon交换架构准备好处理传输。address132OutYes从Avalon主端口到Avalon交换架构的地址线。该信号表示的是一个字节的地址,但主端口只发出字边界的地址。read1OutNo主端口的读请求信号。主端口不执行读传输时不需要该信号。如果使用了该信号,readdata或data信号线必须使用。readdata8, 16, 32, 64, 128, 256, 512, 1024InNo读传输时,来自Avalon交换架构的数据线。当主端口不执行读传输时,不需要该信号。如果使用了该信号,read信号必须使用,data信号不能使用。write1OutNo主端口的写请求信号。不执行写传输时不需要该信号。如果使用该信号,writedata或data信号必须使用。writedata8, 16, 32, 64,128, 256, 512,1024OutNo写传输时,到Avalon交换架构的数据线。当主端口不执行写传输时,不需要该信号。如果使用了该信号,write信号必须使用,data信号不能使用。byteenable2, 4, 6, 8, 16, 32, 64, 128OutNo字节使能信号。在对宽度大于8位的存储器进行写传输时,该信号用于选择特定的字节段。读传输时,主端口必须置所有的byteenable信号线有效。其它信号Irq1,32InNo中断请求信号,如果Irq信号是一个32位的矢量信号,那么它的每一位直接对应一个从端口上的中断信号,它与中断优先级没有任何的联系;如果Irq是一个单比特信号,那么它是所有从外设的Irq信号的逻辑或,中断优先级由irqnumber信号确定。irqnumber6InNo只有在irq信号为单比特信号时,才使用irqnumber信号来确定外设的中断优先级。Irqnumber的值越小,所代表的中断优先级越高。reset1InNo全局复位信号。实现跟外设相关。resetrequest1OutNo允许外设将整个Avalon系统复位。复位操作立即执行。注:如果主端口同时使用readdata和writedata信号,两个信号的宽度必须相等。Avalon从端口没有任何信号是必须的Avalon主端口必须有三个信号:clk、address、waitrequest前面所述的Avalon信号类型都是高电平有效的,Avalon接口规范也提供低电平有效的信号类型,在相应的信号类型名后添加 ”_n”表示。8、Avalon总线的特点1)简单性:易于理解、易于使用。2)占用资源少:减少对FPGA片内资源的占用。3)高性能:Avalon总线可以在每一个总线时钟周期完成一次数据传输。4)专用的地址总线、数据总线和控制总线:简化Avalon总线模块和片上逻辑之间的接口,Avalon外设不需要识别数据和地址周期。5)强数据宽度支持能力:支持高达1024位的数据宽度,支持不是2的偶数幂的数据宽度。6)支持同步操作:所有Avalon外设的接口与Avalon交换架构的时钟同步,不需要复杂的握手/应答机制,简化了Avalon接口的时序行为,便于集成高速外设。7)支持动态地址对齐:Avalon总线可以处理具有不同数据宽度的外设间的数据传输,其自动地址对齐功能将自动解决数据宽度不匹配的问题。8)开放性: Avalon总线规范是一个开放的标准,用户可以在未经授权的情况下使用Avalon总线接口自定义外设。9、IP核分为软核、硬核和固核,解释其含义软核(Soft IP Core) 以HDL文本形式提交给用户,它已经过RTL级设计优化和功能验证,但其中不含任何具体的物理信息。 固核(Firm IP Core) 介于软核和硬核之间,除了完成软核所有的设计外,还完成了门级电路综合和时序仿真等设计环节。 硬核(Hard IP Core) 基于半导体工艺的物理设计,已有固定的拓扑布局和具体工艺,并已通过工艺验证,具有可保证的性能。10、PIO核四个寄存器是什么,解释其含义。当基地址为0x10时,其四个寄存器的地址分别为多少?分析边沿捕获寄存器的数四个寄存器地址分别为:0x10、0x14、0x18、0x1c。(错位连接)编程范例:int g;static void handle_button_interrupts(void* context, alt_u32 id)/按键中断处理函数g = IORD_ALTERA_AVALON_PIO_EDGE_CAP(PIO_KEY_BASE);/读边沿寄存器捕获的按键状态 IOWR_ALTERA_AVALON_PIO_EDGE_CAP(PIO_KEY_BASE, 0);/向边沿寄存器写任意值清零static void init_button_pio()/按键中断初始化 IOWR_ALTERA_AVALON_PIO_IRQ_MASK(PIO_KEY_BASE, 0x0F);/向相应位写1使能中断 IOWR_ALTERA_AVALON_PIO_EDGE_CAP(PIO_KEY_BASE, 0x05);/边沿寄存器清零 alt_irq_register( PIO_KEY_IRQ, NULL, handle_button_interrupts);/按键中断函数注册边沿捕获寄存器:注意边沿捕获寄存器的中断使能,只有使能才会在相应按键变动时触发中断,但是中断程序不执行不代表边沿捕获寄存器不读取按键状态,只是不赋值而已(实验中的g)。边沿捕获寄存器置一后如果不通过写数清零则始终为1.11、 Timer核的计数模式status状态寄存器:control控制寄存器PERIODH、PERIODL为定时器计数值的高16位与低16位。编程范例:static void Timer0_Irq_Handler(void *context,alt_u32 id)/中断处理函数IOWR_ALTERA_AVALON_TIMER_STATUS(TIMER_0_BASE,0);/清除中断标志位IOWR_ALTERA_AVALON_TIMER_CONTROL(TIMER_0_BASE,0x05);static void Timer0_ISR_Init(void) printf(n Timer Initial! n); IOWR_ALTERA_AVALON_TIMER_STATUS(TIMER_0_BASE,0);/清除中断标志位 alt_irq_register(TIMER_0_IRQ,NULL,Timer0_Irq_Handler);/中断函数注册 IOWR_ALTERA_AVALON_TIMER_PERIODL(TIMER_0_BASE,50000); IOWR_ALTERA_AVALON_TIMER_PERIODH(TIMER_0_BASE,1000);/函数计数值写入 IOWR_ALTERA_AVALON_TIMER_CONTROL(TIMER_0_BASE,0x05);/配置计数器工作状态12、FPGA中PLL的作用是什么,其输入端连接什么信号?有几个输出端,分别连接到什么信号上?参照图1-6PLL(锁相环)作用:实现两个不同设备之间的时钟同步,减小相移,从而减小和调整时钟信号的延时和建立时间。输入短接入四个时钟信号,每次只能选择其中的一个端输入,有四个输出端,其中三个为全局时钟,为内部提供始终信号,另外一个为PLL_OUT,为外部的时钟输出信号。13、Altera EP2C35有几个PLL,每个有几个输出四个PLL,每个有四个全局时钟输出14、Alt_irq_register里面的三个参数是什么,分别代表什么意义?以PIO中断为例进行说明中断注册函数:中断处理函数:void isr(void* context,alt_u32 id) 参数意义与上相同。范例:alt_irq_register( PIO_KEY_IRQ, edge_capture_ptr, handle_button_interrupts)PIO_KEY_IRQ是按键中断号,edge_capture_ptr是传递给中断服务程序的参数(一般为NULL),handle_button_interrupts是中断服务子程序的开始地址,也就是函数名。15、添加基于Avalon接口外设的基本流程(1)指定硬件功能(2)指定微处理器访问和控制该硬件的应用程序接口(3)定义一个AVALON接口:提供正确的控制机制、足够的吞吐性能(4)采用VHDL或Verilog编写硬件设计(5)单独测试硬件设计(6)编写C头文件,定义寄存器映射(7)使用元件编辑器将硬件和软件文件打包成一个元件(8)例化元件为SOPC系统的一个模块(9)使用NIOSII处理器测试元件的寄存器级访问(10)编写元件的驱动程序(11)反复改进元件的设计:硬件、软件、元件更新(12)编译完整的包含一个或多个该元件的SOPC系统(13)执行系统级的验证,若必要,进行反复设计(14)完成元件设计,发布共享元件16、什么是静态地址,什么是动态地址?静态地址对齐,当主端口从宽度较小的从端口读数据,从端口接到主端口地位,高位填充为0,写数据时,高位忽略。主端口不能访问宽度比它大的从端口。动态地址对齐,高位的主端口数据字节与从端口地址空间中的下一个位置对应。当主端口从宽度较小的从端口读数据,从端口执行多次读传输(32位主端口与16位从端口,从端口每次读两次以填满32位),写数据时一样。17、SDRAM的地址范围为base:700000 end:7fffff分别指什么意义SDRAM为存储器,base:700000为存储器起始地址,end:7fffff为终止地址。对应18、什么是静态功耗?什么是动态功耗?动态功耗分为几种总功耗 = 静态功耗 + 动态功耗静态功耗是指逻辑门没有开关活动时的功率消耗,主要由泄漏电流造成的,随温度和工艺的不同而不同主要取决于所选的FPGA芯片产品(工艺技术);动态功耗是指逻辑门开关活动时的功率消耗,器件内的容性负载充放电(因素很多,本质上更取决于设计),动态功耗是电压、电容、资源使用率、翻转频率的函数。动态功耗主要体现为存储器,内部逻辑、时钟、I/O消耗的功耗。19、什么是建立时间,什么是保持时间,要求会计算建立时间和保持时间的data time Arrival、data time required 和slack建立时间(Tsu:set up time)是指在时钟沿到来之前数据从不稳定到稳定所需的时间,如果建立的时间不满足要求那么数据将不能在这个时钟上升沿被稳定的打入触发器;Tsu Tclk + Tskew Tco 。 保持时间(Th:hold time)是指数据稳定后保持的时间,如果保持时间不满足要求那么数据同样也不能被稳定的打入触发器。ThTcoData Arrival Time=launch edge+Tclk1+Tco+TdataClok Arrival Time=launch edge+Tclk2Data Required Time(Setup)= Clok Arrival Time Tsu-Setup UncertaintyData Required Time(Hold)= Clok Arrival Time +Th+Setup UncertaintySetup Slack= Data Required Time(Setup)- Data Arrival TimeHold Slack = Data Arrival Time (Hold)- Data Required Time20、NIOS系统的寻址方式1)立即数寻址: 指令直接给出操作数。2)寄存器寻址: 所有的操作数都是寄存器,结果保存在寄存器中3)移位寻址: 寄存器和带符号的16位立即数相加的结果作为地址4)寄存器间接寻址

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论