题解 | #4位数值比较器电路#

4位数值比较器电路

http://www.nowcoder.com/practice/e02fde10f1914527b6b6871b97aef86d

`timescale 1ns/1ns

module comparator_4(input [3:0] A , input [3:0] B , output wire Y2, //A>B output wire Y1, //A = B output wire Y0); //A<B

reg Y1r,Y0r,Y2r; wire [2:0] r1,r2,r3,r4;

function [2:0] comp; input a; input b; begin comp[1] = a&b | ~a&~b; comp[0] = ~a & b; comp[2] = a & ~b; end endfunction

assign r4 = comp(A[3],B[3]); assign r3 = comp(A[2],B[2]); assign r2 = comp(A[1],B[1]); assign r1 = comp(A[0],B[0]);

always@(*)begin if (r4[2])begin Y2r = 1'b1; Y1r = 1'b0; Y0r = 1'b0;end else if (r4[0])begin Y2r = 1'b0; Y1r = 1'b0; Y0r = 1'b1;end else begin if (r3[2])begin Y2r = 1'b1; Y1r = 1'b0; Y0r = 1'b0;end else if (r3[0])begin Y2r = 1'b0; Y1r = 1'b0; Y0r = 1'b1;end else begin if (r2[2])begin Y2r = 1'b1; Y1r = 1'b0; Y0r = 1'b0;end else if (r2[0])begin Y2r = 1'b0; Y1r = 1'b0; Y0r = 1'b1;end else begin if (r1[2])begin Y2r = 1'b1; Y1r = 1'b0; Y0r = 1'b0;end else if (r1[0])begin Y2r = 1'b0; Y1r = 1'b0; Y0r = 1'b1;end else begin Y2r = 1'b0; Y1r = 1'b1; Y0r = 1'b0;end end end end
end

assign Y1=Y1r;
assign Y2=Y2r;
assign Y0=Y0r;


endmodule

全部评论

相关推荐

07-01 13:37
门头沟学院 Java
steelhead:不是你的问题,这是社会的问题。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务