看板 Programming 關於我們 聯絡資訊
我看你4bit adder寫得差不多了 基本概念也就這樣 這裡還是大概講一下題目的硬體要怎麼組合出來 首先當然就是確定in,output input有a0~3, b0~3, Ci; output有s0~3跟Co 先宣告IO module decAdder(input a3, a2, a1, a0, b3, b2, b1, b0, Ci, output s3, s2, s1, s0, Co); 接下來輸入直接連接至4bit adder input fulladder4bit U0(.A( {a3,a2,a1,a0} ), .B( {b3,b2,b1,b0} ), .Cin(Ci), 這裡{}目的在把a3~a0,b3~b0組成4bit以符合4bit adder的輸入 接下來輸出由於是內部的接線 所以要先宣告 (實際在寫時必須宣告在前面) wire z3, z2, z1, z0, K; 剛剛的fulladder4bit輸出端則繼續寫完,這裡我們也連接完一個4bit adder .Z( {z3,z2,z1,z0} ), .Cout(K)); 而另外一個4bit adder一樣按圖連接 輸出直接連到output(s3~s0) fulladder4bit U1(.A( {z3,z2,z1,z0} ), .B( {1'b0,Co,Co,1'b0} ), .Cin(1'b0), .Z( {s3,s2,s1,s0} ), .Cout()); 這樣兩個4bit adder就搞定了 只剩下2個and閘跟1個三輸入xor閘 先宣告兩個and閘的輸出再接線 wire o1, o2; and U2(o1, z3, z2); and U3(o2, z3, z1); 這種是邏輯閘層次的寫法 最後的三輸入xor輸出端Co用另外一種寫法 assign Co = K^o1^o2; endmodule 差不多就是這樣了......verilog基本上就是在組合硬體元件 在寫之前一定要有一張硬體藍圖在腦中 規劃硬體從大至小 寫則是從小到大 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 180.176.83.78 ※ 文章網址: https://www.ptt.cc/bbs/Programming/M.1472129868.A.19B.html
Lenient: Wow超感謝大大我剛一看到就開始寫了,你 118.233.28.244 08/26 00:34
Lenient: 給的想法思路都很清晰,讓我這個初學者也 118.233.28.244 08/26 00:34
Lenient: 可以一目了然。現在也確認ok了,接下來 118.233.28.244 08/26 00:34
Lenient: 我在打tesrbench 真的很謝謝大大 有空請 118.233.28.244 08/26 00:34
Lenient: 大大吃個飯 不知大大是哪裡人 118.233.28.244 08/26 00:34
JFLung9536: 這些都算簡單 入門 同步 非同步 DS 42.72.16.249 08/26 12:33
JFLung9536: P. DDR. 學會才是關鍵 42.72.16.249 08/26 12:33
JFLung9536: 原po講的最後一段是皆層的觀念 線路 42.72.16.249 08/26 12:36
JFLung9536: 不在是原本你所學的 左進右出 而是一 42.72.16.249 08/26 12:36
JFLung9536: 層控制一層 RTL的觀念 先學會自己想 42.72.16.249 08/26 12:36
JFLung9536: 一顆CPU 吧 42.72.16.249 08/26 12:36
JFLung9536: 當你能寫出一顆 處理器 你就算學會而 42.72.16.249 08/26 12:38
JFLung9536: 已 還沒到精深 看你的造化了 42.72.16.249 08/26 12:38
Lenient: 謝謝j大的提點,我會先把基礎功學好在求 118.233.28.244 08/26 23:47
Lenient: 精,也感謝各位大大的教導 118.233.28.244 08/26 23:47
tw88: 推125.231.218.194 08/30 13:43