Electronics 板


LINE

本人有個verilog如以下設計 always@(posedge appclk or posedge reset) if(reset) state <= 2'b00; else if(!enable) state <= 2'b00; else case(state[1:0]) 2'b00: if(condition1) state <= 2'b10; 2'b10: if(condition2) state <= 2'b11; 2'b11: if(condition3) state <= 2'b10; endcase 其中enable來自另一clk domain always@(posedge cpuclk or posedge cpurst) if(cpurst) enable <= 0; else if(condition4) enable <= cpuwrdata[1]; 簡而言之 由cpu填寫enable=1的時候 state才能跳動到其它數值 請問這個enable需不需要先synchronize到appclk再給state使用? (假設兩clk domain完全獨立) 與同事討論 一派說法是要: post-sim的時候觀察到 若enable active的時間太接近appclk rising edge 的確會發生timing violation 導致state跳到非00的值或是unknown 另一派說法是不用: 以我們的應用:enable剛啟動時 condition1,2,3都是inactive 因此appclk rising瞬間不論抓到enable是0還是1 依RTL要繼續由condition1,2,3來判斷state下一步 即然condition1,2,3都不動作 state自然該保持在00 下一Tenable穩定了 自然state也不會跳錯了 本人經驗尚淺 版友可否指正兩派說法的弱點之處? --



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 122.146.122.70
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Electronics/M.1508493878.A.438.html
1F:→ Leadgen: 敲2下,不會花你很多時間。而且不會出現奇怪的問題。 10/20 19:19
2F:推 mmonkeyboyy: 一樓到也不是 這個東西是sync設計當出現的問題之一 10/20 20:37
3F:→ mmonkeyboyy: 這個cross clock domain design (應該是這個名字) 10/20 20:38
4F:推 mmonkeyboyy: 或是clock domain crossing 應該google 有很多 10/20 20:40
5F:推 bakerly: 不敲兩級s會有metastable問題,但有metastable問題不代表 10/20 21:52
6F:→ bakerly: 一定會死,enable從0變1時保證condiction都是0的確是一 10/20 21:52
7F:→ bakerly: 種解法,但要注意的是enable從1變0 一樣有metastable問題 10/20 21:52
8F:→ bakerly: ,這時state有可能會有短暫暫態,這個暫態會不會讓你的電 10/20 21:52
9F:→ bakerly: 路掛掉你就要自已確認了。 10/20 21:52
10F:推 ericute: 請問原po與b大,如果enable第一T抓到unknown,state不就 10/21 09:19
11F:→ ericute: 會錯了嗎?為什麼還能確認是在00這個state呢,謝謝 10/21 09:19
12F:→ ericute: 我想法是跟condition有無成立應該沒關係,可能還是有機 10/21 09:22
13F:→ ericute: 會fail 10/21 09:22
14F:推 bakerly: 如果enable 0的夠久,state 已經歸0,在enable變1時condu 10/21 10:46
15F:→ bakerly: ction 也全為0的條件下, 這電路state的din在enable rise 10/21 10:46
16F:→ bakerly: 的前後會一直維持在0,這時跟本不會有setup hold 的問題 10/21 10:46
17F:→ bakerly: ,會出現unknow一定是前題沒被滿足。 10/21 10:46
18F:推 ericute: 謝謝b大,了解沒注意到enable一開始會很長一段0。題外, 10/21 11:47
19F:→ ericute: 若enable在一段0後,接著不是long pusle的話,是否就不 10/21 11:47
20F:→ ericute: 適用原po說的第二種情形呢,還是得syn過,感謝 10/21 11:47
21F:推 bakerly: 這電路state歸0只有靠enable為0來達成,但enable和state 10/21 14:20
22F:→ bakerly: 非同步,所以enable falling時的確有可能造成state unkno 10/21 14:20
23F:→ bakerly: w而向後擴散導致電路失敗,這和enable是不是long plus 沒 10/21 14:20
24F:→ bakerly: 關係,再長的puls還是可能會死。 10/21 14:20
25F:→ kuoll: 我是原po 謝謝b大詳細解釋 10/21 21:48
26F:推 mmonkeyboyy: 這如果沒有實驗純跑模擬應該有的會給過 10/22 10:03
27F:→ mmonkeyboyy: 但你真正實作下去會有點問題 這個現代tool會給warn 10/22 10:03
28F:→ mmonkeyboyy: ing 才是 10/22 10:03
29F:→ ahoyhoy: 完全不會toggle的有時候就直接拉 10/23 17:59
30F:→ ahoyhoy: 一般還是會砍個二級sync一下 10/23 17:59







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:iOS站內搜尋

TOP