付費限定

[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
留言分享你的想法!
avatar-img
數位IC設計第一品牌
122會員
28內容數
數位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
在小小的租屋房間裡,透過蝦皮購物平臺採購各種黏土、模型、美甲材料等創作素材,打造專屬黏土小宇宙的療癒過程。文中分享多個蝦皮挖寶地圖,並推薦蝦皮分潤計畫。
Thumbnail
在小小的租屋房間裡,透過蝦皮購物平臺採購各種黏土、模型、美甲材料等創作素材,打造專屬黏土小宇宙的療癒過程。文中分享多個蝦皮挖寶地圖,並推薦蝦皮分潤計畫。
Thumbnail
小蝸和小豬因購物習慣不同常起衝突,直到發現蝦皮分潤計畫,讓小豬的購物愛好產生價值,也讓小蝸開始欣賞另一半的興趣。想增加收入或改善伴侶間的購物觀念差異?讓蝦皮分潤計畫成為你們的神隊友吧!
Thumbnail
小蝸和小豬因購物習慣不同常起衝突,直到發現蝦皮分潤計畫,讓小豬的購物愛好產生價值,也讓小蝸開始欣賞另一半的興趣。想增加收入或改善伴侶間的購物觀念差異?讓蝦皮分潤計畫成為你們的神隊友吧!
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