[問題] verilog與法問題

看板Electronics作者 (nopicnic)時間14年前 (2010/03/18 14:38), 編輯推噓1(102)
留言3則, 3人參與, 最新討論串1/1
各位先進好,我是剛學VERILOG的初學者。 在做4bit加法器時有一點硬體的觀念不懂。 先附上我的code `timescale 1ns /10ps `include "one_bit_fulladder.v" module four_bit_ripplecarryadder (sum, cout, A, B); output [3:0] sum; output cout; input [3:0] A, B; wire cout0, cout1, cout2; one_bit_fulladder f0(sum[0],cout0,A[0],B[0],0); one_bit_fulladder f1(sum[1],cout1,A[1],B[1],cout0); one_bit_fulladder f2(sum[2],cout2,A[2],B[2],cout1); one_bit_fulladder f3(sum[3],Cout,A[3],B[3],cout2); endmodule ==========================下面是testbench檔======================= `timescale 1ns / 10ps `include "four_bit_adder.v" module four_bit_adder_tb; reg A,B; wire S ,C four_bit_ripplecarryadder f0 (S,C,A,B) initial begin ////////////////問題如下/////////////////////// A=3 B=2 #10 A=4 B=1 ///////////////////我的問題在這邊////////////// initial begin $monitor($time,"A=%d,B=%d,c4=%d,S=%d",S,C,A,B); end initial begin $dumpfile("fullader_4bit_test.vcd"); %dumpvars; #500 $finish; end endmodule 我的問題是在設定A跟B的值的時候,當我打A=3 B=2時 電腦是將3跟2直接轉成0011 跟0010然候放在A向量跟B向量內 情況一:A[3]=0 A[2]=0 A[1]=1 A[0]=1 B[3]=0 B[2]=0 B[1]=1 B[0]=0 還是說電腦會直接將視為 情況二: A[3]=0 A[2]=0 A[1]=0 A[0]=3 B[3]=0 B[2]=0 B[1]=0 B[0]=2 對加法器而言這樣的A跟B就如同A=0001 B=0001 也就是A跟B都只有1 不好意思耽誤大家時間,只是這個基本的問題卡住,害我一整天腦袋都在想 也沒有實驗室的電腦可以讓我進去測試看看,所以麻煩板上的高手大大替我解答 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.39.179.20 ※ 編輯: nopicnic 來自: 114.39.179.20 (03/18 14:38) ※ 編輯: nopicnic 來自: 114.39.179.20 (03/18 14:40)

03/18 16:10, , 1F
當然是第一種 A[0]只有一個位元不是0就是1怎麼表示2或3
03/18 16:10, 1F

03/22 01:53, , 2F
大哥...數位只有0和1..
03/22 01:53, 2F

03/22 16:52, , 3F
謝謝你們~~~@@我搞懂了XD
03/22 16:52, 3F
文章代碼(AID): #1BeSfmV0 (Electronics)