ESSENT是最近提出的一种高性能开源RTL仿真器,本节开始详细介绍ESEENT,首先介绍下开源工具的使用,我们使用的环境是ubuntu20。
源代码
git clone https://github.com/ucsc-vama/essent.git
java安装
sudo apt install openjdk-11-jdk
scala安装
下载
wget https://downloads.lightbend.com/scala/2.12.6/scala-2.12.6.tgz
解压
sudo tar -xzvf scala-2.12.6.tgz -C /usr/local/share
/etc/profile中添加
export PATH="$PATH:/usr/local/share/scala-2.12.6/bin"
source生效:
source /etc/profile
sbt安装
echo "deb https://repo.scala-sbt.org/scalasbt/debian all main" | sudo tee /etc/apt/sources.list.d/sbt.list
echo "deb https://repo.scala-sbt.org/scalasbt/debian /" | sudo tee /etc/apt/sources.list.d/sbt_old.list
curl -sL "https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x2EE0EA64E40A89B84B2DF73499E82A75642AC823" | sudo apt-key add
sudo apt-get update
sudo apt-get install sbt
执行
sbt sbtVersion
查看版本。
编译打包
sbt package
sbt assembly
可能需要花费几分钟的时间,耐心等待,编译打包成功后,会发现utils/bin文件夹下会生成essent.jar的jar包,此时执行utils/bin文件夹下的ensent脚本可以检测是否成功:
./essent --help
正常结果:
Usage: essent [options] <file>
<file> .fir input file
-O0, --O0 disable all optimizations
-O1, --O1 enable only optimizations without conditionals
-O2, --O2 enable conditional evaluation of mux inputs
-O3, --O3 enable all optimizations (default)
--dump dump low-firrtl prior to essent executing
-h, --harness generate harness for Verilator debug API
-ell, --essent-log-level <Error|Warn|Info|Debug|Trace>
logging level for essent processing after firrtl
-fll, --firrtl-log-level <Error|Warn|Info|Debug|Trace>
logging level for firrtl preprocessing
--help prints this usage text
--activity-signal track individual signal activities
--activity-parts print out partition activity stats
--activity-exts track individual signal extinguishes (with activities)
--stats-parts output topo information from partitioning
--part-cutoff <value> parameter used for partitioning
好了,本节只介绍下如何安装工具,后面会继续介绍如何使用。