比较器的Verilog代码
预览截图
应用介绍
此项目是比较器的Verilog代码。
在该项目中,在Verilog HDL中设计并实现了一个简单的2位比较器。 给出了真值表,K-Map和比较器的最小化方程。 比较器的Verilog代码由ModelSim仿真,并给出了仿真波形。
2位比较器的规格如下:
输入:2位A和B用于比较
输出:
A_greater_B:如果A> B,则为高,否则为低
A_equal_B:如果A = B,则为高,否则为低
A_less_B:如果A <B,则为高,否则为低
K-Map表和比较器的相应方程式(对应的表在预览区显示):
A_greater_B = B0 B1 A0 + B1 A1 + A1 A0 B0
= A0 B0 (B1 + A1) + + B1 A1
A_equal_B = (B1 A1+A1 B1) (B0 A0+A0 B0)
A_less_B = A0 A1 B0 + A1 B1 + B1 B0 A0
附件中包括:比较器的真值表、K-Map表和比较器的相应方程式表、比较器的Verilog代码。
本人在下方展示了比较器的Verilog代码;如想了解更多请下载附件。
// FPGA projects using Verilog/ VHDL
// fpga4student.com : FPGA projects, Verilog projects, VHDL projects
// Verilog code for 2-bit comparator
module comparator(input [1:0] A,B, output A_less_B, A_equal_B, A_greater_B);
wire tmp1,tmp2,tmp3,tmp4,tmp5, tmp6, tmp7, tmp8;
// A = B output
xnor u1(tmp1,A[1],B[1]);
xnor u2(tmp2,A[0],B[0]);
and u3(A_equal_B,tmp1,tmp2);
// A less than B output
assign tmp3 = (~A[0])& (~A[1])& B[0];
assign tmp4 = (~A[1])& B[1];
assign tmp5 = (~A[0])& B[1]& B[0];
assign A_less_B = tmp3 | tmp4 | tmp5;
// A greater than B output
assign tmp6 = (~B[0])& (~B[1])& A[0];
assign tmp7 = (~B[1])& A[1];
assign tmp8 = (~B[0])& A[1]& A[0];
assign A_greater_B = tmp6 | tmp7 | tmp8;
endmodule
`timescale 10 ps/ 10 ps
// FPGA projects using Verilog/ VHDL
// fpga4student.com
// Verilog testbench code for 2-bit comparator
module tb_comparator;
reg [1:0] A, B;
wire A_less_B, A_equal_B, A_greater_B;
integer i;
// device under test
comparator dut(A,B,A_less_B, A_equal_B, A_greater_B);
initial begin
for (i=0;i<4;i=i+1)
begin
A = i;
B = i + 1;
#20;
end
for (i=0;i<4;i=i+1)
begin
A = i;
B = i;
#20;
end
for (i=0;i<4;i=i+1)
begin
A = i+1;
B = i;
#20;
end
end
endmodule
©版权声明:本文内容由互联网用户自发贡献,版权归原创作者所有,本站不拥有所有权,也不承担相关法律责任。如果您发现本站中有涉嫌抄袭的内容,欢迎发送邮件至: www_apollocode_net@163.com 进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。
转载请注明出处: apollocode » 比较器的Verilog代码
文件列表(部分)
名称 | 大小 | 修改日期 |
---|---|---|
D触发器的Verilog代码——附件.txt | 0.73 KB | 2020-04-01 |
发表评论 取消回复