您好,欢迎来到意榕旅游网。
搜索
您的当前位置:首页32位RISC微处理器FPGA验证平台设计与实现

32位RISC微处理器FPGA验证平台设计与实现

来源:意榕旅游网
维普资讯 http://www.cqvip.com

110 2007,43(5) Computer Engineering and Applications计算机工程与应用 32位RISC微处理器FPGA验证平台设计与实现 海,樊晓桠,张盛兵 Hai,FAN Xiao—ya,ZHANG Sheng-bing 西北工业大学航空微电子中心,西安710072 Aviation Microelectronic Center,Northwestern Polytechnical UniversityXi’an 710072,China ,E-mail:yhail 1091@163.com YU Hal,FAN Xiao-ya,ZHANG Sheng—bing.Design of FPGA verification platform of 32 bits RISC microprocessor. Computer En -neering and Applications,2007,43(S):110—112. Abstract:The veriifcation of microprocessom is a complex but important job.Aiming at the problems existed in traditional FPGA board veriifcation,such as it can’t find the erros quickly and the debug method is simplex,alSO link wih the vertiifcation re— quirement of“LongTium R2”microprocessor,a FPGA verification platform is designed,on which the instruction and VxWorks op— erating system have been tested.The result indicates that the platform can shorten the verification cycle greatly,the whole system is very transparent,and its structure is SO simple that its upgrade might be fairly flexible and convenient Key words:micropmcessom;FPGA;veriifcation platform;VxWorks operating system 摘要:微处理器的验证工作是一项复杂而重要的工作。针对传统的FPGA验证在板级验证过程中存在不能快速定位错误和调试 方法单一等问题,同时结合“龙腾R2”微处理器的验证需求,设计了“龙腾R2”微处理器的FPGA验证平台。在该验证平台上成功 进行了指令和Vxworks操作系统的测试。实践表明该验证平台大大缩短了验证周期,整个验证平台原理清晰,结构简单,扩展灵 活、方便。 关键词:微处理器:FPGA:验证平台;VxWorks操作系统 文章编号:1002—8331(2007)05-0110—03 文献标识码:A 中国分类号:TP306 随着高性能微处理器不断发展,其系统结构已经异常复 杂。微处理器设计人员面I临的一项艰辛工作就是需要花费大量 的人力和物力来验证设计的正确性。目前,硬件设计的验证方 法分为三大类:基于仿真的方法、形式化方法和FPGA验证。对 于大规模的逻辑电路来说.使用形式化方法的缺点是没有时序 信息的功能验证并且建模的规模过大,难以应用。因此,在工程 领域,这类电路主要通过仿真和FPGA这两种方法加以验证。 在处理器的整个验证工作前期应用仿真验证还是非常必要的, 但在验证的后期阶段,当设计加人延迟信息进行后仿真或在发 同调试方法和最终的验证结果。 l “龙腾R2”FPGA验证平台的整体设计 通常用软件进行仿真的时候,可以通过写BFM构建一个 完整的系统。那么如何对一个微处理器进行FPGA验证呢?首 先需要分析和确定在这个硬件平台上将运行软件的需求,然后 根据这个需求为其搭建所需的硬件平台。通常情况下验证系统 硬件平台的搭建有两种方式:一种是FPGA只是完成处理器功 能。其余硬件部分由分立元器件组成;另外一种是将除了处理 器以外的其它硬件与微处理器一起用FPGA实现组成一个 SOC系统。第一种方法由于使用的是分立的集成电路模块,所 现处理器的死角等情况下.仿真验证就显得十分低效了。 “龙腾R2”是西北工业大学航空微电子中心自行设计的一 种基于PowerPC体系结构的32位RISC处理器.采用自顶向 下的正向设计方法.使用Verilog编码,与PowerPC750在指令 集上完全兼容。 本文着重介绍了“龙腾R2”处理器在完成了R’rL级Ver. 以其优点是更接近实际情况.验证的可信度高,但其缺点也很 突出.PCB制板周期长并且系统调试困难;而第二种方法实现 起来比较容易,可以使用FPGA厂商提供的验证实验板,系统 搭建周期短且调试简单.但缺点就是与真实情况有一定差距, 验证的可信度较低。但上述两种传统FPGA验证方案的建模还 是比较类似和固定的,那就是桥/内存控制器+内存+串口控制 器+串口+PC终端。如图1所示。 由于VxWorks操作系统具有实时性、可裁减等诸多优点, ilog编码和模块级的功能仿真后,在验证过程中使用FPGA原 型验证方法.本文主要分为三个部分:首先分析和介绍了验证 平台的软硬件需求.并提出FPGA验证平台设计的总体方案, 接着介绍验证平台的具体实现,最后介绍验证平台的软硬件协 基金项目:国家自然科学基金(the National Natural Science Foundation of China under Grant No、60573143);西北工业大学研究生创新种子基金 (Z2o0646)。 作者简介:于海,男,硕士研究生,主要研究方向计算机体系结构和ASIC系统设计;樊晓桠,男,教授,博士生导师,主要研究方向为计算机系统结 构、VLSI系统设计;张盛兵,男,教授,硕士生导师,主要研究方向为计算机体系结构、可测试性系统设计。 维普资讯 http://www.cqvip.com

于 海,樊晓桠,张盛兵:32位RISC微处理器FPGA验证平台设计与实现 图1传统FPGA验证方案 最终验证的目标是在笔者搭建的以“龙腾R2”为核心处理器的 FPGA验证平台上稳定运行商用的VxWo ̄s操作系统.笔者通 过分析VxWo ̄s操作系统底层驱动程序,包括串口驱动程序、 串口读写中断、定时中断的软件处理流程和嵌入式可编程中断 控制器初始化配置,确定了操作系统的组件和除了处理器外的 其它外设需求。 “龙腾R2”最终采用了Altera的Stratix EP1S80B956C6 DSP开发板作为FPGA功能验证平台,该开发板上带有2 MB 的SRAM,可以用做系统内存:开发板同时还带有串口和m G 接口。笔者将开发板上不具备的桥/内存控制器和串口控制器 用FPGA实现,图2给出了“龙腾R2”FPGA功能验证平台的整 体结构。 FPGA实现部分 JTAG ●r——————————…{  ll■t—一l  l桥,内存J J J i l控制器 J; …’…一—一。r —I用 l内存l 口 ●—一 由 图2“龙腾R2”FPGA功能验证平台的整体结构 利用FPGA进行功能验证在节省运行时间的同时,在板级 调试过程中也引入了调试困难的弊端。Ahera为解决这一问题 提供了SignalTaplI,SignalTapII作为嵌入在QuartuslI工具中的 软逻辑分析仪,在FPGA工作的时候,利用FPGA内部剩余的 ESB.根据用户设定的触发条件将信号保存到ESB中,然后通 过JTAG口传到计算机中进行实时显示。但是由于信号采样深 度不够并且不能实时观测SRAM中的数据,仅有SignalTapII 对于Debug还是不够的。为此笔者在外围器件的设计中加入了 一个SRAM调试逻辑帮助板级验证,专门负责将指定的数据上 传到SRAM中或者将SRAM的数据下载到PC终端上进行分 析;实验证明,这一专用逻辑在调试过程中是非常有用的。经改 进的“龙腾R2”的FPGA功能验证平台如图3所示。 需 l控制器 { l ll  !  l审 ●一由 图3 改进的“龙腾R2”的FPGA功能验证平台 2 “龙腾R2”FPGA功能验证平台FPGA实现部分 的设计 2.1 FPGA实现部分整体结构框图 经改进的“龙腾R2”FPGA功能验证平台的FPGA实现部 分整体结构框图如图4所示。 总线接 ——] 龙腾R2 外部总线控制器 桥/内存 SRAM 控制器 Bankl 中断控制 l 内存 Bank2 单元  l控制器 Bank3 Bank4 串口控制器 SRAM 调试逻辑 TxD 并妻逻辑 H  l’l F发IF送O 下载逻l上传逻 辑 l 辑 RxD 串耋逻辑 H  I’l 接FI收F0 图4 FPGA实现部分整体结构框图 2.2桥/内存控制器的实现 “龙腾R2”采用的桥/内存控制器是一个简化版的 MPC107a.标准的MPC107a包括总线控制器、内存控制器、中 断控制器和其它一些I/O控制单元。根据验证工作需求,笔者 在“龙腾R2”硬件功能验证平台实现了外部总线控制器、内存 控制器、中断控制器以及控制单元。各个部分完成的主要 功能如下: 、 (1)总线控制器是“龙腾R2”与外部通信的接口。负责控 制、仲裁总线上的各种操作,总线协议遵从PowerPC系列芯片 60x总线协议。 (2)中断控制器(EPIC)主要功能是收集外部串口读写中断 和自身产生定时中断。并对各种中断进行优先级判断,把中断 信号传给CPU。 (3)内存控制器的主要功能是控制SRAM的读写操作。在 系统加电后.首先从串口将编译后操作系统的二进制文件上传 到SRAM当中,当上传完毕后.启动处理器开始工作。该控制器 主要功能是保证指令中正常的访存操作的正确完成和控制操 作系统正确上传到SRAM中。 (4)控制单元协调整个桥/内存控制器的工作。控制由 EPIC和总线控制器发送过来的访问地址空间的请求,包括对 SRAM的访问请求和对串口的访问请求。 2.3 串口控制器的实现 串口通讯中有两种通用的方法,一个是8251,来实现串口 通讯,另外一个是UART(通用异步收发器);两者的区别是 8251靠同步握手信号RTS、CTS来同步串口数据的接收和发送 f发送线为Txd,接收线为Rxd),而UART只靠检测Txd和Rxd 的状态即可进行串口的通讯。在本设计中,出于对FPGA面积 的考虑.采用相对简单的UART来实现串口通讯。下面给出串 口通讯中两个重要参数的选择: (1)波特率 在本设计中,波特率设置比较通用的Baud_V=115 200;并 由此得出串口采样(发送)的频率:采样(发送)频率=16x波特 率=16xl15 200=1.843 2 MHz。在这里需要指出的是:PC机和 FPGA进行通讯时,超级终端(或串口调试软件)设定的串口波 特率必须和FPGA所设定的波特率相同(即采样或发送时钟也 为1.843 2 MHz)时,才能保证PC机和FPGA的串口间进行正 确通讯。 (2)分频 维普资讯 http://www.cqvip.com

112 2007,43(5) Comptrter En#neering and Application s计算机工程与应用 由于所采用的FPGA试验板提供的时钟频率为80 MHz. 故需要对其进行两次分频,一个是20 MHz(供“龙腾R2” 是,一般操作系统的运行动辄上百万条的指令,软件仿真运行 一次一般要花一天以上的时间。运行时间成为验证的瓶颈.这 和桥/内存控制器使用),一个是1.843 2 MHz。对于第一种情 况,实现起来比较简单;关键是第二个分频,笔者做了43分频, 得到的时钟频率为1.860 5 MHz.时钟漂移为 =1—1.843 2/ 也是开发硬件功能验证平台最根本的原因。“龙腾R2”计划运 行通过的操作系统为vxW0rks。在系统测试过程中的调试方法 主要用到了两种:一是利用SignalTaplI引出FPGA内部指定信 1.860 5--0.9%,符合串口协议时钟漂移的比率≤5%的规定。 串口控制逻辑分为四部分:串并转换逻辑、接收FIFO、并 串转换逻辑以及发送FIFO。串并转换逻辑将串行输入的8位 数据转换为一个字节存入接受FIFO;并串转换逻辑将发送FI— FO里的一个字节按位输出。两个FIFO解决了波特率采样时钟 和高速总线时钟不匹配的问题。 2.4 SRAM调试逻辑的实现 SRAM调试逻辑的功能一个是将指定的程序上传到 SRAM中,还有就是实时地将SRAM的内容下载到终端PC上 进行显示。这样,整个验证平台就可以工作在正常工作状态和 SRAM调试状态两种状态下.两种工作状态的切换是通过FP— GA验证板上自定义的开关来实现。当验证板工作在SRAM调 试状态下时,通过复用在正常工作状态下的内存控制逻辑和串 口控制逻辑,大大降低了系统设计的复杂度。 在本平台的验证中,笔者将验证程序先通过串口上传到 SRAM存储器中.然后在“龙腾R2”复位信号有效时,开始执行 测试程序。在程序执行过程中或者程序执行结束后,实验人员 均可以将SRAM的内容下载到终端进行分析,通过分析内存中 的数据可以准确定位问题。在验证过程中应用此方法,很容易 找到了几种处理器死机的问题。图4给出了该平台FPGA实现 部分的组成和互联关系。 3 使用“龙腾R2”FPGA验证平台进行验证 3.1 “龙腾R2”的指令测试 CPU工作的本质就是运行指令序列。而一般的通用CPU 的指令都在100条以上,因此要穷举各种指令组合在目前计算 机的运算能力下是不可能也是不必要的。但是进行单条指令或 者两三条指令的组合测试是可行的。而且这种测试也将覆盖实 际程序中指令组合的大多数情况。 为了判断运行结果的正确性,笔者选用Simple Scalar作 为参考模型。随机生成一段指令序列分别运行在硬件平台和软 件参考模型上。将硬件平台SRAM的内容下载到终端和软件 RAM的内容相比较。如图5所示。 图5“龙腾R2”的指令测试模型 3-2“龙腾R2”的系统测试 CPU上最终运行的都是特定的操作系统。因此在功能验证 时运行通过操作系统是最直接也最具说服力的验证手段。但 号进行波形分析,另外就是下载指定时刻的SRAM内容进行分 析。实践表明,在处理器死机问题上。利用这两种调试方法能够 做到准确定位问题,极大地提高了调试效率。 在该FPGA验证平台上.“龙腾R2”处理器已经能够在 66 MHZ的时钟下稳定启动和运行VxWorks操作系统.并且在 VxWorks操作系统的调试开发环境Tomado2.2下可以对应用 程序进行编译、下载和执行。VxWorks的启动界面如图6所 示。“龙腾R2”处理器使用该验证平台进行了大量的应用程序 测试.在及时准确地纠正了发现的错误以后。现运行情况良好。 O ●■ T11丌币 l】l】l】l】l】l】l】l】 l】l】l】IIl】 II 】II】 lRl l l】l】l】l】 l】 l】l】 l】 l】l】l】I II IIII l l】l】l】l l】l】lIIlI l】II 1】l】l】lI 】IIlI l】l l】II】Il IIIIIl II I】IIl】I I】II II IIII I l】III l】l】1 l】l】lIlI IlII II Il】l l】lIIlI l1l】  IIIIII】 l】l】l】 I】IIII IIII II III】 II JIII JI II】I  1IIIIIII l】l】l】l l】l l】l】 II IIII l】】】I】II III J l】IIIII l】l】l】l l IIIIIII IIII II】I IIII I】III  Il1】l】l】 l】l】l】l】 l】l】l】1 0e lopJ ̄m!Svstem l】l】l】l】l】】  W: ̄oeks rsi帅5 51 l】l】 lcER旺L:-I帅uersion 2 6 J】J Com,ri ̄htItitwl Ri ̄m" sfe耵.Ir.c.1 ̄2882 CPU啪IlIc—NPC75a Proces ̄of-岫 liemory Size籼I2。∞∞ BsP version 1 2/2 IIDB Cou T :I ̄B_CONNSERIRL IIDB:Re ̄lv 图6 VxW0rks的启动界面 4结论 FPGA做为复杂微处理器的验证模型适合设计后期的功 能验证.其优点是速度快,验证可信度高。本文介绍了FPGA进 行处理器原型验证的一般方法,并且针对“龙腾R2”处理器提 出了一种新颖的验证调试解决方案,构建了一个非常实用而且 高效的验证平台,论述了验证平台的整体结构、FPGA部分的 具体实现和使用验证平台进行调试等问题。实践结果表明,应 用该验证平台,能够准确定位设计中出现的死角问题,大大提 高了系统调试的效率。 本文提出了验证方法.具有很好的移植性和一定的普遍应 用性。目前“龙腾R2”处理器已经完成了后端设计,正在进行 SMIC 0.18/xm的流片。(收稿日期:2006年9月) 参考文献: 【l】PowerPC microprocessor family:the bus interface for 32一Bit mi— croprocessors.http://www.ic-on-line net/downloac4. 【2]Motorola公司.MPC 107 PCI bridge/memory controller user manual 【Z】,2002. [31夏宇闻.verilog数字系统设计教程【M】.北京:北京航空航天大学出版 社.2005. 【4]任爱锋,初爱琴,常存,等.基于FPGA的嵌人式系统设计【M】.西安: 西安电子科技大学出版社,2004. [51吴继华,王立诚.Ahera FPGA/CPLD设计:高级篇【M】.北京:人民邮 电出版社.2005. 

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- yrrf.cn 版权所有 赣ICP备2024042794号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务