关于Verilog的作业
这是我在计算机科学系的第一年,我正在学习逻辑设计课程,并在Verilog工作 出现此问题,我如何解决它: 任务说明: 实现布尔函数关于Verilog的作业,verilog,Verilog,这是我在计算机科学系的第一年,我正在学习逻辑设计课程,并在Verilog工作 出现此问题,我如何解决它: 任务说明: 实现布尔函数 y=a⊕ B⊕ c 哪里⊕ 表示异或操作 我写下: module experiment1(A,B,C,F); input A,B,C; output F; reg F; always@(A or B or C) F<= A^B^C; endmodule 您需要将C连接到DUT,然后使用已知值驱动它: module tb_experiment1;
y=a⊕ B⊕ c
哪里⊕ 表示异或操作 我写下:
module experiment1(A,B,C,F);
input A,B,C;
output F;
reg F;
always@(A or B or C)
F<= A^B^C;
endmodule
您需要将C连接到DUT,然后使用已知值驱动它:
module tb_experiment1;
// Inputs
reg A;
reg B;
reg C;
// Outputs
wire F;
// Instantiate the Unit Under Test (UUT)
experiment1 uut (
.A(A),
.B(B),
.C(C),
.F(F)
);
initial begin
// Initialize Inputs
A = 1;
B = 0;
C = 1;
// Wait 100 ns for global reset to finish
#100;
// Add stimulus here
end
endmodule
Verilog提示:使用自动灵敏度列表<代码>始终@*。对于组合码,使用分块赋值
F=A^B^C代码>@Morgan实际上这不起作用,但我写了这个,它起作用了:开始F
module tb_experiment1;
// Inputs
reg A;
reg B;
reg C;
// Outputs
wire F;
// Instantiate the Unit Under Test (UUT)
experiment1 uut (
.A(A),
.B(B),
.C(C),
.F(F)
);
initial begin
// Initialize Inputs
A = 1;
B = 0;
C = 1;
// Wait 100 ns for global reset to finish
#100;
// Add stimulus here
end
endmodule