Electronics 板


LINE

各位板友好 想問一個基本的問題 一般verilog 常見的寫法可能是這樣 //sequentail part always@(posedge clock) begin if (rst) begin //synchronous reset state <= state_1; ... end else begin state <= next_state; ... end end //combinational part always@(*) begin case(state) state_1: begin if (a==1) begin next_state = state_2; end end … endcase end 但如果如果想用一個訊號的 edge 來進到下個 state (asynchronous) 不知道怎麼作比較好 以下寫法我知道不太合理 //sequentail part always@(posedge clock) begin if (rst) begin state <= state_1; ... end else begin state <= next_state; ... end end //combinational part always@(*) begin case(state) state_1: begin if (posedge a) begin next_state = state_2; end end … endcase end 請問各位前輩,正確的可以實現上面這個功能寫法應該怎麼作? 謝謝! --



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.112.77.56
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Electronics/M.1451751928.A.BE0.html
1F:推 kyo547896321: 照你這寫法,還是得等clk才能換state吧? 01/03 01:51
這個寫法連 ncVerilog 都不過 (更不用說合成了)
2F:→ kyo547896321: 如果是要和這block本身的clk不同步的話,那把你的a 01/03 01:53
3F:→ kyo547896321: 當作另一個DFF的clk來寫,a的edge一來就能換state 01/03 01:54
確實覺得可能需要灌進去 clock,但 Verilog 有辦法合成出這樣的電路嗎?
4F:→ kyo547896321: 不知道有沒有誤會你想問的問題就是了 01/03 01:54
5F:推 kyo547896321: 畢竟你的code和你描述的作法不是同一件事情 01/03 02:02
6F:→ kyo547896321: 1.用posedge a改next_state 2.用posedge a改state 01/03 02:07
7F:→ kyo547896321: 你的code是1但你的描述看起來像2 01/03 02:09
1的功能應該是 synchronous (在state_1時,如果a==1,posedge clock時會到state_2)
8F:→ kyo547896321: 要不要先說一下你的"進到下一個state" 01/03 03:56
9F:→ kyo547896321: 是改變state還是next_state 01/03 03:57
10F:→ kyo547896321: 如果是改state,那將a當作另一個DFF的clk是可行的 01/03 04:02
11F:→ kyo547896321: 畢竟不同block本來就可能用到不同的clk 01/03 04:03
12F:→ kyo547896321: 只是你得考慮multiple clk domain面臨的麻煩就是 01/03 04:04
當然是改變 state,只是先在 conbinational part 輸出到DFF的D,在sequentail part posedge clock 時存進去(D → Q)
13F:→ Baneling: 建議你先有能力把基本能合成的code直接變成電路的能力 01/03 14:30
14F:→ Baneling: 再來想這些... 不過通常你弄懂電路的概念之後, 大概就知 01/03 14:31
15F:→ Baneling: 到你現在亂寫code的"點"在哪了 01/03 14:31
我想把 Verilog code 畫成電路這我作的到 想了一段時間,不知道 sequentail part 這樣寫是不是一個方法? //sequentail part always@(posedge clock or posedge a) begin if (rst) begin //synchronous reset state <= state_1; ... end else if (a && state==state_1) begin state <= state_2; end else begin state <= next_state; ... end end ※ 編輯: FTICR (219.70.169.149), 01/03/2016 16:07:20
16F:推 ptta: 就是把一個 之 comb signal當成 clock,可以合成,十年前就看 01/03 17:11
17F:→ ptta: 過了 01/03 17:11
18F:推 Leadgen: Comb signal當clock,不怕有glitch嗎? 01/04 00:04
19F:推 obov: 理論上可以 實務上非常不建議 01/04 02:32
20F:推 Battie: a要glitch free,然後再delay,造出個pulse,才能sample自己 02/15 00:52
21F:→ Battie: state要gray code過,而且會常常sample到不是當下的state 02/15 00:55
22F:→ Battie: 不如全部改成同步設計 02/15 00:55







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Gossiping站內搜尋

TOP