湖南大学计算机与通信学院NetFPGA开发指南1.0版本
Saint
2010-9-1
NetFPGA开发指南
由于参加电子设计大赛信息安全专题赛的缘故,我第一次接触到了NetFPGA这个平台,通过这个平台,完成了一个自己的一个作品,作品虽然很水,但是从接触平台到完成这个功能,还是经历了很多。自己网上了下也没有到关于NetFPGA细节方面的教程,觉得有必要写个东西,把自己的经验与大家分享下,让后来者少走点我走过的弯路,也希望NetFPGA方面的大牛能够对我的说错的地方进行指正,同时希望能通过这个blog和大家交流关于NetFPGA 的知识,更希望如果有一个好的想法,然后大家一起来实现,这种过程还是很美好的,呵呵。
NetFPGA这个板卡的主要资料都可以在NetFPGA的网站()上到,建议初学者把guide很好的看一下,按照他的流程走一遍,然后把develop guide看下,然后进行开发。工欲善其事必先利其器,好好把那些资料看一遍,可以节约你后面很多事情,免得因为一些小细节纠结大半天,呵呵。陆佳华先生编著的《零存整取NetFPGA开发指南》也是一本关于NetFPGA开发的很好的参考书,里面的设
计还是基于NetFPGA开发包2.0以前的版本,所以和现在的开发稍微有点区别,但是整体想法是保持不变的。
有没有什么网站分享源码
NetFPGA网站还开设了中文论坛,非常方便我们交流,而且Stanford的James Hongyi Zeng非常热心,他一直会为我们及时解答相关问题。国内本来在Xilinx 的OpenHW上有几个关于NetFPGA的讨论帖子,但是已经没有更新了,都是2年前的内容了,大家可以通过QQ来进行交流,主要有北理工的QQ:94301250,还有就是:7531491和120138926这两个QQ。
我准备在这个blog上连载下自己的NetFPGA的开发过程,通过我自己的一个简单工程开发来介绍NetFPGA的开发流程,并介绍一些我犯的错误和开发中的经验。因此这个blog也有可能是流水账的形式,显得非常啰嗦,呵呵。
NetFPGA是一个基于目标设计的优秀平台,让我们可以更加专注于研究硬件加速本身,但是这个平台在搭建和开发过程中还是会遇到很多问题,希望我将我遇到的问题介绍后,后来者能够对这个优秀的平台更快速上手。
目录
1NetFPGA平台搭建 (1)
1.1板卡插槽的选择 (1)
1.2网卡的选择 (1)
1.3NetFPGA开发环境搭建 (2)
1.3.1开发工具的安装 (2)
1.3.2NetFPGA的源码包 (2)
1.4重新编译reference_router (4)
1.4.1IP core申请 (4)
1.4.2使用ISE综合 (4)
1.4.3bit文件生成 (5)
2NetFPGA开发详解 (5)
2.1开发工具选择 (5)
2.2NetFPGA环境变量 (5)
2.3NetFPGA简单开发实例教程 (6)
2.3.1建立自己的Project (6)
2.3.2NetFPGA模块化的设计 (7)
2.3.3上机位软件程序 (8)
2.3.4功能仿真验证 (8)
2.3.5系统调试 (9)
3我对NetFPGA的理解 (9)
1NetFPGA平台搭建
NetFPGA详细的安装主要参考NetFPGA网站上的guide,其中北理工也写了一个NetFPGA的安装手册,《零存整取NetFPGA开发指南》书中也详细的介绍了NetFPGA平台的搭建,我在这里主要讲几个细节问题。
1.1 板卡插槽的选择
详细的搭建还是要参考网站的guide,我这里需要提醒的是,记住将NetFPGA 板卡插在PCI32插槽上。我们第一次将我们的板卡插在了PCI64位的插槽上,由于这个插槽是兼容32位的,因此我们没有过多考虑这个问题。我们第一次插上手,显示x window无法启动,在window操作系统下,这个板卡是能看见的,只是一个黄的符号,但是在linux下无法启动,这让我们非常郁闷。我们确认我们已经搞定了系统搭建商的其他问题,我们设置重装了CentOS,但是还是无法解决这个问题。最后简单的将NetFPGA查到PCI32位的插槽,问题就解决了,这估计和前人发现的有时候使用400W的电源无法使用NetFPGA一样,一定得上500W,呵呵。
NetFPGA的发热量有点大,安排好自己电脑PCI插槽上的独显,网卡的位置,不要发生不必要的悲剧,呵呵。
1.2 网卡的选择
连接NetFPGA的网口需要使用千兆网卡,而且NetFPGA无法进行百兆自适应,因此一定要注意自己网卡的选择,这是前面很多人都遇过的一个问题。目前也有人在进行尝试,让NetFPGA进行千百兆自适应。将NetFPGA改成百兆自适应,目的也纯粹是方便自己使用,而且感觉这和NetFPGA的设计初衷有点背道而驰。
NetFPGA推荐的网卡为Intel的EXPI9402PT,在自己实际网卡的选择过程中,完全可以不选择这块网卡。由于上的那些demo都是基于这块网卡的,因此如果要完整演示这些demo,需要这块双口的千兆网卡,而且在做NetFPGA的regress test的时候,也需要这块网卡,但是自己也可以完全用两块千兆网卡来代替,只是需要做一些参数修改,本人没有尝试过,具体可以参考北理工的安装手册,上面有提到。
本人主要在开发的过程中,将NetFPGA当作路由器使用开发,因此电脑上不装千兆网卡也无所谓,在外围连接着拥有千兆网卡的电脑进行测试。如果自己的台机只有百兆网卡,建议淘宝上去买几块二手的8169,我们自己开发的时候就是将8元的二手8169插入到老机器中使用,10元的8169都可以带还原芯片了,呵呵。
在网线的选择上也需要注意,尽量使用质量好的网线。我们曾经使用过几根铜丝过细的网线,结果在两块8160之间连接居然自适应成了百兆的,自然就无
法供NetFPGA使用了。
1.3 NetFPGA开发环境搭建
NetFPGA的开发需要用到一系列的工具,整个NetFPGA的开发环境搭建也比较复杂,里面涉及到ISE,ModelSim的安装,NetFPGA源码包的选择,JDK 版本等问题,因此要按照流程来操作。
1.3.1开发工具的安装
我的消息灵通能力有限,在我熟悉的QQ的朋友里貌似没有人解决在CentOS下安装cable 驱动问题,导致无法在CentOS下使用chipscope,因此如果自己想使用chipscope就只能在windows下使用,经我们自己验证,xp和win7都可以正常使用。自己无意中看到了一篇Kevin的博客:www.openhw/Kevin/blog/09-12/182238_1209c.html,但是自己还没有进行尝试,有待验证。
ISE有一个脚本帮忙实现了安装全过程,只是自己使用的时候有可能会遇到权限问题。后面自己每次编译的时候,都需要设置ISE的环境变量。在NetFPGA 的配置文件中,有一个Stanford大学的配置文件,里面有他们工具的配置文件,自己完全可以模仿他们,根据自己实际软件的情况写一个,配置好后可以方便使用这一类软件再次进行环境变量设置。
ModelSim的安装可以参考网上,在天朝如何使用ModelSim大家都会,google 一下你就知道太多了。在这里需要提醒的是,不管是ISE还是ModelSim,都会将license和系统里的eth0网卡进行绑定,我们一开始遇到了ModelSim无法安装上的原因就是自己电脑的两块网卡分别为eth1,eth2,所以无法安装ModelSim,修改设置好eth0后就ok了。
1.3.2NetFPGA的源码包
在我写这篇文章的时候,NetFPGA最新的源码是2.1.1版本,大家可以在上下载到。按照guide,大家需要还需要下载两个仿真文件,修改好文件名后放置到正确目录。由于不同版本的NetFPGA源码都有所改动,因此建议大家选定一个版本,不要将不同版本的源码混合使用,以免遇到很多稀奇古怪的问题。
在NetFPGA的根目录下有三个目录,bin目录存储了一些NetFPGA的配置操作文件;bitfiles目录存储了可用的bit文件,而且这些bit文件都不存在timeout 问题;lib目录则存储了大量NetFPGA提供的库文件,包括驱动,软件,FPGA 的大量源码;Project目录则存储了NetFPGA几个常用工程。
1.3.
2.1 V erilog源码
在${NF_ROOT}/lib/V erilog/core目录下存储了NetFPGA中所用的V erilog源

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。