基于CPCI总线的FPGA加载设计
加载数据在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 加载方式相比有着快速灵活的优势,对加载速度和实时性要求比较高的系统设计中,具有很强的可操作性和可借鉴性。
- 基于DSP的CPCI总线架构设计的实时图像信号处理平台(03-27)
- 一种CPCI总线结构微波接收机的设计方案(12-21)
- 一种基于CPCI总线的智能故障信息系统子站(12-20)
- PCI IP核在CPCI总线数据采集卡的应用设计(12-15)
- SOPC在PCI总线高速数据传输系统中设计应用(12-12)
- CPCI总线技术在加固计算机的开发平台中的应用(01-11)