标题:
如何使用寄存器级读&写控制基于PXI平台的FPGA?
[打印本页]
作者:
Stone_Mei
时间:
2017-9-27 20:25
标题:
如何使用寄存器级读&写控制基于PXI平台的FPGA?
阅读带图完整版:
http://blog.sina.com.cn/s/blog_c7e73c160102y6jz.html
目录
简介
设计实例概览
地址译码(AddressDecoding)
引脚控制
寄存器映象(RegisterMapping)
软件控制
ATEasy
例程 (使用ATEasy GX3500驱动)
“C” 例程
LabView
例程
摘要
:本文以
基于
PXI
平台的M
arvin TestSolutions 3U FPGA
板卡
GX3500
为设计对象,通过设计实例讲解如何使用寄存器级读
&
写控制
FPGA
,并提供
FPGA
设计相关文件
(
如
SVF)
和软件控制例程。
简介
为了更好地理解如何访问
GX3500 FPGA
的寄存器,需要有一个使用寄存器的设计。本篇文章分为两部分内容:第一部分,以读者已经熟练使用
AlteraQuartus II
设计工具为前提(参考《
GX3500 User
’s Guide: GXFPGA Tutorialand Examples
》的第五章),概述了如何使用
GX3500
设计
128
通道的静态
I/O
。此设计实例配置为
4
组
32
通道双向引脚,双缓冲结构支持同步更新
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_Tristatelatch
,
RE_DataLatch
,
RE_TristatePort
和
RE_DataPort
控制信号访问输出寄存器两个阶段的数据和三态控制寄存器从而进行读操作。
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/)
Powered by Discuz! 7.0.0