微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于CPCI总线的FPGA加载设计

基于CPCI总线的FPGA加载设计

时间:07-31 来源:互联网 点击:

加载数据在FIFO 中读不空,在设计中当FIFO 中的可读的数据大于一定门限的时候触发加载逻辑,同时为了防止FIFO 写满导致丢失数据,当FIFO中可读的数据到达一定门限后,就不再请求DMA.通过这样的保护,可以保证BIT 流加载文件在加载逻辑开始后可以连续不断的输入给FPGA,直到FPGA 加载完成。

  工控机按照32 bit 读取BIT 文件存在Byte 翻转的情况,下载到Spartan-3E 后需要再把32 bit的数据进行翻转过来,只需要用FIFO 读时钟32 倍频的时钟进行计数,将FIFO 读出的32 bit 数据按照翻转的对应关系顺序送出读取即可满足要求。

  为了区分3片FPGA 的加载,设计两比特的标志位,用以区分不同的FPGA.在加载FPGA 之前先通过软件先下载两比特标志位,配置模块根据标志位,切换数据流向,从而可以配置3 片不同的FPGA.

  5 软件设计

  PCI9656 芯片的驱动程序从其配套的SDK 开发包中获取,工控机的控制软件由C++语言完成,开发环境基于Borland 公司的C++Builder6.

  在PLX公司提供的软件开发包中,含有PCI9656与上位机通信的动态库文件Plxapi.dll.该文件包含了众多函数,可以直接调用。在设计中用PlxIoPortWrite 和PlxIoPortRead 来实现突发数据的下载和上传,用PlxDmaBlockTransfer来实现FPGA的配置数据流的下载和大量实时数据的上传。

  6 结语

  本文提出了基于CPCI 总线的FPGA 动态加载的设计与实现,在40 M 的工作时钟下,在对同一块FPGA 进行加载时,加载速度可以达到JTAG 加载方式的10 倍之多。该设计可以对三片FPGA 芯片进行快速稳定的下载,与常规PROM 加载方式相比有着快速灵活的优势,对加载速度和实时性要求比较高的系统设计中,具有很强的可操作性和可借鉴性。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top