[問題] verilog與法問題
各位先進好,我是剛學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
03/18 16:10, 1F
推
03/22 01:53, , 2F
03/22 01:53, 2F
→
03/22 16:52, , 3F
03/22 16:52, 3F