- 33
- 0
- 约3.62千字
- 约 4页
- 2018-12-13 发布于天津
- 举报
搭建P4C与P4FPGA联合编译环境1、简介在2016SIGCOMM大会上.doc
搭建P4C与P4FPGA联合编译环境
1、简介
在2016 SIGCOMM大会上HanW发表了一篇名为《P4FPGA: High Level Synthesis for Networking》的论文,该论文实现了一个从P4语言到Bluespec的编译器。这个P4FPGA的工作发表在会议第一天的NetPL workshop上,P4语言与FPGA的结合引起了工业界的重视。因此,本文将分享搭建P4C与P4FPGA联合编译环境的经验。
2、编译流程解析
最新更新的P4C支持P4_14和P4_16两个版本,首先将P4_14和P4_16编写的P4源程序转换成通用的中间表示IR,然后经过前端编译器生成为通用的后端中间表示IR,最后经过不同的后端编译器生成特定目标平台的代码。具体流程如图所示:
其中,P4C源码中包含3个后端编译器原型:eBPF、BMv2和p4test。eBPF能够生成可以扩展Berkeley数据包过滤程序的C代码;BMv2能够生成可以用BMv2进行简单的网络交换仿真的JSON文件;p4test是一个测试用的后端编译器。以及可以编写或定制其他任意的目标平台的后端编译器。
3、基本环境配置
系统:Ubuntu 16.04、Ubuntu14.04(以下均在root用户下操作)
(1)需要安装boost库
在P4FPGA的makefile文件中有使用到boost库,如果缺少boost库编译时会报如下错误信息:
/usr/bin/ld: cannot find -lboost_system
/usr/bin/ld: cannot find -lboost_filesystem
(2)boost中用到了其他函数库,因此需要先安装依赖库。
apt-get install mpi-default-dev #安装mpi库
apt-get install libicu-dev #支持正则表达式的UNICODE字符集
apt-get install python-dev #需要python的话
#如果编译出现错误:bzlib.h: No such file or directory
apt-get install libbz2-dev
#如果在安装以上库失败的话可以尝试更新后再进行安装。
sudo apt-get update
(3)上述函数库装好之后,就可以编译boost库了。boost下载链接: HYPERLINK /projects/boost/files/boost/1.63.0/boost_1_63_0.tar.gz/download /projects/boost/files/boost/1.63.0/boost_1_63_0.tar.gz/download
解压boost_1_63_0.tar.gz到/home/目录下,执行以下操作:
cd /home/boost_1_63_0/
./bootstrap.sh #运行bootstrap.sh脚本
编译完成后,进行安装,也就是将头文件和生成的库。
./b2 install #安装boost库
安装结束后在/usr/local/lib和/usr/local/include目录下生成相应库文件和头文件。
(4)测试boost库是否安装成功
可参考: HYPERLINK /yhrun/article/details/8099630 /yhrun/article/details/8099630
重要提示:编译成功后运行执行时,如果出现以下信息
error while loading shared libraries: libboost_system.so.1.63.0: cannot open shared object file: No such file or directory
是因为系统在当前注册的搜索路径中找不到所需的共享库。
执行以下操作(或在/etc/profile文件添加):
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/local/lib:/usr/local/include
4、搭建P4C与P4FPGA联合编译环境
(1)下载P4C与P4FPGA源码
cd /home/
git clone /p4lang/p4c.git
git clone /hanw/p4fpga.git
(2)关键一:建立p4c与p4fpga
打开p4c源码目录预编译:
cd p4c
./bootstrap.sh
运行完后在p4c目录下会生成build和extensions文件夹。
建立一个软连接:
ln -s /home/p4fpga/compiler /ho
您可能关注的文档
- 基于条件风险价值的备用成本分摊方法-电力系统保护与控制.PDF
- 基于模糊综合评价的交易结算偏差电量处理方法-电力系统自动化.PDF
- 基于源-荷互动的大规模风电消纳协调控制策略.PDF
- 基于调度三公的浙江电я调峰交易市场模型.PDF
- 国家重点监控企业自行检测及信息公开.PDF
- 大通江、平洛河水保措施减水减沙分析-水土保持研究.PDF
- 学生公寓中心管理制度汇编.doc-兰州大学化学化工学院.doc
- 容量配置与导入导出功能的更改-Cisco.PDF
- 小波分析与应用和MATLAB免费1个视频全面说明面对面-正一.算法程序.doc
- 市场概述据金农监测,上期(05-辽宁金农.doc
- 统编版2025年春季新版七年级下册历史 第21课 明清时期的科技与文化 教案.docx
- 雅安雨城法院书记员招聘考试真题库2025.docx
- 2026届安徽合肥市高考一模高考语文试卷试题(含答案详解).pdf
- 【专题研究】国内外城市更新研究的最新进展.pdf
- 【专题研究】老旧城区改造居民满意度影响因素研究——以遂宁市老旧城区改造为例.pdf
- 【专题研究】关于旧城空间改造理论与创意设计案例的几点思考.pdf
- 西藏拉萨市高三下学期期末物理备考重点详解.docx
- 泾县法院书记员招聘笔试真题2025.pdf
- 2026年春【苏教版】-六年级数学下册-面积的变化.pptx
- 2026年春【苏教版】-六年级数学下册-7.pptx
最近下载
- 《全球粮食安全挑战》课件.ppt VIP
- 医院感染管理办法课件PPT.pptx VIP
- 新公共法语中级教程(吴贤良)习题答案及参考译文.pdf
- 人工智能在司法领域的应用路径与前景分析.docx VIP
- 江西电力职业技术学院单招职业倾向性考试题库及答案详解(真题汇编).docx VIP
- 消化不良ppt课件.pptx VIP
- 2025年广东省外语艺术职业学院单招笔试英语试题库含答案解析.docx VIP
- 2026年忻州职业技术学院单招职业适应性测试题库附答案解析.docx VIP
- 控制计划CP中英文完整范本.xls VIP
- 江西电力职业技术学院单招职业适应性考试题库及答案详解(历年真题).docx VIP
原创力文档

文档评论(0)