看板 Electronics 關於我們 聯絡資訊
各位前輩大家早安 我是verilog的初學者 最近有遇到一個問題(簡單的移位暫存器)比較不能理解 想請教各位 程式碼與自己所模擬出來的圖型在以下網址 http://imgur.com/a/3EY4C 問題如下 (Rotate功能先關掉) 1.因為我Rotate與Register這兩個模組都是只採用上升緣動作 為何我電路每隔一個上升緣才會動作,因此會看到56有出來 57沒出來,58有出來,59沒出來…. 我覺得應該是56/57/58/59….應該都要會從output出來才是 因為明明clock的上升緣就是有敲到57,59,為什麼會這樣? 2.如果我將REGISTER8的module改成always @(posedge Clock,negedge Clock) 就可以符合我上升緣觸發的預期,但跟程式兜不起來… 自己的想法 會發生這種事是因為data從進到出要經過REGISTER8和Rotate_Data這兩個模組 所以需要用掉兩個CLOCK的原因嗎? 如果真的是因為這樣,那57/59的資料應 該也要從output出來才是 PS這三個模組組成起來的架構大概是DATA先經過MUX(沒有CLOCK) 再經過REGISTER(有CLOCK) 再經過ROTATE MODULE(有CLOCK)再從 OUT出來 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.251.199.110 ※ 文章網址: https://www.ptt.cc/bbs/Electronics/M.1481855678.A.D6D.html
zace15: sequential的部分要用nonblocking的寫法 12/16 10:39