作者spurslover (肥宅最後希望)
看板Electronics
標題Re: [問題] 邏輯合成後的電路無延遲
時間Tue Jul 6 03:03:18 2021
謝謝各位的回覆
後來我自己回去檢查時才發現在指令端跟tb裡面重複宣告了
才導致沒有把sdf時間資訊吃進去
後來重新跑過發現邏輯合成後的電路有錯QQ
想請教各位如果RTL層級正確合成完後的電路有錯該從什麼地方下手
因為我開syn波型檔我知道有錯
但是要debug也不可能從合成完的code除錯因為都是邏輯閘
變成說還是只能看RTL code但是跑tb 他又是對的
有沒有大大可以提供一些想法給小弟參考
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.200.185.32 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Electronics/M.1625511800.A.760.html
1F:推 mark850121: 邏輯合成後的電話 感覺好潮07/06 07:17
2F:推 ayn775437403: 合成後電路有錯是functionality問題嗎?通常是timin07/06 07:48
3F:→ ayn775437403: g或是constraint沒下好,timing給鬆一點現在試試看07/06 07:48
4F:→ ayn775437403: ?07/06 07:48
目前碰到的問題是合成後tb檔跑起來有錯沒辦法100%正確
5F:推 ayn775437403: 你在合的時候design compiler有報error或者warning07/06 07:50
在合成的時候沒有warning
6F:→ ayn775437403: 嗎?timing合成後有violation嗎?07/06 07:50
合成之後跑tb一直跳timing violation
7F:推 mmonkeyboyy: 要看是什麼錯 是對不起來還是什麼?07/06 09:02
※ 編輯: spurslover (1.200.185.32 臺灣), 07/06/2021 10:12:47
8F:→ hsucheng: 那就是你的coding style不對 合出錯的電路07/06 10:23
所以可能是我的RTL 層級coding style不對導致合成出來錯誤的電路嗎?
※ 編輯: spurslover (1.200.185.32 臺灣), 07/06/2021 10:32:08
9F:推 Max112358: 降頻07/06 13:33
10F:推 tkhan: no timing gating 錯?07/06 13:51
11F:→ tkhan: sim07/06 13:52
合成頻率已經從原本10ns 改成100ns
目前正在用spyglass檢查RTLcode
因為現在跑出來有值都是還是有錯
※ 編輯: spurslover (1.200.185.32 臺灣), 07/06/2021 15:06:32
12F:推 tkhan: 設no specify跑gate sim,不然比lec 07/06 15:11
目前沒有引入sdf時間資訊
單純跑gate sim而已
看來是在合成時產生錯誤
※ 編輯: spurslover (1.200.185.32 臺灣), 07/06/2021 15:52:07
有人知道這行報錯的意思嗎?
看了很久還是不明白為什麼這行顯示錯誤
(用spyglass看的)
https://i.imgur.com/5Vp70IX.jpg
https://i.imgur.com/1fw8RyW.jpg
※ 編輯: spurslover (1.200.185.32 臺灣), 07/06/2021 16:14:24
13F:→ smartcow86: 你timing violation 跳的是setup 還hold?07/06 18:10
14F:→ spurslover: hold time 07/06 18:19
15F:→ spurslover: 但目前碰到的狀況應該是合成後有錯因為已經把時間資訊 07/06 18:20
16F:→ spurslover: 拿掉了 07/06 18:20
17F:→ g1990822: 你要不要單獨把你那個_dff.v檔合成看看啊07/06 18:30
18F:→ g1990822: 不然就是把_dff.v裡面的code丟上來大家看看07/06 18:31
https://i.imgur.com/wC6vjzC.jpg
看起來是沒啥大問題
※ 編輯: spurslover (1.200.185.32 臺灣), 07/06/2021 18:42:32
19F:推 z9886607: 你的_dff.v的input數量和dff8的_dff不一致 07/06 19:42
20F:噓 PolarBearCat: 你把sdf拿掉怎麼可能沒錯 07/06 21:00
21F:推 arron860306: Instance 的時候port by name 比較不會出錯 07/07 01:51
22F:噓 arron860306: 上一篇問你有沒有annotate sdf 你說有 07/07 01:53
23F:→ arron860306: 然後現在又說沒有 07/07 01:53
24F:推 mmonkeyboyy: 。。....為什麼總覺得你好像得重新學流程的感覺? 07/07 04:55
25F:→ mmonkeyboyy: 有 violation 是錯那樣 邏輯錯 合成錯? 還是對不 07/07 04:57
26F:→ mmonkeyboyy: 起來 你都沒回應這些問題啊 .... 然後一下說有一下 07/07 04:57
27F:→ mmonkeyboyy: 說沒有BA SDF 07/07 04:58
28F:推 tkhan: 跟同事好像,整天在瞎問問題 07/07 12:27
29F:推 mmonkeyboyy: 就有錯都別人錯 軟體錯 一定不是自己錯? 07/07 13:06
30F:→ mmonkeyboyy: 如果是hold time很多 代表你就沒有delay啊= =" 07/07 13:08
31F:推 HenryLin123: hold time 就塞一堆buffer inverter 07/08 02:37
32F:→ TripleC: 如果timing都拿掉了還是有錯就直接比波形吧 GLS vs RTL 07/09 23:17