FPGA開発日記

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

自作CPUの面積削減検討 (3. ROBの面積削減効果)

ROBの削減効果の確認。デバッグして一応テストパタンが通るようになってきたので、Vivadoで論理合成してその効果を確認していきたい。

  • ROB面積削減適用前
+-------------------------+----------------------------+------------+------------+---------+------+-------+--------+--------+--------------+
|         Instance        |           Module           | Total LUTs | Logic LUTs | LUTRAMs | SRLs |  FFs  | RAMB36 | RAMB18 | DSP48 Blocks |
+-------------------------+----------------------------+------------+------------+---------+------+-------+--------+--------+--------------+
| mycpu__tile_wrapper     |                      (top) |      72524 |      71216 |    1276 |   32 | 42378 |     12 |     52 |           20 |
|   (mycpu__tile_wrapper) |                      (top) |          0 |          0 |       0 |    0 |     0 |      0 |      0 |            0 |
|   u_mycpu__tile         |                mycpu__tile |      72524 |      71216 |    1276 |   32 | 42378 |     12 |     52 |           20 |
|     (u_mycpu__tile)     |                mycpu__tile |          9 |          9 |       0 |    0 |     0 |      0 |      0 |            0 |
|     alu_loop[0].u_alu   |                 mycpu__alu |       6554 |       6538 |       0 |   16 |  2765 |      0 |      0 |           10 |
|     alu_loop[1].u_alu   | mycpu__alu__parameterized0 |       6482 |       6466 |       0 |   16 |  2739 |      0 |      0 |           10 |
|     u_bru               |                 mycpu__bru |       2277 |       2277 |       0 |    0 |  1134 |      0 |      0 |            0 |
|     u_csu               |                 mycpu__csu |       2088 |       2088 |       0 |    0 |  2893 |      0 |      0 |            0 |
|     u_frontend          |            mycpu__frontend |      12513 |      12065 |     448 |    0 | 11405 |      4 |     12 |            0 |
|     u_int_phy_registers |       mycpu__phy_registers |       3010 |       2570 |     440 |    0 |   614 |      0 |     40 |            0 |
|     u_lsu_top           |             mycpu__lsu_top |      23644 |      23256 |     388 |    0 |  8256 |      8 |      0 |            0 |
|     u_ptw               |                 mycpu__ptw |        188 |        188 |       0 |    0 |    50 |      0 |      0 |            0 |
|     u_rename            |              mycpu__rename |       3622 |       3622 |       0 |    0 |  2301 |      0 |      0 |            0 |
|     u_resource_alloc    |      mycpu__resource_alloc |        118 |        118 |       0 |    0 |    50 |      0 |      0 |            0 |
|     u_rob               |                 mycpu__rob |      11900 |      11900 |       0 |    0 |  9763 |      0 |      0 |            0 |
|     u_snoop_top         |           mycpu__snoop_top |        119 |        119 |       0 |    0 |   408 |      0 |      0 |            0 |
+-------------------------+----------------------------+------------+------------+---------+------+-------+--------+--------+--------------+
  • ROB面積削減適用後
+-------------------------+----------------------------+------------+------------+---------+------+-------+--------+--------+--------------+
|         Instance        |           Module           | Total LUTs | Logic LUTs | LUTRAMs | SRLs |  FFs  | RAMB36 | RAMB18 | DSP48 Blocks |
+-------------------------+----------------------------+------------+------------+---------+------+-------+--------+--------+--------------+
| scariv_tile_wrapper     |                      (top) |      61861 |      60553 |    1276 |   32 | 37501 |     12 |     52 |           20 |
|   (scariv_tile_wrapper) |                      (top) |          0 |          0 |       0 |    0 |     0 |      0 |      0 |            0 |
|   u_scariv_tile         |                scariv_tile |      61861 |      60553 |    1276 |   32 | 37501 |     12 |     52 |           20 |
|     (u_scariv_tile)     |                scariv_tile |          9 |          9 |       0 |    0 |     0 |      0 |      0 |            0 |
|     alu_loop[0].u_alu   |                 scariv_alu |       6555 |       6539 |       0 |   16 |  2767 |      0 |      0 |           10 |
|     alu_loop[1].u_alu   | scariv_alu__parameterized0 |       6483 |       6467 |       0 |   16 |  2741 |      0 |      0 |           10 |
|     u_bru               |                 scariv_bru |       2277 |       2277 |       0 |    0 |  1134 |      0 |      0 |            0 |
|     u_csu               |                 scariv_csu |       2024 |       2024 |       0 |    0 |  2896 |      0 |      0 |            0 |
|     u_frontend          |            scariv_frontend |      12539 |      12091 |     448 |    0 | 11433 |      4 |     12 |            0 |
|     u_int_phy_registers |       scariv_phy_registers |       3010 |       2570 |     440 |    0 |   614 |      0 |     40 |            0 |
|     u_lsu_top           |             scariv_lsu_top |      21584 |      21196 |     388 |    0 |  8174 |      8 |      0 |            0 |
|     u_ptw               |                 scariv_ptw |        188 |        188 |       0 |    0 |    50 |      0 |      0 |            0 |
|     u_rename            |              scariv_rename |       3622 |       3622 |       0 |    0 |  2329 |      0 |      0 |            0 |
|     u_resource_alloc    |      scariv_resource_alloc |        118 |        118 |       0 |    0 |    50 |      0 |      0 |            0 |
|     u_rob               |                 scariv_rob |       3333 |       3333 |       0 |    0 |  4905 |      0 |      0 |            0 |
|     u_snoop_top         |           scariv_snoop_top |        119 |        119 |       0 |    0 |   408 |      0 |      0 |            0 |
+-------------------------+----------------------------+------------+------------+---------+------+-------+--------+--------+--------------+

いいね、u_robが3割近くLUTが削減された。