Line 37... |
Line 37... |
//
|
//
|
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
//
|
//
|
// Copyright (C) 2015-2018, Gisselquist Technology, LLC
|
// Copyright (C) 2015-2018, Gisselquist Technology, LLC
|
//
|
//
|
// This program is free software (firmware): you can redistribute it and/or
|
// This file is part of the general purpose pipelined FFT project.
|
// modify it under the terms of the GNU General Public License as published
|
//
|
// by the Free Software Foundation, either version 3 of the License, or (at
|
// The pipelined FFT project is free software (firmware): you can redistribute
|
// your option) any later version.
|
// it and/or modify it under the terms of the GNU Lesser General Public License
|
//
|
// as published by the Free Software Foundation, either version 3 of the
|
// This program is distributed in the hope that it will be useful, but WITHOUT
|
// License, or (at your option) any later version.
|
// ANY WARRANTY; without even the implied warranty of MERCHANTIBILITY or
|
//
|
// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
// The pipelined FFT project is distributed in the hope that it will be useful,
|
// for more details.
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
//
|
// MERCHANTIBILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser
|
// You should have received a copy of the GNU General Public License along
|
// General Public License for more details.
|
// with this program. (It's in the $(ROOT)/doc directory, run make with no
|
//
|
// target there if the PDF file isn't present.) If not, see
|
// You should have received a copy of the GNU Lesser General Public License
|
|
// along with this program. (It's in the $(ROOT)/doc directory. Run make
|
|
// with no target there if the PDF file isn't present.) If not, see
|
// <http://www.gnu.org/licenses/> for a copy.
|
// <http://www.gnu.org/licenses/> for a copy.
|
//
|
//
|
// License: GPL, v3, as defined and found on www.gnu.org,
|
// License: LGPL, v3, as defined and found on www.gnu.org,
|
// http://www.gnu.org/licenses/gpl.html
|
// http://www.gnu.org/licenses/lgpl.html
|
//
|
//
|
//
|
//
|
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
//
|
//
|
//
|
//
|
Line 73... |
Line 75... |
// Drop an additional bit on the output?
|
// Drop an additional bit on the output?
|
parameter SHIFT=0;
|
parameter SHIFT=0;
|
// The number of clocks per clock enable, 1, 2, or 3.
|
// The number of clocks per clock enable, 1, 2, or 3.
|
parameter [1:0] CKPCE=1;
|
parameter [1:0] CKPCE=1;
|
//
|
//
|
input i_clk, i_reset, i_ce;
|
input wire i_clk, i_reset, i_ce;
|
input [(2*CWIDTH-1):0] i_coef;
|
input wire [(2*CWIDTH-1):0] i_coef;
|
input [(2*IWIDTH-1):0] i_left, i_right;
|
input wire [(2*IWIDTH-1):0] i_left, i_right;
|
input i_aux;
|
input wire i_aux;
|
output wire [(2*OWIDTH-1):0] o_left, o_right;
|
output wire [(2*OWIDTH-1):0] o_left, o_right;
|
output reg o_aux;
|
output reg o_aux;
|
|
|
|
|
reg [(2*IWIDTH-1):0] r_left, r_right;
|
reg [(2*IWIDTH-1):0] r_left, r_right;
|
Line 479... |
Line 481... |
// has (2*OWIDTH) bits in it, with the top half being the real
|
// has (2*OWIDTH) bits in it, with the top half being the real
|
// portion and the bottom half being the imaginary portion.
|
// portion and the bottom half being the imaginary portion.
|
assign o_left = { rnd_left_r, rnd_left_i };
|
assign o_left = { rnd_left_r, rnd_left_i };
|
assign o_right= { rnd_right_r,rnd_right_i};
|
assign o_right= { rnd_right_r,rnd_right_i};
|
|
|
`ifdef VERILATOR
|
|
`define FORMAL
|
|
`endif
|
|
`ifdef FORMAL
|
`ifdef FORMAL
|
localparam F_LGDEPTH = 3;
|
localparam F_LGDEPTH = 3;
|
localparam F_DEPTH = 5;
|
localparam F_DEPTH = 5;
|
localparam [F_LGDEPTH-1:0] F_D = F_DEPTH-1;
|
localparam [F_LGDEPTH-1:0] F_D = F_DEPTH-1;
|
|
|