XHWIF是Xilinx FPGA硬件的标准硬件接口,这个接口允许JBits和BoardScope简单的移植到或连接到新的硬件平台。
一旦一个XHWIF接口被定义为了一个详细的具体的硬件块,像BoardScope这类工具将运行不用任何的重编译或者更改。
另外,其它的使用XHWIF接口的JBits应用也将特别地运行在新的硬件上,通常没有改变或者重编译。
最后,XHWIF包的一部分是基于远程访问支持的TCP/IP。
一旦XHWIF接口被连接到新硬件,远程服务器和网络也自动地被支持访问硬件。
XHWIF是一个和基于FPGA的板卡进行通信的Java接口。它包括读写FPGA位流的方法和描述在板卡上的FPGA的种类和数量的方法。也包括增加板卡时钟的方法,读写板上存储器的方法,如果存储器是可用的。关键是,接口描述了板卡并且能够传送数据到板卡或从板卡读出数据。
接口使硬件间的应用通信方法得以标准化,以致于能够使用相同的接口,应用像BoardScope,能够和各种板卡进行通信。
所用硬件的专门信息被隐藏在一个由XHWIF接口实现的类里面。
使用Java编程语言的Native Methods,XHWIF能够和硬件进行直接的通信,通过库或者设备驱动。
这个方法的优点在于新硬件能够快速容易地被支持。
一旦该接口存在,所有使用XHWIF接口的软件都可以在新硬件上运行,不用改变和重新编译。
一旦XHWIF被实现为一个新系统,应用可能直接访问新硬件。另外,XHWIF界面被提供了一个远程访问界面。这允许应用运行,不改变,在一些远程位置的硬件中。一个TCP/IP网络连接被要求到远程硬件,XHWIF可以维护每件事情。
远程访问是特别有用的在像BoardScope调试工具等应用方面。使用XHWIF的远程访问模式,硬件能够被多个用户共享,尽管他们在各自不同的位置,不再需要提供多个完整的系统给每一个用户。
用户或研究者使用XHWIF直接访问FPGA硬件。
通常的“local”模式,XHWIF应用使用接口实现系统所要求的函数功能。
在远程网络模式,XHWIF服务器使用直接的接口访问本地硬件,这个服务器连接到一些注XHWIF应用经由一个TCP/IP网络,并且使用XHWIFnet远程接口。
XHWIFnet接口直接操作其它XHWIF直接硬件接口,除了代替直接访问硬件,它还连接XHWIF服务器并且使用它访问硬件。
考虑远程连接一个系统,XHWIF服务器必须运行在系统包含有FPGA硬件。这个服务器是一个Java应用等待来自一个远程XHWIF应用的网络连接并且执行所有的硬件访问功能为远程应用。
除了网络连接的速度较慢,XHWIF的远程操作完全是透明的。使用远程或本地XHWIF并没有功能上的不同。
在上图中,追踪功能是手动控制的,允许细节信息在主机和服务器之间进行交互。此处,BoardScope调试工具负责和一些未定义的硬件平台之间的通信。
XHWIF服务器的返回信息包含:硬件平台的描述,状态和配置。
从主机到服务器的信息也被用于控制多种硬件,包括:复位,FPGA下载,FPGA读回和时钟控制。
XHWIF接口当前支持以下硬件系统:
- PametteVDC - DEC/Compaq PCI Pamette Virtex Daughtercard (XCV300)
- Pamettevdc800 - DEC/Compaq PCI Pamette Virtex Daughtercard (XCV800)
- Rc1000pp - ESL's RC1000PP Virtex Card (XCV1000)
- Xsv - XESS Virtex Card(XCV800)
运行XHWIF作为一个应用来测试和板卡的接口,命令如下:
java com.xilinx.XHWIF.XHWIF -<board> <bitfile>,
其中board是java类名提供硬件的接口,bitfile是位串文件可以被下载或读回。
如果应用无法找到,登陆或接入你已经建立的库,java解释程序应该产生错误信息描述问题。
最常见的问题是库没有在解释程序能够找到的位置,例如在系统路径PATH。