注册 登录
电子工程世界-论坛 返回首页 EEWORLD首页 频道 EE大学堂 下载中心 Datasheet 专题
a3261735的个人空间 https://home.eeworld.com.cn/space-uid-188692.html [收藏] [复制] [分享] [RSS]
日志

verilog 冒泡排序

已有 3271 次阅读2011-4-19 11:58 |

    module maopao_sort(
                  input         strobe,
                  input         reset_n,
                  input [7:0]   data_in,
                  input         lval,
                  output  [7:0] data_out,
                  output        sort_finish_en
                  );
   parameter ARRAY_MAX_INDEX = 8;
   reg [17:0] cnt;
   always @(posedge strobe)
             if(lval)
                 cnt <= cnt +18'd1;
             else
                cnt <= 18'd0;
    reg   [7:0] data_in_d1;
    reg         lval_d1;
    reg         lval_d2;
    reg [17:0]  cnt_d1;
    always @(posedge strobe)
              begin
                  lval_d1 <= lval;
                  data_in_d1 <= data_in;
                  lval_d2 <= lval_d1;
                  cnt_d1 <= cnt;
              end
    reg [7:0] med_data;
    always @(posedge strobe)
              if(lval_d1)
                  begin
                      if(cnt == 18'd1)
                          med_data <= data_in_d1;
                      else if(med_data >data_in_d1)
                               med_data <= data_in_d1;
                      else
                         med_data <= med_data;
                  end
              else
                 med_data <= med_data;
    assign data_out =(lval_d2 && cnt_d1 == ARRAY_MAX_INDEX)?med_data:8'd0;
    assign sort_finish_en = (lval_d2 && cnt_d1 == ARRAY_MAX_INDEX)?1'b1:1'b0;
  
    endmodule
                        

                      
全部作者的其他最新日志
评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

热门文章