环境

deepin 15.4

vivado 15.2

ise 14.6

前期准备

Github Wiki链接:https://github.com/NetFPGA/NetFPGA-public/wiki/NetFPGA-1G-CML-Reference-Router

官网工程:

git clone https://github.com/NetFPGA/NetFPGA-1G-CML-live.git

路径配置

编辑bashrc_addon_NetFPGA_10G,修改为以下内容(工程外路径根据自己放置位置修改)

export NF_ROOT=/home/sume/NetFPGA-1G-CML-live
export NF_DESIGN_DIR=${NF_ROOT}/projects/reference_router_nf1_cml
export NF_WORK_DIR=/tmp/${USER}
export PYTHONPATH=${NF_ROOT}/lib/python:${NF_DESIGN_DIR}/lib/Python:${NF_ROOT}/tools/scripts:
export LD_LIBRARY_PATH=${NF_ROOT}/lib/java/NetFPGAFrontEnd/bin:${LD_LIBRARY_PATH}

激活路径配置

source /opt/Xilinx/14.6/ISE_DS/settings64.sh
source bashrc_addon_NetFPGA_10G
如果这是执行的第一个工程的话,需要转到顶级NetFPGA-1G-CML目录运行“make core”,以从Xilinx ISE安装中复制必要的文件,生成必要的IP内核(如10G以太网MAC和XAUI),并将其放在硬件库中,修复一些复制的文件,以便可以在NetFPGA-10G板的Virtex-5 FPGA器件上合成复制的IP。
cd $NF_ROOT
make core
make hwtestlib
make cml_cores
如果下边编译失败的话,可以尝试重复以下命令:
cd $NF_ROOT
make hwtestlib
make cml_cores

安装 Switch CAM

官方链接:https://github.com/NetFPGA/NetFPGA-1G-CML-live/tree/master/projects/reference_router_nf1_cml
可以按照步骤一步步生成文件放在指定目录下,中文安装步骤参考:http://www.cnblogs.com/wpqwpq/p/6954296.html
也可以用小编这里直接生成的文件,放在指定的目录下:

tcam.v cam.v 放到

cd $NF_ROOT/lib/hw/std/pcores/nf10_router_output_port_lookup_v1_00_a/hdl/verilog

tcam.ngc cam.ngc 放到

cd $NF_ROOT/lib/hw/std/pcores/nf10_router_output_port_lookup_v1_00_a/netlist

运行步骤

step1:编译工程

cd $NF_DESIGN_DIR
make clean
make

编译过程遇到错误

/bin/bash: gmake: 未找到命令

执行

cd /usr/bin
ln -s make gmake

激活Vivado

source /opt/Xilinx/Vivado/2015.2/settings64.sh

将配置烧录到NetFPGA

make download

step2:Java GUI

java GUI允许用户改变路由表和ARP缓存的条目以及路由器的MAC地址和IP地址。并且提供了关于吞吐量在计数值和图形方面的升级。这个GUI有一部分是用c编写的,用于提供java binaries与驱动之间的接口。本地的库从nf10util.c这个文件被编译,其包括读寄存器和写寄存器。这个库用java本地的库来连接GUI。

为了构建这个GUI,首先确保你安装了SUN‘s JDK(版本>=1.6),并且java,javac、jar binaries在你的路径下(或者,你可以编辑projects/reference_router_nf1_cml/sw/host/gui目录下的Makefile去指定到本地路径)。然后进入 projects/reference_router_nf1_cml/sw/host/gui目录下,

make clean

然后

make

然后你可以得到类似以下的输出:

	make[1]: Entering directory `~/NetFPGA-10G-live/projects/reference_router_nf1_cml/sw/host/common'
gcc -fpic -c nf10util.c nf_util.c
gcc -shared nf10util.o nf_util.o -o libnf10.so
make[1]: Leaving directory `~/NetFPGA-10G-live/projects/reference_router_nf1_cml/sw/host/common'
Building java... Done
Writing router gui manifest...
Building router jar...
Writing script to start router gui...
如果没有编译成功,进入到hw目录下执行
make regs
回到gui目录下,不要激活ise和vivado,执行
make clean
make
可以得到正确编译

为了使得这个GUI运行起来,需要进入 NetFPGA-10G-live/projects/reference_router_nf1_cml/sw/host/gui目录下

./router.sh

这个GUI便会弹出来了。GUI不断轮询从硬件读取的数据。

NetFPGA-1G-CML Demo --- reference_router_nf1_cml的更多相关文章

  1. NetFPGA Demo ——reference_router_nf1_cml

    NetFPGA Demo --reference_router_nf1_cml 前言 本博文主要介绍了reference_router_nf1_cml该demo的一路运行,以及一路上艰难跑通遇到的坑. ...

  2. FPGA论文

    基于 NetFPGA 的 VCP 网络的设计与实现 --可变结构拥塞控制协议(VCP),适应于高带宽时延乘积网络的显式拥塞控制协议 无源光网络(PON) 1.区块链技术发展,物联网设备激增,服务器压力 ...

  3. NetFPGA Demo ——reference_nic_nf1_cml

    NetFPGA Demo --reference_nic_nf1_cml 实验平台 OS:deepin 15.4 开发板:NetFPGA_1G_CML 实验过程 从NetFPGA-1G-CML从零开始 ...

  4. 【阿里云产品公测】云引擎ACE java DEMO 直接部署体验

    作者:阿里云用户啊里新人 本来想根据前几个哥们的公测文章,体验一下,发现他妈的都是php的一下我就,,好吧还有群,群里高手如云,,看着文档(其实文档写的很清晰了!只不过我太懒了!)   哈哈,所以群里 ...

  5. 30分钟玩转Net MVC 基于WebUploader的大文件分片上传、断网续传、秒传(文末附带demo下载)

    现在的项目开发基本上都用到了上传文件功能,或图片,或文档,或视频.我们常用的常规上传已经能够满足当前要求了, 然而有时会出现如下问题: 文件过大(比如1G以上),超出服务端的请求大小限制: 请求时间过 ...

  6. vs2017 android demo

    vs2017自安装以后就没怎么打开过,虽然12出的时候用10,15出的时候用13,17出的时候用15,但我依然坚持不用也装上再说的理念. 1.vs2017开发IOS和Android安装所必不可少的,u ...

  7. spark集群配置以及java操作spark小demo

    spark 安装 配置 使用java来操作spark spark 安装 tar -zxvf spark-2.4.0-bin-hadoop2.7.tgz rm spark-2.4.0-bin-hadoo ...

  8. spark-submit提交方式测试Demo

    写一个小小的Demo测试一下Spark提交程序的流程 Maven的pom文件 <properties> <maven.compiler.source>1.7</maven ...

  9. 开源!js实现微信/QQ直接跳转到支付宝APP打开口令领红包!附:demo

    最近支付宝的领红包可真是刷爆了各个微信群啊,满群都是支付宝口令. 可是这样推广可不是办法,又要复制又要打开支付宝又要点领取,太麻烦了. 于是乎,提出了一个疑问!是否可以在微信里面点一个链接然后直接打开 ...

随机推荐

  1. 用python帮朋友刷帖

    0x0前言: 答应了一个朋友帮他刷贴,自己用python写了一个脚本刷. 虽然行为不好..但是缺钱用... 0x01准备: splinter模块: chrome浏览器驱动 0x02开始: 1.进入百度 ...

  2. Qtree3题解(树链剖分(伪)+线段树+set)

    外话:最近洛谷加了好多好题啊...原题入口 这题好像是SPOJ的题,挺不错的.看没有题解还是来一篇... 题意: 很明显吧.. 题解: 我的做法十分的暴力:树链剖分(伪)+线段树+\(set\)... ...

  3. 【BZOJ3670】动物园(KMP算法)

    [BZOJ3670]动物园(KMP算法) 题面 BZOJ 题解 神TM阅读理解题 看完题目之后 想暴力: 搞个倍增数组来跳\(next\) 每次暴跳\(next\) 复杂度\(O(Tnlogn)\) ...

  4. 【BZOJ2748】音量调节(动态规划)

    [BZOJ2748]音量调节(动态规划) 题面 Description 一个吉他手准备参加一场演出.他不喜欢在演出时始终使用同一个音量,所以他决定每一首歌之前他都要改变一次音量.在演出开始之前,他已经 ...

  5. Luogu 睡觉困难综合征 ([NOI2014]起床困难综合症)

    一.[NOI2014]起床困难综合症 题目描述 网址:https://daniu.luogu.org/problemnew/show/2114 大意: 有一条链,链上每一个节点包含一个位运算f 与 一 ...

  6. [Lugu3380]【模板】二逼平衡树(树套树)

    题面戳我 您需要写一种数据结构来维护一个有序数列,其中需要提供以下操作: 1.查询k在区间内的排名 2.查询区间内排名为k的值 3.修改某一位值上的数值 4.查询k在区间内的前驱(前驱定义为严格小于x ...

  7. JavaScript之BOM

    一.什么是BOM? BOM(Browser Object Model)是指浏览器对象模型,它使 JavaScript 有能力与浏览器进行“对话”. 二.Windows对象 Window对象是客户端Ja ...

  8. Eclipse常用不常用快捷键

    逼格高且常用的7个快捷键:Ctrl+O:列出该类下的所有方法   Ctrl+E:列出打开的所有类   Shift+Enter:在当前行下一行创建空白行(Ctrl+Shift+Enter:在当前行上一行 ...

  9. WPF之DataContext(转)

    WPF之DataContext(转) 有时候不是你不够聪明,而是别人教给你的东西太烂!相信自己! 这是我认为,目前网络上对“DataContext”解释最好的一篇文章,跟大家分享. 原文地址:http ...

  10. 【经验随笔】 Tomcat多个APP使用相同名称环境变量导致问题

    背景介绍 之前遇到一个问题,在一个tomcat下部署了两个APP,其中一个APP不能正常从底层接口获取数据.如果将两个APP分到不同服务器上的tomcat部署,又都正常了.分析了一下: 远程调试跟代码 ...