Pionway SDK是为了解决现有开发平台的种种局限性而开发出的新一代的专用USB快速开发软件套件。为用户在FPGA与计算机之间建立一个灵活便捷的基于USB接口的数据传输通道。

Pionway SDK主要由三部分组成:运行在上位机上面的API、运行在USB接口芯片内部的固件程序和运行在FPGA上面的IP cores。
Pionway API简介:
专门为Pionway FPGA模块设计的上位机应用程序编程接口,它提供了用于上位机与Pionway HDL通信的基本函数及一些基本的系统配置函数,用户软件通过调用这些函数可以很轻松地跟Pionway FPGA模块中的FPGA实现通信。用户可以在Windows平台使用Pionway API,目前支持的语言为C和C++。另外,用户也可以利用第三方软件,如Matlab或者LabVIEW调用Pionway的动态链接库(DLL)。
Pionway 固件简介:
运行在Pionway FPGA模块的USB微控制器上,为系统内置程序,它提供FPGA与PC之间的通信管道。
Pionway HDL简介:
建立在FPGA端的若干HDL模块,它使FPGA能与USB微控制器进行通信,并为用户提供编程接口。它由Host Interface和Endpoint等模块组成。
Pionway SDK使用简介:
Pionway SDK的主要作用是在Pionway FPGA模块与PC之间建立一个便利且有效的数据通道,用户可以很容易地将现有的或新的FPGA设计与其建立连接。更重要的是,Pionway SDK使用户不需要考虑物理接口(USB)部分的具体实现,这在很大程度上减少了用户在产品开发过程中的风险和时间。
Pionway SDK在用户的FPGA设计中引入了“Endpoint”的概念。一个Endpoint是FPGA中的一串内部互连,它以某种方式从或向PC传输数据。在很多情况下,Endpoint可以通过用户想要传输的现有信号创建。对于其它情况,用户需要为了实现特定的数据传输而创建Endpoint。
Endpoint简介:
在Pionway HDL中,Endpoint可以是Wire、Trigger或Pipe,并且数据传输方向可以是In或Out。通过定义,数据传输方向是以FPGA为视角,所有向用户设计输入数据的Endpoint都是In方向,而所有由用户设计输出数据的Endpoint都是Out方向。在一个设计中,所有的Endpoint都是使用Pionway HDL库来实例化,并且共用一个Host Interface。
下图是一个FPGA示例程序的结构框图。pwHost连接到一些FPGA的外部引脚以及一条被所有Endpoint共享的总线。这条总线提供了所有Endpoint与Host Interface之间的数据传输通道。
