Reference_nic

Reference_nic是NetFPGA-SUME中提供的一个参考Demo,本文主要介绍如何构建并在SUME上运行reference_nic。

GIT源

git clone https://github.com/NetFPGA/NetFPGA-SUME-live.git

私有库,需要权限。

Settings.sh

修改 /NetFPGA-SUME-live/tools/settings.sh

gedit /NetFPGA-SUME-live/tools/settings.sh

修改如下:

export SUME_FOLDER=/home/sume/NetFPGA-SUME-livs    #库的路径
export XILINX_PATH=/opt/Xilinx/Vivado/2016.4 #vivado的安装路径
export NF_PROJECT_NAME=reference_nic #本次测试的demo,其他demo可以在/NetFPGA-SUME-livs/projects下找到

修改完成后:

source /NetFPGA-SUME-live/tools/settings.sh

Vivado

vivado运行环境变量:

source /opt//Xilinx/Vivado/2016.4/settings.sh      #/opt//Xilinx/Vivado/2016.4/为vivado安装目录

NetFPGA-SUME-live

root@sume:/# cd $SUME_FOLDER                       #应该进入settings.sh设定的目录
root@sume:/home/sume/NetFPGA-SUME-livs# make

只要第一次执行就行,大概需要半个小时到一个小时。

编译Reference_nic

这部分需要很多时间,我出错也都在这部分。

root@sume:reference_nic# make                      #编译reference_nic

渣电脑编译一次花了大半个下午。。 不过也是只要编译一次即可。

编译后 bitfilse 目录下会出现一个二进制文件: reference_nic.bit

root@sume:reference_nic# cd bitfiles
root@sume:reference_nic/bitfiles# xmd #启动Xilinx tool

这里如果遇到提示找不到命令,可以在本目录再次下执行:

source /opt//Xilinx/Vivado/2016.4/settings.sh

启动Xilinx tool后会看到 xmd% 提示符:

xmd% fpga -f reference_nic.bit

看到成功提示后重启电脑。

重启后输入命令:

lcpsi -vxx | grep Xilinx

确认是否有Xilinx设备:



没有多重启几次电脑(Github原文:If you don't see the Xilinx device, you need to reprogram the FPGA and reboot as mentioned earlier.)。我是重启了好几次放弃,第二天回来就出现了。。

sume_riffa模块

加载sume_riffa模块,这部分比较简单,一般不会出错。

root@sume:/# cd $DRIVER_FOLDER                                  #应该进入sume_riffa_v1_0_0目录
root@sume:sume_riffa_v1_0_0# make all #很快
root@sume:sume_riffa_v1_0_0# make install #很快
root@sume:sume_riffa_v1_0_0# modprobe sume_riffa #载入sume_riffa模块
root@sume:sume_riffa_v1_0_0# lsmod #确认sume_riffa已载入

载入成功后执行ifconfig -a,应该出现4个'nfX'的网卡:

测试

提供的测试脚本地址为:NetFPGA-SUME-live/tools/scripts

需要的物理连接:

nf0<>nf0

nf1<>nf1

nf2<>nf2

nf3<>nf3


由于没有需要的特定光缆,所以改用另一种比较原始的方式,仅测试了nic的功能,没测试速率,接线如图:

NetFPGA-SUME下reference_nic测试的更多相关文章

  1. 论文阅读:NETFPGA SUME: TOWARD 100 GBPS AS RESEARCH COMMODITY

    摘要: 数据中心网络的需求增长意味着许多组成技术不在研究社区的预算之内. NETFPGA SUME是基于FPGA的PCI Express板,具有I / O功能,可作为网络接口卡,多端口开关,防火墙或测 ...

  2. 无废话Android之android下junit测试框架配置、保存文件到手机内存、android下文件访问的权限、保存文件到SD卡、获取SD卡大小、使用SharedPreferences进行数据存储、使用Pull解析器操作XML文件、android下操作sqlite数据库和事务(2)

    1.android下junit测试框架配置 单元测试需要在手机中进行安装测试 (1).在清单文件中manifest节点下配置如下节点 <instrumentation android:name= ...

  3. 安卓下junit测试

    安卓下junit测试 第一种方法: 1,在AndroidManifest.xml下,加入如下红色代码 <manifest xmlns:android="http://schemas.a ...

  4. Spring框架下Junit测试

    Spring框架下Junit测试 一.设置 1.1 目录 设置源码目录和测试目录,这样在设置产生测试方法时,会统一放到一个目录,如果没有设置测试目录,则不会产生测试代码. 1.2 增加配置文件 Res ...

  5. Android平台下渗透测试工具大集合

    Android平台下渗透测试工具大集合 分享一个google的项目,各种Android下的渗透测试工具. Ad Network Detector (1.2): http://market.androi ...

  6. APUE中fcntl.h的使用及O_SYNC在Mac与Ubuntu下的测试

    此部分测试涉及到APUE V3中,第三章的图3-12到图3-14. 通过fcntl.h提供的功能,修改fd的文件属性,本处增加O_SYNC功能,并测试其效果. 本文涉及代码: tree ch3 ch3 ...

  7. Ubuntu-14.04.3下SDL2测试

    最近突然蛋痛想入门Linux,想写个跨平台的游戏,各种坑,备忘,稍微记点笔记. 主要参考这个文章 buntu14.04下C++开发SDL2应用 下载与安装 到http://www.libsdl.org ...

  8. Screenfly – 各种设备的屏幕和分辨率下快速测试网站

    Screenfly 让你能够在各种设备的屏幕和分辨率下查看你的网站.输入网址,并点击GO开始浏览网页.Screenfly 可以使用代理服务器来模拟设备,当您查看您的网站,代理服务器模仿您所选择的设备的 ...

  9. Obj格式解析以及在Unity3D下导入测试

    目前基本实现了导入,注意只能打开含有单个模型的obj文件 四边面模型: 全三角面模型(测试单一材质,自动分了下UV): 这里介绍下obj格式: obj格式是waveFront推出的一种3D模型格式,可 ...

随机推荐

  1. 基于vue-cli的快速开发框架

    基于vue-cli的快速规范开发框架,已封装常用组件,可直接进行基本项目开发 1,遵循eslint规则,提升代码质量 2,集成mock模拟服务端数据,提升开发效率 3,集成vuex,可直接使用开发 4 ...

  2. C++程序设计入门(上) 之对象和类

    面向对象编程: 如何定义对象?  同类型对象用一 个通用的类来定义 class C { int p; int f(); }; C ca, cb; 一个类用变量来定义数据域,用函数定义行为. class ...

  3. STM32 HAL库学习系列第1篇 ADC配置 及 DAC配置

    ADC工作均为非阻塞状态 轮询模式 中断模式 DMA模式 库函数: HAL_StatusTypeDef HAL_ADC_Start(ADC_HandleTypeDef* hadc);//轮询模式,需放 ...

  4. 嵌入式C语言自我修养 02:Linux 内核驱动中的指定初始化

    2.1 什么是指定初始化 在标准 C 中,当我们定义并初始化一个数组时,常用方法如下: ] = {,,,,,,,,}; 按照这种固定的顺序,我们可以依次给 a[0] 和 a[8] 赋值.因为没有对 a ...

  5. tomcat启动慢?自己动手打造轻量web服务器(一)

    废话少说,直接上代码. 编程语言:kotlin import java.net.ServerSocketimport java.net.Socket fun main(args:Array<St ...

  6. 批量分离SQL数据库语句

    --sp_helpdb--查看可用数据库 declare @name sysname, @sql nvarchar(4000) DECLARE roy CURSOR FOR --排除不分离的数据库名就 ...

  7. JavaScript总结(六)

    使用DOM操纵样式表 ✍ 操纵元素的Style样式属性(所有的均对于CSS的内联式) 对于每个CSS样式,Style对象都包含了一个相对应的属性,只需要用到style属性即可: Div.style.c ...

  8. [2016北京集训试题6]网络战争-[最小割树(网络流)+kd-tree+倍增]

    Description A 联邦国有 N 个州,每个州内部都有一个网络系统,有若干条网络线路,连接各个 州内部的城市. 由于 A 国的州与州之间的关系不是太好,每个州都只有首府建立了到别的州的网络.具 ...

  9. 3503: [Cqoi2014]和谐矩阵

    3503: [Cqoi2014]和谐矩阵 链接 分析: 对于每个点,可以列出一个方程a[i][j]=a[i][j-1]^a[i][j+1]^a[i-1][j]^a[i+1][j],于是可以列出n*m个 ...

  10. java并发编程——Excutor

    概述 Excutor这个接口用的不多,但是ThreadPoolExcutor这个就用的比较多了,ThreadPoolExcutor是Excutor的一个实现.Excutor体系难点没有,大部分的关键点 ...