# [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的討論區也有同學提到用這個方式解決問題。