看板 Electronics 關於我們 聯絡資訊
其實你這個問題非常好 這是最近很久沒看到的專業問題了 (當然還加上野狼大的回答) 我就補充一下吧 建議是不做Tri-state類的東西 有如下的理由(照順序來) 1. Synthesis 2. STA 3. DFT 4. Long wire 1. 主要是你在做的時後要設定一堆東西 2. Timing 你的所有線都要特別寫隔開 3. 要一組一組分開來做 4. 這接近無解 (如果你是直接一丟就走人那種) 能做的理由 一般都是為了省面積才做 省多少嘛.... 這有辦法算的 但根據經驗上來說要在某區間才能做 很久以前我在做某案子時是要10~30之間才有利 不然也沒搞頭 如果是IO就跟野狼大講的一樣 用叫的就好了 FPGA裡是可以這樣搞 但真實跑出來時它是用一堆MUX跟CB類的東西去做 也有類似STA的問題 另一種做法就是直接設一個類似clock gating/power gating的東西去關了 ※ 引述《q684351852 (都是好吃的)》之銘言: : 標題: [問題] Verilog inout 高阻抗 下線合成問題 : 時間: Fri Dec 21 15:19:20 2018 : : 大家好,小弟觀念不是很好,虛心求教: : : 請問verilog中宣告inout,當in的時候如果等於1'bz(高阻抗)請問這樣可以要下線合成嗎 : ?(fpga是可以,但下線做成ic我看cic的書說高阻抗Z的訊號會變成don’t care)還是說 : 需要怎麼修改呢?謝謝! : : 範例的程式碼如下: : module test( : inout wire IO : inupt ctrl : ); : : reg a; : : assign IO= ctrl?a:1'bz; : : endmodule : : 就是說我要讀的時候把inout設成高阻抗當input,我要output的時候接到我要output的地 : 方,請問這樣可以下線嗎? : 還是說inout要當input的時候,程式應該怎麼寫? : : -- : ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.200.201.170 : ※ 文章網址: https://www.ptt.cc/bbs/Electronics/M.1545376762.A.C91.html : ※ 編輯: q684351852 (1.200.201.170), 12/21/2018 17:52:31 : → wildwolf: tri-state buffer 在自動佈局繞線的時候很難處理, 12/21 19:49 : → wildwolf: 而且你就用兩個port一個輸入,一個輸出就好了,幹嘛合併 12/21 19:50 : → wildwolf: 如果這是I/O pad,那就選用有 Bidirectional I/O pad 12/21 19:51 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 69.124.126.13 ※ 文章網址: https://www.ptt.cc/bbs/Electronics/M.1545401534.A.6F5.html ※ 編輯: mmonkeyboyy (69.124.126.13), 12/21/2018 22:13:02
r901042004: 問一下monkey大,如果是要做SPI類那種bidirectional 12/22 11:19
r901042004: 的I/O Pad,在做合成的時候需要多做什麼設定嗎? 12/22 11:20
r901042004: 還是直接在RTL內直接接好I/O Pad 12/22 11:23
r901042004: 再直接丟下去合成就好 12/22 11:23
mmonkeyboyy: 如果你的tool有支援 就沒什麼問題 有的會dont care 12/22 12:27
mmonkeyboyy: 很怪 (但那是很多年前了) 如果是 FPGA上 可以加 12/22 12:27
mmonkeyboyy: dont touch 一般這個有問題的會是DFT 12/22 12:28
mmonkeyboyy: 如野狼大說的 IO就沒什麼了 選一下就好 12/22 12:29
r901042004: 合成用的是DC,那我了解了,謝謝monkey大 12/22 12:40
q684351852: 謝謝解說! 12/22 13:43
hsucheng: 我記得我在寫AXI BUS好像有用到類似的東西... 12/23 02:21
mmonkeyboyy: 樓上 所以那個做好就是放一邊dont touch 12/23 06:12
mmonkeyboyy: bus類一定會有的啊 12/23 06:13