Pionway SDK由三部分组成:Pionway API、Pionway固件和Pionway HDL。其中固件部分是通用的的,并不需要配置及修改。Pionway SDK的代码迁移主要包括API部分和HDL部分。
从Opalkelly FrontPanel SDK迁移到Pionway SDK的建议方法是在Pionway SDK的程序模板中将Frontpanel的程序一段段拷贝过来并修改。
Pionway API支持C和C++语言,支持的操作系统是X86和X64的Windows7和Windows10。
表 1 C++下的类迁移
序号 |
Opalkelly FrontPanel API |
Pionway API |
1 |
okCFrontPanel |
CPionway |
... |
其他类 |
非必要功能,部分融合或暂不支持 |
表 2 C/C++语言下的函数名称及使用用法迁移
序号 |
Opalkelly FrontPanel API |
Pionway API |
使用变化 |
1 |
okFrontPanel_Construct |
Pionway_Construct |
无变化 |
2 |
okFrontPanel_Destruct |
Pionway_Destruct |
无变化 |
3 |
okFrontPanel_FlashEraseSector |
Pionway_FlashEraseSector |
无变化 |
4 |
okFrontPanel_FlashWrite |
Pionway_FlashWrite |
无变化 |
5 |
okFrontPanel_FlashRead |
Pionway_FlashRead |
无变化 |
6 |
okFrontPanel_GetBoardModel |
Pionway_GetBoardModel |
无变化 |
7 |
okFrontPanel_GetDeviceCount |
Pionway_GetDeviceCount |
返回值在输出参数中 |
8 |
okFrontPanel_GetDeviceListModel |
Pionway_GetDeviceListModel |
无变化 |
9 |
okFrontPanel_GetDeviceListSerial |
Pionway_GetDeviceListSerial |
无变化 |
10 |
okFrontPanel_OpenBySerial |
Pionway_OpenBySerial |
无变化 |
11 |
okFrontPanel_IsOpen |
Pionway_IsOpen |
无变化 |
12 |
okFrontPanel_Close |
Pionway_Close |
无变化 |
13 |
okFrontPanel_GetSerialNumber |
Pionway_GetDeviceInfo |
返回值转到了输出参数中 |
14 |
okFrontPanel_GetDeviceID |
Pionway_GetDeviceInfo |
返回值转到了输出参数中 |
15 |
okFrontPanel_IsHighSpeed |
Pionway_GetDeviceInfo |
返回值转到了输出参数中 |
16 |
okFrontPanel_SetDeviceID |
Pionway_SetDeviceID |
无变化 |
17 |
okFrontPanel_ConfigureFPGA |
Pionway_ConfigureFPGA |
无变化 |
18 |
okFrontPanel_IsFrontPanelEnabled |
Pionway_IsPionwayEnabled |
无变化 |
19 |
okFrontPanel_UpdateWireIns |
Pionway_UpdateWireIns |
无变化 |
20 |
okFrontPanel_GetWireInValue |
Pionway_GetWireInValue |
无变化 |
21 |
okFrontPanel_SetWireInValue |
Pionway_SetWireInValue |
无变化 |
22 |
okFrontPanel_UpdateWireOuts |
Pionway_UpdateWireOuts |
无变化 |
23 |
okFrontPanel_GetWireOutValue |
Pionway_GetWireOutValue |
无变化 |
24 |
okFrontPanel_ActivateTriggerIn |
Pionway_ActivateTriggerIn |
无变化 |
25 |
okFrontPanel_UpdateTriggerOuts |
Pionway_UpdateTriggerOuts |
无变化 |
26 |
okFrontPanel_IsTriggered |
Pionway_IsTriggered |
返回值转到了输出参数中 |
27 |
okFrontPanel_WriteToPipeIn |
Pionway_WriteToPipeIn |
增加了写入数据量的参数 |
28 |
okFrontPanel_ReadFromPipeOut |
Pionway_ReadFromPipeOut |
增加了读取数据量的参数 |
29 |
okFrontPanel_WriteToBlockPipeIn |
Pionway_WriteToBlockPipeIn |
增加了写入数据量的参数 |
30 |
okFrontPanel_ReadFromBlockPipeOut |
Pionway_ReadFromBlockPipeOut |
增加了读取数据量的参数 |
表 2 HDL部分的代码迁移
序号 |
Opalkelly FrontPanel HDL |
Pionway HDL |
接口结构差异 |
1 |
okCoreHarness |
pwCore |
增加了一个3bit的输出端口pwHM,连接到pwMux |
2 |
okWireIn |
pwWireIn |
增加了一个68bit的输出端pwEM,连接到pwMux |
3 |
okWireOut |
pwWireOut |
无 |
4 |
okTriggerIn |
pwTriggerIn |
增加了一个68bit的输出端pwEM,连接到pwMux |
5 |
okTriggerOut |
pwTriggerOut |
无 |
6 |
okPipeIn |
pwPipeIn |
无 |
7 |
okPipeOut |
pwPipeOut |
无 |
8 |
okBTPipeIn |
pwBlockPipeIn |
无 |
9 |
okBTPipeOut |
pwBlockPipeOut |
无 |
10 |
okWireOR |
pwMux |
为每个Endpoint模块增加了输入端pwEM的接入 |
11 |
okRegisterBridge |
暂无 |
非必要功能 |