eFPGA设计开源框架 FABulous 系列(一)开发环境搭建
我是雪天鱼,一名FPGA爱好者,研究方向是FPGA架构探索。笔记同步在我的个人网站进行更新,欢迎来访查看。目前在研究eFPGA,学术界目前最新发表的用于 eFPGA 设计的开源框架是FABulous,项目开源。后续我会使用到该框架,故先进行开发环境搭建,过程记录如下。一、下载编译系统:Ubuntu20.04在所要存放的目录下,打开终端,输入:git clone https://github.com
我是 雪天鱼,一名FPGA爱好者,研究方向是FPGA架构探索。
关注公众号【集成电路设计教程】,拉你进“IC设计交流群
”。
目前在研究eFPGA,学术界目前最新发表的用于 eFPGA 设计的开源框架是FABulous,项目开源。
后续我的研究会使用到该框架,故先进行开发环境搭建,过程记录如下。
一、下载编译
系统: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写的)
更多推荐
所有评论(0)