栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

eFPGA设计开源框架 FABulous 系列(一)开发环境搭建

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

eFPGA设计开源框架 FABulous 系列(一)开发环境搭建

我是雪天鱼,一名FPGA爱好者,研究方向是FPGA架构探索。
笔记同步在我的个人网站进行更新,欢迎来访查看。
目前在研究eFPGA,学术界目前最新发表的用于 eFPGA 设计的开源框架是FABulous,项目开源。
后续我的研究会使用到该框架,故先进行开发环境搭建,过程记录如下。

文章目录

一、下载编译二、编译时可能出现的错误三、FABulous Demo测试

3.1 修改 create_basic_files.sh3.2 Python环境搭建3.3 Demo运行

一、下载编译

系统:Ubuntu20.04
在所要存放的目录下,打开终端,输入:

git clone https://github.com/FPGA-Research-Manchester/FABulous

由于项目存在分支,再输入

cd FABulous
git clone --branch fabulous https://github.com/FPGA-Research-Manchester/nextpnr

文件数量比较多,耐心等待

再进行编译,采用 CMAKE 。

cd nextpnr
cmake . -DARCH=fabulous


再执行:

make -j$(nproc)
sudo make install



到这里FABulous框架的开发环境就编译搭建好了。

二、编译时可能出现的错误

(1)Could NOT find Boost (missing: Boost_INCLUDE_DIR filesystem program_options
iostreams system thread)

问题分析:缺少 Boost库所导致。
解决方法:
先下载安装好库,具体可看我的另一篇博客: ubuntu20.04下下载安装boost,再打开 FABulous/nextpnr/CMakeLists.txt配置路径
添加:

# for boost
set(BOOST_ROOT "/home/jc-cao/app_download_address/boost/boost_1_70_0/boost ")
set(BOOST_LIBRARYDIR "/usr/local/lib")
set(Boost_INCLUDE_DIR "/usr/local/include")
set(DBoost_DEBUG=OFF) # set ON to  debug
set(BOOST_FIND_MINIMUM_COMPonENTS serialization system filesystem thread program_options date_time timer chrono regex)
find_package(Boost REQUIRED COMPonENTS ${BOOST_FIND_MINIMUM_COMPONENTS})
include_directories(${Boost_INCLUDE_DIR})

注:上述路径是我的,要根据自己的实际路径进行修改

重新执行:

cmake . -DARCH=fabulous


可以看到boost库缺少的问题解决了,但有出现了新问题。继续解决
(2)Could not find a package configuration file provided by “Eigen3” with any
of the following names:
具体报错信息:

CMake Error at CMakeLists.txt:227 (find_package):
  Could not find a package configuration file provided by "Eigen3" with any
  of the following names:

    Eigen3Config.cmake
    eigen3-config.cmake

  Add the installation prefix of "Eigen3" to CMAKE_PREFIX_PATH or set
  "Eigen3_DIR" to a directory containing one of the above files.  If "Eigen3"
  provides a separate development package or SDK, be sure it has been
  installed.

问题分析:缺少 Eigen3库所导致。
解决方法:下载安装下就行

sudo apt-get install libeigen3-dev
三、FABulous Demo测试 3.1 修改 create_basic_files.sh

在FABulous根目录下,输入

cd fabric_generator
vim create_basic_files.sh

对 create_basic_files.sh进行修改,因为不修改有语法错误,就离谱。
修改为:

cp ../fabric_files/generic/*.* ./
mkdir -p npnroutput
mkdir -p vproutput

修改好后,退出并保存,再输入:

./create_basic_files.sh

npnroutput 文件夹用来存储 nextpnr 的输出文件vproutput 文件夹 用来存储 vpr 的输出文件 3.2 Python环境搭建

FABulous很多脚本都是用python写的,有相关第三方库依赖,而我的ubuntu20.04安装了Anconda,所以我打算为 FABulous创建一个虚拟环境,方便管理。
输入:

conda create -n FABulous python=3.7

然后输入yes确认即可:

启动虚拟环境 FABulous:

source activate FABulous

安装包:

pip3 install fasm
pip3 install numpy
3.3 Demo运行

在 FABulous 虚拟环境下输入

./run_fab_flow.sh

输出:

如果想将运行结果保存为 log,输入下述代码:

./run_fab_flow.sh > FABulous_run1.log


生成的文件和文件夹如上图红色框标注部分。其中 verilog_ouput 和 vhdl_output包含了所生成的完整的fabric的RTL代码。

至此FABulous的开发环境就搭建好了,并且也进行了一个简单的测试,证明可以通过输入一些用于描述eFPGA架构的csv文件,就可以自动化生成对应的Fabric网表(两种,分别是用Verilog和VHDL写的)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/725061.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号