采用Xilinx ML507评估平台的APU增强型FPGA设计_第1页
采用Xilinx ML507评估平台的APU增强型FPGA设计_第2页
采用Xilinx ML507评估平台的APU增强型FPGA设计_第3页
全文预览已结束

下载本文档

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

文档简介

采用XilinxML507评估平台的APU增强型FPGA设计我们在此提供详细信息,说明MissingLink电子公司的工程师是如何为我们的示例设计生成必要文件的,以及如何使用这些文件在XilinxML507评估平台(其中包含一个XilinxVirtex-5XC5VFX70T器件)上复制结果。我们还说明如何以此设计为起点来完成您自己的APU增强型FPGA设计。第1步:构建协处理器从理论上讲,您几乎可以构建任何协处理器,只要能将其装入您的FPGA即可。但请记住,一条用户定义指令(UDI)每周期可以传输两条32位的运算元和一条32位的结果。我们的复数乘法协处理器是在文件src/cmplxmul.vhd中实现的。第2步:构建FCM封装为了节省面积,您的协处理器可能需要具有与我们的协处理器相似的多周期运行方式。因此,您将需要用状态机在协处理器和辅助处理单元(APU)之间实现简单的握手协议。在我们的示例中,我们是在封装“fcmcmul”内做到了这一点,此

封装是在文件src/fcmcmul.vhd中实现的。在封装fcmcmul内,我们对复数乘法硬件模块cmplxmul进行了实例化,该模块成为结构协处理模块(FCM)。这样,fcmcmul即可提供我们将其连接到APU所需的接口。您可以在赛灵思公司的技术文档UG200(从第188页开始)中找到关于这些接口信号的详细描述。重要的细节是第216页上所示“先确认连续非自主指令”的时序图,其中显示了APU与FCM之间的协议。第3步:FCM与APU连接一般而言,您可以通过两种方式将FCM连接到APU:通过使用XilinxPlatformStudio(XPS)的图形用户界面,或者通过修改.mhs文件。我们发现,当将现有设计的一部分剪贴到新设计中时,最易于修改.mhs文件。对于本示例也是如此,我们在文syn/apu/system.mhs中连接FCM/封装和APU。我们建议您如法进行。只要从我们的示例中将“BEGINfcmcmul”到“END”的一段粘贴到您的.mhs文件中即可。要使其在XPS中正常工作,您还必须按预定义的文件/目录结构提供一套文件。在我们的示例中,我们调用了封装模块fcmcmul,所以文件/目录结构如下所示:syn/apu/pcores/fcmcmul/data/fcmcmul_v2_1_0.mpd

syn/apu/pcores/fcmcmul/data/fcmcmul_v2_1_0.pao

syn/apu/pcores/fcmcmul/hdl/vhdl/fcmcmul.vhd

syn/apu/pcores/fcmcmul/hdl/vhdl/cmplxmul.vhd.mpd文件包含FCM的端口说明。.pao文件提供与FCM关联的模块和文件的名称,而XPS则在hdl/vhdl目录中查找协处理器和封装的VHDL源文件。您应该根据自己的APU增强型FPGA设计的需要复制和调整此树状结构。第4步:硬件仿真我们提供了用ModelSim测试APU示例所需的必要文件。作为先决条件,您必须生成并编译赛灵思公司仿真库,但仅当您未曾进行此操作时才这样做。您可以从XPS菜单“XPS→仿真→编译仿真库”完成此操作。然后,从XPS菜单“XPS→仿真→生成仿真”为整个设计生成所有RTL仿真文件。下一步是运行RTL仿真,以验证您的APU设计,尤其是验证APU、封装和协处理器之间的握手协议。仿真显示APU在一个或两个周期内传送运算元的两种可能性(如技术文档UG200中第216页上所述)。请注意FCMAPUDONE和FCMAPURESULTVALID两个信号。第5步:软件测试对于复数乘法运算,我们编写了一个独立的小程序(syn/apu/aputest/aputest.c)从软件角度演示APU和协处理器的用法。此程序配置APU并定义UDI,然后,用我们的硬件协处理器运行一个进行复数乘法运算的循环,将其与仅软件复数乘法运算的结果进行比较,并且提供性能分析。您必须先配置PowerPC的APU,它才能正常工作。有两种配置方法:您可以在XPS中点击,然后为APU的某些控制寄存器输入初始化值;也可以从使用APU的软件程序中直接配置APU。我们感觉后一种方法较为明确可靠。在我们的C源代码文件中,您可以找到正确初始化APU所需的描述性C宏和函数调用。请根据需要将其复制粘贴到您的程序中。在该循环中,我们首先使用UDI进行复数乘法运算,然后使用软件宏ComplexMult进行同样的运算。我们使用例程Start_Time和Stop_Time进行性能分析。三个调用UDI1FCM_GPR_GPR_GPR实现三个周期的硬件复数乘法运算。我们在XilinxEDK生成的文件syn/apu/ppc440_0/include/xpseudo_asm_gcc.h中定义C宏UDI1FCM_GPR_GPR_GPR。我们通过汇编器助记符udi1fcm实现C宏UDI1FCM_GPR_GPR_GPR因为赛灵思公司为汇编器打了补丁,所以此udi1fcm助记符(尽管显然不是原PowerPC440处理器指令集的组成部分)已经是APU可以处理的正确指令。在我们的测试用例中,aputest是XPS的软件项目,我们对其进行了编译、汇编和链接,然后将其下载到Virtex-5FXT的BlockRAM中供PowerPC处理器执行。第6步:生成FPGA配置您可以从XPS菜单“XPS→硬件→生成比特流”生成FPGA配置的位文件。为了让您节省些时间,我们包括了一个针对XilinxML507开发平台的位文件。您可以在中找到此文件。第7步:运行示例设计下载FPGA配置的位文件,启动XPS调试器XMD(UART设置是115200-8-N-1),然后观察示例设计。调试器报告的运行时间,对

温馨提示

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

评论

0/150

提交评论