环境

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不断轮询从硬件读取的数据。

05-04 07:27