新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 一种基于VC++程序的FPGA重配置方案设计

一种基于VC++程序的FPGA重配置方案设计

作者: 时间:2010-07-07 来源:网络 收藏

  2 可重配置软件方案

  用户发送配置数据流到EPCS对进行配置的结构图如图2所示,其中PC机部分为上位机配置控制的用户软件宿主。配置控制软件主要包括用户应用程序(Win32应用程序)、仪器驱动程序、总线驱动程序三部分,总线驱动位于整个软件系统的最底层,可通过硬件抽象层(HAL)直接与硬件进行交流。仪器驱动位于总线驱动和用户应用程序之间。它对上可为屏蔽底层工作细节提供应用程序调用的接口函数,对下则可发送命令或接收数据。用户应用程序则位于软件结构的最上层,可通过调用仪器驱动程序,间接地与底层进行交互。其结构图如图3所示。

  Windows XP操作系统中的驱动程序开发主要是基于Win32模式驱动程序,即基于WDM(Win32 Driver Model)。在WDM驱动模型中,每个硬件设备至少有两个驱动程序:总线驱动程序和功能驱动程序。其中总线驱动程序由Windows提供,需要考虑的是负责实现PCI设备逻辑功能的功能驱动程序。所以,驱动程序分为以动态链接库形式的仪器驱动程序和以WDM格式的底层的接口驱动程序。前者用于实现对目标硬件的操作,即下载配置数据流对的配置;后者则可实现资源分配、接口管理及数据的控制传输。

  3 配置数据分析

  本设计中的应用软件所要下载的配置数据流是由硬件设计者根据需求提供的,是以二进制形式存储的.rpd文件。可以根据不同的来选择不同的外围存储芯片(如EPCS1,EPCS16),从而生成不同大小的配置数据流。由于软件设计中,每次下发的数据一定,所以,由数据流的大小就能决定循环发送数据的次数。

  由于硬件设计者提供的.rod文件中的数据并不是原始的配置数据,而是所要配置的数据经过反转生成的新的配置数据流,所以,要先将.rpd中的数据反转处理后再发送给硬件。通过用户界面可以二进制的形式打开.rod文件并读数,将配置数据流以单字节的形式暂存在一数组中,然后对数据进行反转处理。数组中每个单字节数据的反转过程为:unsigned char strl=DE,反转后为strl=7B,定义无符号char型变量bi(i为小于8的整数),可由下面的转换完成:

  由此可以得到:strl=7B。对反转处理生成的单字节数据经过组合处理后,最终便可得到对FPGA进行配置所需要的数据流。



关键词: FPGA VC++ DSP CPCI CPLD

评论


相关推荐

技术专区

关闭