[問題] verilog 關於 clock sync 的問題

看板Electronics作者 (小麻雀)時間12年前 (2011/09/14 22:07), 編輯推噓0(005)
留言5則, 1人參與, 最新討論串1/2 (看更多)
我的 design 裡外部輸入 ACLK 為 25ns 經過 PLL 輸出為 1ns (40x) 給 CPU 用 另外想要把 1ns 除以5倍頻(5ns)給另一個 module 用 5倍頻的程式在網路上找的 如下 http://www.cnblogs.com/yuxi/archive/2007/10/17/927772.html 今天有跑一下 simulation 但結果不是我想要的 因為我希望 ACLK, CPUCLK and MCLK 的 rising edge 是鎖在一起的 請問這個程式我要怎麼改 才會是我想要的 謝謝 有這種寫法嗎? always @(posedge ACLK or posedge CPUCLK or negedge rst) begin ...... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.251.231.69

09/16 19:35, , 1F
簡單來說,你是想要一個能夠除基數的除頻器,且沒有phase 差
09/16 19:35, 1F

09/16 19:36, , 2F
如果你除5的頻率不需要DUTY CYCLE 50/50 的話,是可以做到
09/16 19:36, 2F

09/16 19:38, , 3F
你所選用的div因為是50/50,所以當然rising edg會有phase差
09/16 19:38, 3F

09/16 19:40, , 4F
試著用COUNTER 產生60/40的週期,就能達到你的要求
09/16 19:40, 4F

09/16 19:44, , 5F
另外,你有看哪個DFF 是有兩個clock source嗎?
09/16 19:44, 5F
文章代碼(AID): #1ESBKCqt (Electronics)
文章代碼(AID): #1ESBKCqt (Electronics)