首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

如何使用寄存器级读&写控制基于PXI平台的FPGA?

如何使用寄存器级读&写控制基于PXI平台的FPGA?

阅读带图完整版:http://blog.sina.com.cn/s/blog_c7e73c160102y6jz.html

目录

简介
设计实例概览

地址译码(AddressDecoding)

引脚控制

寄存器映象(RegisterMapping)
软件控制
   ATEasy 例程 (使用ATEasy GX3500驱动)

“C” 例程
   LabView例程








摘要:本文以基于PXI平台的Marvin TestSolutions 3U FPGA板卡GX3500为设计对象,通过设计实例讲解如何使用寄存器级读&写控制FPGA,并提供FPGA设计相关文件(SVF)和软件控制例程。
简介
为了更好地理解如何访问GX3500 FPGA的寄存器,需要有一个使用寄存器的设计。本篇文章分为两部分内容:第一部分,以读者已经熟练使用AlteraQuartus II设计工具为前提(参考《GX3500 User’s Guide: GXFPGA Tutorialand Examples》的第五章),概述了如何使用GX3500设计128通道的静态I/O。此设计实例配置为432通道双向引脚,双缓冲结构支持同步更新128通道逻辑状态的读和写。
本篇文章的第二部分讲述了如何向GX3500 FPGA内加载设计文件,如何连接GX3500 I/O引脚,为了实现FPGA静态数字I/O的操作如何对寄存器进行读和写。

                              

1 MTS-GX3500FPGA板卡

设计实例概览
地址译码(Address Decoding)
GX3500支持对两种类型的PCI总线读和写操作:一类是针对寄存器,使用PCI BAR 1;另一类是针对RAM,使用PCI BAR 2。静态数字I/O设计实例使用寄存器控制对I/O引脚的读和写,所以使用PCI BAR 1片选信号进行地址译码

与ChipSelect 1 (CS[1])同意。BAR 1信号可以访问的地址范围为1024 byte(0x400),访问时必须以4-byte为准对齐。
图2为地址译码逻辑单元,将5路地址信号(Addr[6..2]))译码后,可提供32路“写使能”信号(WE[31..0])和32路“读使能”信号(RE[31..0]),这些信号用于控制锁存寄存器的向I/O引脚写入(WE[x]) )和从I/O引脚读取(RE[x])功能。

2:寄存器地址译码

引脚控制
本设计实例中有四组完全相同的I/O引脚(见图4),每组有32路通道。每路通道都支持双向传输,并可以独立配置传输方向。输出寄存器为双缓冲结构,支持四组I/O引脚(128路通道)同步更新。第一阶段,通过WE_Data控制信号,将输出数据使用写入第一级数据寄存器,通过WE_Tristate写入三态控制信号。以上这些信号来自于WE[31..0]信号,并且这些信号在每组I/O引脚间独立。第二阶段,通过WE_UpdatePort控制信号,将第一级输出的数据和三态控制信号写入第二级寄存器。以上这些信号也来自于WE[31..0]信号,但是四组I/O引脚共用以实现四组I/O引脚数据的同步更新。使用RE_TristatelatchRE_DataLatchRE_TristatePortRE_DataPort控制信号访问输出寄存器两个阶段的数据和三态控制寄存器从而进行读操作。

返回列表