etherzhhb / shang Goto Github PK
View Code? Open in Web Editor NEWThe Shang high-level synthesis framework
The Shang high-level synthesis framework
Improve the ReadMe.md, in English.
Could you please provide a link for the instructions to install modelsim which worked for you?
After chaining is enabled, the result of an operation in a multi-cycles chain may be read at the middle of a cycles. This means we cannot break the chains at a arbitrary position, hence sometime we cannot break a chain to preserve WAR dependencies in pipelined block. A fail case is shown in [1].
Currently the constant values in VerilogAST are limited to no greater than 64bit. This lead to a fail case in 64bit platform: http://192.168.1.253:8010/builders/CustomFast/builds/6.
To solve this problem, we had to represent the constant values the LLVM APInt.
李静波和罗新潮注册github,并加入SysuEDA
提交自动报告Altera 的特定FPGA中的FU的面积和延时信息的代码。
The installation procedure described in README.md does not work. Below is the process I used to install the tool (Ubuntu 18.04).
build-essential
, git
, automake
, and cmake
:sudo apt-get install git automake cmake
liblpsolve55-dev
, libgmp3-dev
, libtool
, and libboost-dev
:sudo apt-get install liblpsolve55-dev libgmp3-dev libtool libboost-dev
wget https://www.lua.org/ftp/lua-5.1.5.tar.gz
tar xvf lua-5.1.5.tar.gz
cd lua-5.1.5
-fPIC
compilation flag (and, optionally, -g
) to src/Makefile
:CFLAGS= -g -O2 -Wall -fPIC $(MYCFLAGS)
make linux
make local
cd ..
wget https://sourceforge.net/projects/luabind/files/luabind/0.9.1/luabind-0.9.1.tar.gz/download -O luabind-0.9.1.tar.gz
tar xvf luabind-0.9.1.tar.gz
cd luabind-0.9.1
$TOOLS
points to the directory with the manually installed tools and libraries):LUA_PATH=$(TOOLS)/lua-5.1.5
bjam --prefix=$(TOOLS)/luabind-0.9.1 install
sudo apt-get install luarocks
sudo luarocks install luabitop
wget https://www.accellera.org/images/downloads/standards/systemc/systemc-2.3.3.tar.gz
tar xvf systemc-2.3.3.tar.gz
Follow the instructions specified in INSTALL
.
Set the environment variables ($TOOLS
points to the directory with the manually installed tools and libraries):
export SYSTEMC_INCLUDE=$(TOOLS)/systemc-2.3.3/include/
export SYSTEMC_LIBDIR=$(TOOLS)/systemc-2.3.3/lib-linux64/
git clone https://github.com/verilator/verilator
cd verilator
autoconf
./configure
make
sudo make install
$TOOLS
points to the directory with the manually installed tools and libraries):export VERILATOR_ROOT=$(TOOLS)/verilator/
wget https://releases.llvm.org/3.1/clang+llvm-3.1-x86_64-linux-ubuntu_12.04.tar.gz
tar xvf clang+llvm-3.1-x86_64-linux-ubuntu_12.04.tar.gz
git clone https://github.com/ispras/abc.git abc
cd abc
make ABC_USE_PIC=1 libabc.a
git clone http://llvm.org/git/llvm.git
16436dffb50fac4677c7162639f8da0b73eb4e99
:cd llvm
git reset --hard 16436dffb50fac4677c7162639f8da0b73eb4e99
cd lib/Target/
git clone https://forge.ispras.ru/git/shang.git VerilogBackend
cd ../../
git apply lib/Target/VerilogBackend/util/llvm-16436dffb50fac4677c7162639f8da0b73eb4e99.patch
build
folder:cd ..
mkdir build
cd build
cmake
with the following flags ($TOOLS
points to the directory with the manually installed tools and libraries):/usr/bin/cmake ../llvm/
-DCMAKE_BUILD_TYPE=Debug \
-DENABLE_LOGIC_SYNTHESIS=OFF \
-DLUA_INCLUDE_DIR=$TOOLS/lua-5.1.5/include \
-DLUA_LIBRARY=$TOOLS/lua-5.1.5/lib/liblua.a \
-DLUA_LUAC=$TOOLS/lua-5.1.5/bin/luac \
-DLUABIND_INCLUDE_DIR=/usr/include \
-DLUABIND_LIBRARY=$TOOLS/luabind-0.9.1/lib/libluabindd.so \
-DLPSOLVE_INCLUDE_DIR=/usr/include/lpsolve \
-DLPSOLVE_LIBRARY=/usr/lib/lp_solve/liblpsolve55.so \
-DABC_INCLUDE_DIR=$TOOLS/abc \
-DABC_LIBRARY=$TOOLS/abc/libabc.a \
-DSYSTEMC_ROOT_DIR=$TOOLS/systemc-2.3.3/ \
-DVERILATOR_ROOT_DIR=$TOOLS/verilator/
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.