付費限定

[Verilog] 實作 edge detector

更新 發佈閱讀 4 分鐘

作為designer一定經常看到spec中描述當edge出現時需要trigger電路運作,

舉個實際的例子 2 phase的handshake protocal,

以下方paper中的圖例來看.

Quasi Delay-Insensitive High Speed Two-Phase Protocol Asynchronous Wrapper for Network on Chips - Scientific Figure on ResearchGate. Available from: https://www.researchgate.net/figure/Four-phase-and-two-phase-transmission-protocols-a-Four-phase-handshake-protocol-b_fig2_220586142 [accessed 23 Apr 2025]
raw-image


1.當req每翻轉一次代表data準備好了

2.ack跟著每翻轉一次代表data被收走了

非常簡單的一種協議,

但是要做到這種判斷siginal level甚麼時候翻轉,

就需要靠edge detector又稱為邊緣偵測,

如何做出一個完美的edge detector才是這題的難處.


detector在spec中大致上有3種可能的需求

(1) detect posedge

(2) detect negdege

(3) detect double edge


大家可以思考一下自己會如何設計電路來抓取有效的edge

把這個edge轉成一個enable的訊號告訴reg該把data收進來了


這邊開始描述一下(1)的作法,

在rx端會去不斷的input tx端的Req訊號看有沒有動作,

記錄在reg中,此時Reg的input/output如下圖,

並且希望可以在發現req從0->1時產生一個enable的訊號餵給其他reg使用

raw-image


我們仔細看一下細節發現

哎呀 豈不是把Req_o做個inverse拿去&原本的Req input

就可以做出enable的訊號形狀了嗎

這題答的perfect

raw-image


然後我們再來畫個電路讓老闆滿意的點點頭

raw-image


ok 做到這邊還以為答完了

回頭看一下題目,

哇負緣也要,但是負緣已經被我用and 0幹掉了

只好繼續看看波形怎麼抓出負緣來


(2) negedge detector

raw-image

認真看了一下,靈感湧現

不是和前一個一樣嗎把Req做inverse拿去&Req_o就好啦

raw-image

簡單簡單在補個電路圖

raw-image


到這邊就只要把上述兩個組合起來就可以得到最終的答案

(3) double edge的detector

raw-image


不過捏身為高手的你很快就發現了好像可以優化

以行動支持創作者!付費即可解鎖
本篇內容共 1352 字、0 則留言,僅發佈於IC面試專班你目前無法檢視以下內容,可能因為尚未登入,或沒有該房間的查看權限。
留言
avatar-img
數位IC設計第一品牌
165會員
30內容數
數位IC設計第一品牌 從0到1用嘴做IC 觀念大權
2024/10/28
前面探討完setup time / hold time violation的原因跟解法, 來更進一步探討一下現實面, 實際ic design中, 我們有可能會碰到一個狀況, synthesis過後path出現了setup time violation 或 hold time violatio
Thumbnail
2024/10/28
前面探討完setup time / hold time violation的原因跟解法, 來更進一步探討一下現實面, 實際ic design中, 我們有可能會碰到一個狀況, synthesis過後path出現了setup time violation 或 hold time violatio
Thumbnail
2024/10/02
上一篇內容提到說, hold time violation的成因是因為訊號源在clk trigger edge後太快就開始要變化成新的value, 導致reg在還沒完全把data取樣下來時他的input端口就開始震動, 可能會導致reg在抓data時出現問題,雖然預期要鎖到1但是最後卻因為in
Thumbnail
2024/10/02
上一篇內容提到說, hold time violation的成因是因為訊號源在clk trigger edge後太快就開始要變化成新的value, 導致reg在還沒完全把data取樣下來時他的input端口就開始震動, 可能會導致reg在抓data時出現問題,雖然預期要鎖到1但是最後卻因為in
Thumbnail
2024/10/01
上一篇內容提到說register取樣時需要刻意地維持訊號源的stable, 才不會讓register取樣時出現問題, 那如果我真的發生了上述的violation要怎麼處理呢? setup time violation和hold time violation的解法一致? 在這邊詳細的說明一
Thumbnail
2024/10/01
上一篇內容提到說register取樣時需要刻意地維持訊號源的stable, 才不會讓register取樣時出現問題, 那如果我真的發生了上述的violation要怎麼處理呢? setup time violation和hold time violation的解法一致? 在這邊詳細的說明一
Thumbnail
看更多
你可能也想看
Thumbnail
在 vocus 與你一起探索內容、發掘靈感的路上,我們又將啟動新的冒險——vocus App 正式推出! 現在起,你可以在 iOS App Store 下載全新上架的 vocus App。 無論是在通勤路上、日常空檔,或一天結束後的放鬆時刻,都能自在沈浸在內容宇宙中。
Thumbnail
在 vocus 與你一起探索內容、發掘靈感的路上,我們又將啟動新的冒險——vocus App 正式推出! 現在起,你可以在 iOS App Store 下載全新上架的 vocus App。 無論是在通勤路上、日常空檔,或一天結束後的放鬆時刻,都能自在沈浸在內容宇宙中。
Thumbnail
vocus 慶祝推出 App,舉辦 2026 全站慶。推出精選內容與數位商品折扣,訂單免費與紅包抽獎、新註冊會員專屬活動、Boba Boost 贊助抽紅包,以及全站徵文,並邀請你一起來回顧過去的一年, vocus 與創作者共同留下了哪些精彩創作。
Thumbnail
vocus 慶祝推出 App,舉辦 2026 全站慶。推出精選內容與數位商品折扣,訂單免費與紅包抽獎、新註冊會員專屬活動、Boba Boost 贊助抽紅包,以及全站徵文,並邀請你一起來回顧過去的一年, vocus 與創作者共同留下了哪些精彩創作。
Thumbnail
※ 原本狀態:伺服器渲染 這是 MVC 架構下的 request / response 示意圖,在這張圖呈現的架構裡,畫面和資料都由同一個架構處理。 伺服器渲染流程: 瀏覽器針對特定網址送出請求。 路由器解析請求後,轉接給對應的 controller。 controller 按照要求,透過
Thumbnail
※ 原本狀態:伺服器渲染 這是 MVC 架構下的 request / response 示意圖,在這張圖呈現的架構裡,畫面和資料都由同一個架構處理。 伺服器渲染流程: 瀏覽器針對特定網址送出請求。 路由器解析請求後,轉接給對應的 controller。 controller 按照要求,透過
Thumbnail
這篇文章介紹了路由器 (Router) 在網絡硬體中的功能與運作概念,包括路由器的工作原理、運作流程和與其他硬體設備的區別。文章也提及了路由器運作的基本概念,例如路由表的建立方式和路由協定的基礎知識。
Thumbnail
這篇文章介紹了路由器 (Router) 在網絡硬體中的功能與運作概念,包括路由器的工作原理、運作流程和與其他硬體設備的區別。文章也提及了路由器運作的基本概念,例如路由表的建立方式和路由協定的基礎知識。
Thumbnail
在網路速度有限的情況下,依序記錄不斷產生的資訊,能統計使用者在頁面上操作了哪些功能。
Thumbnail
在網路速度有限的情況下,依序記錄不斷產生的資訊,能統計使用者在頁面上操作了哪些功能。
Thumbnail
自訂元件生成位置顧名思義就是可以指定部分HTML區塊渲染在特定的畫面上,即使在不同組件也能把A組件內的部分畫面,展現在B組件上,以下方程式舉例。
Thumbnail
自訂元件生成位置顧名思義就是可以指定部分HTML區塊渲染在特定的畫面上,即使在不同組件也能把A組件內的部分畫面,展現在B組件上,以下方程式舉例。
Thumbnail
觀察者模式透過主題訂閱/訊息通知的機制,極度增強系統的可擴展性、靈活性以及降低組件間的耦合度。概念直觀簡單,是非常實用的設計模式。
Thumbnail
觀察者模式透過主題訂閱/訊息通知的機制,極度增強系統的可擴展性、靈活性以及降低組件間的耦合度。概念直觀簡單,是非常實用的設計模式。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News