Yosys modelsΒΆ
All Yosys model files can be found in the Yosys repository under $YOSYS_ROOT/techlibs/fabulous/
. These files are listed below.
File Name |
Description |
---|---|
prims_ff.v |
Fabric primitives definition |
ff_map.v |
Abitrary D-type Flip-flop with SET/RESET and ENABLE technology mapping |
latches_map.v |
Latches technology mapping |
cells_map_ff.v |
LUT-4 technology mapping (can be modified to LUT-6) |
The current synthesis pass is built for FABulous version3. Unlike the previous two versions, the new version supports ENABLE and SET/RESET functions in D-type Flip-flops (DFF). In the pass, Yosys represents cells $_DFF_P_
, $_DFFE_PP_
, $_SDFF_PP?_
and $_SDFFCE_PP?P_
for DFFs (More DFF cells definitions can be found in the
Yosys manual
Chapter 5.2). User should also define different types of DFF in the ff_map.v
for DFF technology mapping.
$_DFF_P_ |
Positive Clock edge DFF |
$_DFFE_PP_ |
Positive Clock edge, High active Enable |
$_SDFF_PP?_ |
Positive Clock edge, High active Set/Reset |
$_SDFFCE_PP?P_ |
Positive Clock edge, High active Enable and Set/Reset |
We have made a comparison between synthesis with and without ENABLE and SET/RESET DFF on the Murax core
benchmark, as shown below:
Name |
LUT1 |
LUT2 |
LUT3 |
LUT4 |
LUT_total |
LUTFF |
LUTFF_E |
LUTFF_SR |
LUTFF_SS |
LUTFF_ESR |
LUTFF_ESS |
RegFile_32x4 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
Murax |
4 |
335 |
1248 |
1195 |
2782 |
1361 |
12 |
|||||
Murax_dffesr |
128 |
380 |
637 |
785 |
1930 |
233 |
841 |
86 |
7 |
174 |
20 |
12 |
Ps.
LUTFF : DFF with no enable and no set/reset
LUTFF_E : synchronous enable
LUTFF_SR : synchronous reset to 0
LUTFF_SS : synchronous set to 1
LUTFF_ESR: synchronous enable, synchronous reset to 0
LUTFF_ESS: synchronous enable, synchronous set to 1
Around 30% LUT resources can be saved by ENABLE and SET/RESET functions added, so it is supported in version 3.