找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3366|回复: 0
打印 上一主题 下一主题
收起左侧

verilog实现冒泡排序源程序

[复制链接]
跳转到指定楼层
楼主
ID:631487 发表于 2019-10-28 16:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
使用veriog实现冒泡排序

verilog源程序如下:
  1. `timescale 1ns / 1ps
  2. //////////////////////////////////////////////////////////////////////////////////
  3. // Company:
  4. // Engineer:
  5. //
  6. // Create Date:    09:16:46 03/30/2018
  7. // Design Name:
  8. // Module Name:    mian
  9. // Project Name:
  10. // Target Devices:
  11. // Tool versions:
  12. // Description:
  13. //
  14. // Dependencies:
  15. //
  16. // Revision:
  17. // Revision 0.01 - File Created
  18. // Additional Comments:
  19. //
  20. //===============================        说明                =====================================
  21. //        按照地址从小往大递增的顺序,数据是从大到小排列
  22. //================================================================================
  23. module main#(        
  24.                 parameter                                                                   ROW_WIDTH = 8, //行
  25.                 parameter                                                                   COL_WIDTH = 16        //列
  26.                 )
  27.         (
  28.                 input                                clk,
  29.                 input                                rst,
  30.                
  31.                 input                                enable
  32.     );
  33. //--------------------------------------------------------------------------------
  34.         reg                                                        [15:0]                comp_data_i;                   //数据
  35.         reg                                                                                        valid_i;                                           //数据有效

  36.         reg                                                        [15:0]                data                                                [COL_WIDTH:1];
  37.         reg                                                        [7:0]                        count;
  38. //--------------------------------------------------------------------------------
  39.         initial
  40.                 begin
  41.                         data[1]        =        16'd20;
  42. //                        data[2]        =        16'd723;
  43.                         data[2]        =        16'd20;
  44.                         data[3]        =        16'd12;
  45.                         data[4]        =        16'd456;       
  46.                         data[5]        =        16'd278;
  47.                         data[6]        =        16'd9756;
  48.                         data[7]        =        16'd433;
  49.                         data[8]        =        16'd10000;
  50.                         data[9]        =        16'd21;
  51.                         data[10]        =        16'd724;
  52.                         data[11]        =        16'd15;
  53.                         data[12]        =        16'd458;       
  54.                         data[13]        =        16'd279;
  55.                         data[14]        =        16'd9758;
  56.                         data[15]        =        16'd439;
  57.                         data[16]        =        16'd30;
  58.                 end
  59. //--------------------------------------------------------------------------------
  60.                 always@(posedge        clk        or posedge        rst)
  61.                         begin
  62.                                 if(rst)
  63.                                         begin
  64.                                                 count <= COL_WIDTH + 1;
  65.                                                 valid_i        <= 0;
  66.                                                 comp_data_i        <= 0;
  67.                                         end
  68.                                 else        if(enable)
  69.                                         begin
  70.                                                 count <= 1;
  71.                                         end
  72.                                 else        if(count <= COL_WIDTH)
  73.                                         begin
  74.                                                 comp_data_i <= data[count];
  75.                                                 count <= count + 1;
  76.                                                 valid_i <= 1;
  77.                                         end
  78.                                 else
  79.                                         begin
  80.                                                 valid_i        <= 0;
  81.                                                 count <= count;
  82.                                         end
  83.                         end

  84. //--------------------------------------------------------------------------------
  85. //                并行比较排序算法
  86. //--------------------------------------------------------------------------------
  87.         parallel                 u0_parallel (      
  88.                  .clk                                (        clk                        ),
  89.                  .rst                                (        rst                        ),
  90.                  .comp_data_i        (        comp_data_i        ),
  91.                  .valid_i                (        valid_i                )
  92.     );

  93. //--------------------------------------------------------------------------------
  94. //                串行比较排序算法
  95. //--------------------------------------------------------------------------------
  96.         serial                         u1_serial (
  97.                  .clk                                (        clk                        ),
  98.                  .rst                                (        rst                        ),
  99.                  .comp_data_i        (        comp_data_i        ),
  100.                  .valid_i                (        valid_i                )
  101.     );

  102. //--------------------------------------------------------------------------------
  103. //                冒泡法
  104. //--------------------------------------------------------------------------------
  105.         bubbling                 u2_bubbling (
  106.                  .clk                                (        clk                        ),
  107.                  .rst                                (        rst                        ),
  108.                  .comp_data_i        (        comp_data_i        ),
  109.                  .valid_i                (        valid_i                )
  110.     );
  111. //--------------------------------------------------------------------------------
  112. endmodule
复制代码

所有资料51hei提供下载:
Sort_prj.rar (844 KB, 下载次数: 15)


评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表