作者nopicnic (nopicnic)
看板Electronics
标题[问题] verilog语法问题
时间Thu Mar 18 14:38:37 2010
各位先进好,我是刚学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)
1F:→ horsehead:当然是第一种 A[0]只有一个位元不是0就是1怎麽表示2或3 03/18 16:10
2F:推 sasako:大哥...数位只有0和1.. 03/22 01:53
3F:→ nopicnic:谢谢你们~~~@@我搞懂了XD 03/22 16:52