#计划 与 方案
1.签名算法的学习
- 学习了解加密算法的基本思想(done);
- 研究成熟程序代码,确定整理签名算法的计算过程;
- 运算步骤具体化与实现的方案;
- 跑通一个可以参考的软件签名算法;
2. 签名算法的实现
- 基本的运算模块;
- 签名算法各运算模块的功能实现与仿真,与软件签名算法的运算模块对比查错;
- 签名算法各模块的流程控制实现与仿真,与软件签名算法对比查错;
3.FPGA上实现pcie的ip核构建
- 简单构建ip核,学习了解其工作方式与特点;
- 通过ip核,初步搭建比较适合加速运算的架构;
4.软件通过pcie访问FPGA
- linux下使用pcie驱动程序学习;(doing)
- 驱动程序改写,适于altera的fpga;
- 访问pcie的性能提高研究;
5. 加速算法的最终实现
- fpga签名算法与pcie核打通;
- 软件通过pcie口与fpga签名算法通讯并测试;
- 实现软件对fpga签名算法的调用; 4)备注: 该过程需要fpga加速卡,自己手上的fpga不能满 足加速卡的需求,只能用于pcie接口的初步调试。
下一阶段: 并行调用pcie接口,实现更高效的算法加速。
2018-11-30 PCIE通讯方案 完成学习:pcie驱动程序操作IO口的程序配置与读写,altera的一个PIO核最大只支持32bit。 简易方案:使用3个altera的PIO核,一个32bit用于写,一个32bit用与读,一个32bit用于数据传输控制。 复杂并行方案:使用基于DMA的RAM核,RAM分两片存储空间,一个空间用于写数据(包括数据的操作标示),一个空间用于读数据,数据计算完成后回写到这个空间并标识。——该方案需要重新研究PCIE对RAM空间的读写操作,时间待定。 (内存单独分配一段空间用于数据存取)
后续:c语言调用pcie的驱动的部分,安排到最后,时间待定;