ログからもう少し詳細に何が増減しているか確認した。
2017.1ではLUT as Logicが14増加し、LUT as Memoryで見てみると、Shift Registerが2017.1で12減少となっている。
その分、Slice Registerで7増加となっている。
LUTで構成したシフトレジスタが組込み回路で構成され、FFが消費されたものと考えられる。
これの影響かわからないが、Slackは0.35ns程度良くなっている。
+----------------------------+------+-------+-----------+-------+
| Site Type | Used | Fixed | Available | Util% |
+----------------------------+------+-------+-----------+-------+
| Slice LUTs | 3020 | 0 | 53200 | 5.68 |
| LUT as Logic | 2820 | 0 | 53200 | 5.30 |
| LUT as Memory | 200 | 0 | 17400 | 1.15 |
| LUT as Distributed RAM | 10 | 0 | | |
| LUT as Shift Register | 190 | 0 | | |
| Slice Registers | 3398 | 0 | 106400 | 3.19 |
| Register as Flip Flop | 3398 | 0 | 106400 | 3.19 |
| Register as Latch | 0 | 0 | 106400 | 0.00 |
| F7 Muxes | 2 | 0 | 26600 | <0.01 |
| F8 Muxes | 0 | 0 | 13300 | 0.00 |
+----------------------------+------+-------+-----------+-------+
+----------------------------+------+-------+-----------+-------+
| Site Type | Used | Fixed | Available | Util% |
+----------------------------+------+-------+-----------+-------+
| Slice LUTs | 3022 | 0 | 53200 | 5.68 |
| LUT as Logic | 2834 | 0 | 53200 | 5.33 |
| LUT as Memory | 188 | 0 | 17400 | 1.08 |
| LUT as Distributed RAM | 10 | 0 | | |
| LUT as Shift Register | 178 | 0 | | |
| Slice Registers | 3405 | 0 | 106400 | 3.20 |
| Register as Flip Flop | 3405 | 0 | 106400 | 3.20 |
| Register as Latch | 0 | 0 | 106400 | 0.00 |
| F7 Muxes | 1 | 0 | 26600 | <0.01 |
| F8 Muxes | 0 | 0 | 13300 | 0.00 |
+----------------------------+------+-------+-----------+-------+
Impremeted Designを見ると、Vivado 2016.4では少し広がりを見せていたところがVivado 2017.1ではまとまるようになっている雰囲気が見受けられる。
配置配線の効率は向上しているものと見受けられる。
Xilinxのデバイスは横方向には遅延が少なく、縦方向に遅延が大きい。
従って、タイミング収束のために横方向に伸びがちなのだが、Vivado 2017.1では論理合成の精度も上がって、横方向に伸びなくなったのだろう。
Vivadoはバージョン間でのプロジェクト移行で問題が出るケースが多くあるが、最新版のVivadoで合成を実行するほうが良い結果を得られることがわかる。
Vivado 2016.2→2016.3以上間のプロジェクト移行には最大限の注意が必要だが、Vivado 2016.3以降のプロジェクトであれば、2017.1に移行しない理由は現時点では見当たらない。