zoukankan      html  css  js  c++  java
  • NetFPGA-1G-CML Demo --- reference_router_nf1_cml

    环境

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

  • 相关阅读:
    240. Search a 2D Matrix II
    436. Find Right Interval
    378. Kth Smallest Element in a Sorted Matrix
    278. First Bad Version
    374. Guess Number Higher or Lower
    207. Course Schedule
    Java enum的用法详解
    Android中RelativeLayout各个属性 android:layout_alignParentLeft=”true”找不到有时候
    android:layout_gravity和android:gravity的区别
    Android 相对布局 扩展
  • 原文地址:https://www.cnblogs.com/maskerk/p/7691917.html
Copyright © 2011-2022 走看看