题解 | #多位信号xnor#
多位信号xnor
https://www.nowcoder.com/practice/aa21227e7bf6409e818b01ea21a44c2b
`timescale 1ns/1ns module top_module( input a, b, c, d, e, output [24:0] out ); wire [24:0] f; wire [24:0] g; //assign f={a,a,a,a,a,b,b,b,b,b,c,c,c,c,c,d,d,d,d,d,e,e,e,e,e}; //assign g={a,b,c,d,e,a,b,c,d,e,a,b,c,d,e,a,b,c,d,e,a,b,c,d,e}; assign f={{5{a}},{5{b}},{5{c}},{5{d}},{5{e}}}; assign g={5{a,b,c,d,e}}; genvar i; generate for(i=0;i<=24;i=i+1) begin: loop assign out[i]=(f[i]==g[i])?1'b1:1'b0; end endgenerate endmodule
此题的知识点是多个重复的信号组成新信号,可以用数字+{}的形式进行构造。此外for语句中判断条件要用两个=,表示相等,本来想尝试用if语句,但if语句需要和always等使用。而用了always,内部类型要用reg,且不能使用assign