FPGA開発日記

カテゴリ別記事インデックス https://msyksphinz.github.io/github_pages , English Version https://fpgadevdiary.hatenadiary.com/

LiteXでのFPGA論理合成環境を調査する

LiteXはSoCを半自動的に生成するための総合環境で、自作CPUのSoC生成環境もLiteXを使用している。

github.com

LiteXでのFPGA合成環境は情報があまりなく、まとめておきたいと思う。 先ずはサンプルプログラムを動かす。いろいろ調査した結果、以下の環境を利用できる。

github.com

まずはこのリポジトリをダウンロードする。

git clone https://github.com/litex-hub/linux-on-litex-vexriscv
cd linux-on-litex-vexriscv
export LITEX_ENV_VIVADO=/home/msyksphinz/opt/cad/xilinx/Vivado/2019.2
./make.py --board=arty --cpu-count=1 --build

これだけで論理合成がスタートできる。あまりにもシンプルすぎて何が起きているのかよく分からない。

論理合成結果を確認してみる。一応うまくいっているようだ。

1. Slice Logic
--------------

+----------------------------+-------+-------+-----------+-------+
|          Site Type         |  Used | Fixed | Available | Util% |
+----------------------------+-------+-------+-----------+-------+
| Slice LUTs                 | 12084 |     0 |     20800 | 58.10 |
|   LUT as Logic             |  9760 |     0 |     20800 | 46.92 |
|   LUT as Memory            |  2324 |     0 |      9600 | 24.21 |
|     LUT as Distributed RAM |  2304 |     0 |           |       |
|     LUT as Shift Register  |    20 |     0 |           |       |
| Slice Registers            |  8861 |     0 |     41600 | 21.30 |
|   Register as Flip Flop    |  8861 |     0 |     41600 | 21.30 |
|   Register as Latch        |     0 |     0 |     41600 |  0.00 |
| F7 Muxes                   |   554 |     0 |     16300 |  3.40 |
| F8 Muxes                   |     1 |     0 |      8150 |  0.01 |
+----------------------------+-------+-------+-----------+-------+
------------------------------------------------------------------------------------------------
| Design Timing Summary
| ---------------------
------------------------------------------------------------------------------------------------

    WNS(ns)      TNS(ns)  TNS Failing Endpoints  TNS Total Endpoints      WHS(ns)      THS(ns)  THS Failing Endpoints  THS Total Endpoints     WPWS(ns)     TPWS(ns)  TPWS Failing Endpoints  TPWS Total Endpoints
    -------      -------  ---------------------  -------------------      -------      -------  ---------------------  -------------------     --------     --------  ----------------------  --------------------
      0.085        0.000                      0                42769        0.021        0.000                      0                42768        0.264        0.000                       0                 12189