12个数排序

12个数进行排序后输出

module new_12 #(

     parameter DATA_WIDTH = 8,
     parameter DATA_NUM = 12

)(

          input wire [DATA_WIDTH-1:0] data_in [DATA_NUM-1:0]

         ,output wire [DATA_WIDTH-1:0] data_out[DATA_NUM-1:0]

);

genvar i;

reg [DATA_NUM-1:0] cnt [DATA_NUM-1:0];
generate

for(i=0;i<DATA_NUM;i=i+1) begin: SEL_12
   sel_l_func lnst(

      .data     (data_in[i]   )

     ,.data_ln  (data_in     )

     ,.cnt_res  (cnt[i]      )

     );

end

endgenerate

wire[DATA_WIDTH-1:0] data_o [DATA_NUM-1:0];
reg [DATA_WIDTH-1:0] data_o_d[DATA_NUM-1:0];
generate

for(i=0;i<DATA_NUM;i=i+1) begin: DATA_OUT

   assign data_o[i] = (cnt[0 ]      == 1) ? data_in[0 ] :

                        ((cnt[1 ]   == 1) ? data_in[1 ] :

                        ((cnt[2 ]   == 1) ? data_in[2 ] :

                        ((cnt[3 ]   == 1) ? data_in[3 ] :

                        ((cnt[4 ]   == 1) ? data_in[4 ] :

                        ((cnt[5 ]   == 1) ? data_in[5 ] :

                        ((cnt[6 ]   == 1) ? data_in[6 ] :

                        ((cnt[7 ]   == 1) ? data_in[7 ] :

                        ((cnt[8 ]   == 1) ? data_in[8 ] :

                        ((cnt[9 ]   == 1) ? data_in[9 ] :

                        ((cnt[10] == 1) ? data_in[10] : data_in[11]))))))))));

end

endgenerate

endmodule

module sei_1_func #(

     parameter DATA_WIDTH = 8,
     parameter DATA_NUM = 12

)(

          input wire [DATA_WIDTH-1:0] data
         ,input wire [DATA_WIDTH-1:0] data_in [DATA_NUM-1:0]

         ,output wire [DATA_NUM-1 :0] cnt_res

);

wire [DATA_NUM-1:0] cnt;

genvar i;

generate

for(i=0;i<DATA_NUM;i=i+1) begin: SEL_1

     assign cnt[i] = data > data_in[i] ? 'd1 : 'd0;

end

endgenerate

assign cnt_res = cnt[0] + cnt[1] + cnt[2] + cnt[3] + cnt[4] + cnt[5] + cnt[6] + cnt[7] + cnt[8] + cnt[9] + cnt[10] + cnt[11];
endmodule
posted @   xswnb  阅读(6)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示