You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* Added support to generate fst for ESSENT which gives 2x speedup and reduces waveform size by 135x
* Update README.md
How to compile and run ESSENT with VCD or FST
* Update README.md
---------
Co-authored-by: Priyanka Dutta <[email protected]>
Copy file name to clipboardExpand all lines: README.md
+42-2Lines changed: 42 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -18,6 +18,7 @@ Essent is written in Scala, which runs on the JVM. To run essent, it's easiest t
18
18
+`O2` - Muxes are represented with `if/else` blocks instead of ternary statements `?`. As many signals as possible are pulled into the if or else blocks. If both the if and else blocks will be trivially one statement, the optimization will not be performed.
19
19
+`O3` - Attempts to exploit low activity factors by reusing results from the previous cycle. The design will be partitioned, and each partition will get its own eval function. If none of the inputs to a partition change, its outputs will be reused. These partitions can include state elements.
On macOS, when using clang, we also found `-fno-slp-vectorize` to improve compile time for large designs, and `-fbracket-depth=1024` allows it to handle designs with deeply nested muxes.
To generate waveform with ESSENT you can choose either format , VCD or FST and then you can view using gtkwave waveform viewer.
73
+
74
+
```
75
+
Install gtkwave by entering the following commands in the terminal:
76
+
77
+
sudo apt update
78
+
sudo apt install gtkwave
79
+
```
80
+
Compile:
81
+
+`withVCD` - This flag enabled generates waveform in VCD format , which can be viewed using gtkwave; disabled by default
82
+
+`withFST` - This flag enabled generates waveform in FST format , which can be viewed using gtkwave; disabled by default
83
+
84
+
Example invocations:
85
+
86
+
```
87
+
$ ./essent -O3 -withVCD my_design.fir
88
+
```
89
+
90
+
Requitered update in Harness file:
91
+
92
+
Before we start the simulation , we need to add the below to the testbench file, which generates the header part of the VCD or FST.
93
+
94
+
top->genWaveHeader();
95
+
96
+
Running:
97
+
We do not need any extra argument to run with VCD , it is same as running essent without VCD.
98
+
99
+
with FST:
100
+
Please install vcd2fst before we run with FST.
101
+
Instead of going into generating FST from scratch, we are using vcd2fst tool to convert our VCD related data into streams and compress parallely to generate
102
+
in a form of FST format, which is 135x smaller than VCD file.
0 commit comments