---
# System prepended metadata

title: '[SoC Lab] Synthesis Error - hold time violation'
tags: [系統晶片設計實驗]

---

# [SoC Lab] Synthesis Error - hold time violation


## 問題描述
在實作Lab6時，在進行合成的階段的時候遇到negative hold slack的問題，原先的合成方式是使用Vivado預設的合成參數。

## 解決方法
進入vivado，調整合成時使用的strategy，透過觀察不同的strategy的合成結果可以發現此參數確實可以影響vivado的合成結果。

在實作lab時，使用了以下幾個strategy的組合來進行實作：

1. default
2. erformane net delay high
3. performance explore

此外，加上option也可以改變合成結果，以下為本次使用的option。

1. insert negative ffs
2. hold fix
3. aggressive hold fix

若遭遇類似hold time violation的合成錯誤，可以嘗試使用這些技巧，改變vivado合成的方式，達到在不更改設計的情況下解決問題的效果。

![image](https://hackmd.io/_uploads/HJvux4lOa.png)
Github的討論區也有同學提到用這個方式解決問題。


