OpenCores
URL https://opencores.org/ocsvn/fft2_size/fft2_size/trunk

Subversion Repositories fft2_size

[/] [fft2_size/] [fft_int_size/] [bitrev.sv] - Rev 7

Compare with Previous | Blame | View Log

/*
Bit-reversal permutation module
Delay 1 clock
*/

`ifndef _bitrev_
`define _bitrev_

module bitrev #(
        parameter WIDTH = 14, // max data width
        parameter BIT_WIDTH = (2**$clog2(WIDTH) > WIDTH - 1) ? $clog2(WIDTH) : $clog2(WIDTH) + 1
)(
        input clk,
        input [BIT_WIDTH-1:0] width, // current data width
        input [WIDTH-1:0] x, // input data
        output [WIDTH-1:0] y // result
);

        wire [WIDTH-1:0] yy;

        genvar i;
        generate for (i = 0; i < WIDTH; i++)
                begin :gen
                        assign yy[WIDTH-1-i] = x[i];
                end
        endgenerate
        
        always_ff @(posedge clk)
                y <= yy >> (WIDTH - width);
        
endmodule :bitrev

`endif

Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.