`timescale 1ns/1ns

module top_module(
    input a, b, c, d, e,
	output [24:0] out
); 
   /*这道题主要是考察拼接符的灵活运用
     {} 代表拼接  例如 {a,b,c,d,e}  代表将这几位拼接起来
     {{}}代表复制 例如{{5{a}} 代表将a 复制五次
   */
   /*此题有两种解法,两种解法的不同之处在与比较相同为1这上面
      第一种方法就是 用同或来实现比较相同为1   因为在数电里面 异或是不同为1  同或是相同为1
      第二中方法是用循环来实现每一位的比较
   */
    wire [24:0] data1,data2;
    
    assign data1 = {{5{a}},{5{b}},{5{c}},{5{d}},{5{e}}};
    assign data2 ={5{a,b,c,d,e}};
  //  assign out = ~(data1 ^ data2);

    
        genvar i ;
        generate 
            for(i = 0 ; i <= 24 ; i = i + 1)
            begin:for_loop
                assign out[i] = (data1[i] == data2[i])? 1'b1:1'b0;
            end
        endgenerate
    
endmodule