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

4位数值比较器电路

https://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
);
//assign Y2=((A[3]>B[3])?1:0)||(A[3]=B[3]?(A[2]>B[2]?1:0):0)||((A[3]=B[3])?((A[2]=B[2])?((A[1]>B[1])?1:0):0):0)||((A[3]=B[3])?((A[2]=B[2])?((A[1]=B[1])?(A[0]>B[0]:1):0):0):0)

//assign Y1=((A[3]=B[3])?((A[2]=B[2])?((A[1]=B[1])?(A[0]=B[0]:1):0):0):0)

//assign Y0=((A[3]<B[3])?1:0)||(A[3]=B[3]?(A[2]<B[2]?1:0):0)||((A[3]=B[3])?((A[2]=B[2])?((A[1]<B[1])?1:0):0):0)||((A[3]=B[3])?((A[2]=B[2])?((A[1]=B[1])?(A[0]<B[0]:1):0):0):0)

assign Y2=(A[3]&!B[3])|(!(A[3]^B[3])&(A[2]&!B[2]))|(!(A[3]^B[3])&!(A[2]^B[2])&(A[1]&!B[1]))|(!(A[3]^B[3])&!(A[2]^B[2])&!(A[1]^B[1])&(A[0]&!B[0]));
assign Y1=!(A[3]^B[3])&!(A[2]^B[2])&!(A[1]^B[1])&!(A[0]^B[0]);
assign Y0=(!A[3]&B[3])|(!(A[3]^B[3])&(!A[2]&B[2]))|(!(A[3]^B[3])&!(A[2]^B[2])&(!A[1]&B[1]))|(!(A[3]^B[3])&!(A[2]^B[2])&!(A[1]^B[1])&(!A[0]&B[0]));
endmodule

一开始是用那个标注的写,但是这样不是门电路;然后试了一下下面的居然成功了
刚学,还没分清什么是门电路什么是rtl,勿喷
全部评论

相关推荐

评论
点赞
收藏
分享
牛客网
牛客企业服务