欢迎来到亿配芯城! | 免费注册
你的位置:EEPROM带电可擦可编程IC存储器芯片大全-亿配芯城 > 芯片资讯 > FPGA排序-冒泡排序(Verilog版)介绍
FPGA排序-冒泡排序(Verilog版)介绍
发布日期:2023-12-31 12:31     点击次数:310

在之前的推文中介绍了冒泡排序的实现,但是分享的代码使用的是SpinalHDL,最近有好多小伙伴后台私信问有没有Verilog版的代码。今天就给大家贴出来,具体原理参考FPGA排序--冒泡排序这篇之前的文章。

仍然以8个8bit的数为例来介绍冒泡排序,因此数据的输入和输出位宽均为64bit(8*8bit),使用valid信号来标识数据有效,整个实现采用流水线的方式。

 

`timescale 1ns / 1ps


module bubble(
    input           clk             ,
CMOS图像传感器集成电路芯片
    input           rst             ,芯片交易网IC交易网
    input   [63:0]  data_in         ,
EEPROM带电可擦可编程存储器芯片大全
    input           data_in_valid   ,
ATMEGA系列ATMEL芯片COM
    output  [63:0]  data_out        ,
电子元器件PDF资料大全
    output          data_out_valid


);
    reg [ 3:0]  data_in_valid_ff;
    reg [63:0]  data_in_ff[3:0] ;
    reg         v[7:0][7:0]     ;
    reg [ 1:0]  sum_1[7:0][3:0] ;
    reg [ 2:0]  sum_2[7:0][1:0] ;
    reg [ 3:0]  sum_3[7:0]      ;


    reg [7:0]   data_out_temp[7:0] ;
    reg         data_out_valid_temp;


    genvar i;
    genvar j;




    always @(posedge clk ) begin
        if(rst == 1'b1)begin
            data_in_valid_ff = data_in[j*8 +: 8];
                        v[j][i] 

在代码中用了大量的生成语句,EEPROM带电可擦可编程存储器芯片大全这样可以降低我们的代码量,这些生成语句帮我们生成了大量的重复性电路,我们并不需要有什么担心。

9b53895a-5e07-11ee-939d-92fbcf53809c.png

仿真代码:

 

`timescale 1ns / 1ps
module tb_bubble(


    );


    reg clk;
    reg rst;


    reg [7:0] data_in_0;
    reg [7:0] data_in_1;
    reg [7:0] data_in_2;
    reg [7:0] data_in_3;
    reg [7:0] data_in_4;
    reg [7:0] data_in_5;
    reg [7:0] data_in_6;
    reg [7:0] data_in_7;


    wire [63:0] data_in;
    reg         data_in_valid;


    wire [63:0] data_out;
    wire        data_out_valid;


    initial begin
        clk = 1'b0;
        rst = 1'b1;
        #50
        rst = 1'b0;
    end


    always #5 clk = !clk;


    always @(posedge clk ) begin
        if(rst == 1'b1)begin
            data_in_0     

仿真结果:

9b7b1cf4-5e07-11ee-939d-92fbcf53809c.png

可以看到每个时钟周期输出8个排好序的数字。

9b98f706-5e07-11ee-939d-92fbcf53809c.png

消耗的资源如上。如果我们不需要流水输出的话,使用的资源可以进一步进行压缩,这个就看具体的需求了,资源和性能的平衡。

审核编辑:刘清