Skip to content

Commit fe85468

Browse files
change N_2 -> M parameter for all other modules
1 parent 7d454dc commit fe85468

File tree

3 files changed

+24
-24
lines changed

3 files changed

+24
-24
lines changed

src/fft.sv

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,22 @@
11
// fft top level module.
22
// the width is the bit width (e.g. if width=16, 16 real and 16 im bits).
3-
// N_2 is log base 2 of N (points in the FFT). e.g. N_2=5 for 32-point FFT.
4-
// the input should be width-N_2 to account for bit growth.
3+
// M is log base 2 of N (points in the FFT). e.g. M=5 for 32-point FFT.
4+
// the input should be width-M to account for bit growth.
55
module fft
6-
#(parameter width=16, N_2=5)
6+
#(parameter width=16, M=5)
77
(input logic clk, // clock
88
input logic reset, // reset
99
input logic start, // pulse once loading is complete to begin calculation.
1010
input logic load, // when high, sample #`rd_adr` is read from `rd` to mem.
11-
input logic [N_2 - 1:0] rd_adr, // index of the input sample.
11+
input logic [M - 1:0] rd_adr, // index of the input sample.
1212
input logic [2*width-1:0] rd, // read data in
1313
output logic [2*width-1:0] wd, // complex write data out
1414
output logic done); // stays high when complete until `reset` pulsed.
1515

1616
logic rdsel; // read from RAM0 or RAM1
1717
logic we0, we1; // RAMx write enable
18-
logic [N_2 - 1:0] adr0a, adr0b, adr1a, adr1b;
19-
logic [N_2 - 2:0] twiddleadr; // twiddle ROM adr
18+
logic [M - 1:0] adr0a, adr0b, adr1a, adr1b;
19+
logic [M - 2:0] twiddleadr; // twiddle ROM adr
2020
logic [2*width-1:0] twiddle, a, b, writea, writeb, aout, bout;
2121
logic [2*width-1:0] rd0a, rd0b, rd1a, rd1b, val_in;
2222

@@ -26,19 +26,19 @@ module fft
2626
assign writeb = load ? val_in : bout;
2727

2828
// output logic
29-
assign wd = N_2[0] ? rd1a : rd0a; // ram holding results depends on #fftLevels
29+
assign wd = M[0] ? rd1a : rd0a; // ram holding results depends on #fftLevels
3030

3131
// ping-pong read (BFU input) logic
3232
assign a = rdsel ? rd1a : rd0a;
3333
assign b = rdsel ? rd1b : rd0b;
3434

3535
// submodules
36-
fft_twiddleROM #(width, N_2) twiddlerom(twiddleadr, twiddle);
37-
fft_control #(width, N_2) control(clk, start, reset, load, rd_adr, done, rdsel,
36+
fft_twiddleROM #(width, M) twiddlerom(twiddleadr, twiddle);
37+
fft_control #(width, M) control(clk, start, reset, load, rd_adr, done, rdsel,
3838
we0, adr0a, adr0b, we1, adr1a, adr1b, twiddleadr);
3939

40-
twoport_RAM #(width, N_2) ram0(clk, we0, adr0a, adr0b, writea, writeb, rd0a, rd0b);
41-
twoport_RAM #(width, N_2) ram1(clk, we1, adr1a, adr1b, aout, bout, rd1a, rd1b);
40+
twoport_RAM #(width, M) ram0(clk, we0, adr0a, adr0b, writea, writeb, rd0a, rd0b);
41+
twoport_RAM #(width, M) ram1(clk, we1, adr1a, adr1b, aout, bout, rd1a, rd1b);
4242

4343
fft_butterfly #(width) bgu(twiddle, a, b, aout, bout);
4444

src/math.sv

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -40,14 +40,14 @@ endmodule // complex_mult
4040

4141
// Parameterized bit reversal.
4242
module bit_reverse
43-
#(parameter N_2=5)
44-
(input logic [N_2-1:0] in,
45-
output logic [N_2-1:0] out);
43+
#(parameter M=5)
44+
(input logic [M-1:0] in,
45+
output logic [M-1:0] out);
4646

4747
genvar i;
4848
generate
49-
for(i=0; i<N_2; i=i+1) begin : BIT_REVERSE
50-
assign out[i] = in[N_2-i-1];
49+
for(i=0; i<M; i=i+1) begin : BIT_REVERSE
50+
assign out[i] = in[M-i-1];
5151
end
5252
endgenerate
5353

src/memory.sv

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
1-
// adapted from HDL example 5.7 in
1+
// adapted from HDL example 5.6 in
22
// Harris, Digital Design and Computer Architecture
33
module twoport_RAM
4-
#(parameter width=16, N_2=5)
4+
#(parameter width=16, M=5)
55
(input logic clk,
66
input logic we,
7-
input logic [N_2-1:0] adra,
8-
input logic [N_2-1:0] adrb,
7+
input logic [M-1:0] adra,
8+
input logic [M-1:0] adrb,
99
input logic [2*width-1:0] wda,
1010
input logic [2*width-1:0] wdb,
1111
output logic [2*width-1:0] rda,
1212
output logic [2*width-1:0] rdb);
1313

14-
reg [2*width-1:0] mem [2**N_2-1:0];
14+
reg [2*width-1:0] mem [2**M-1:0];
1515

1616
always @(posedge clk)
1717
if (we)
@@ -27,15 +27,15 @@ endmodule // twoport_RAM
2727

2828

2929
module fft_twiddleROM
30-
#(parameter width=16, N_2=5)
31-
(input logic [N_2-2:0] twiddleadr, // 0 - 1023 = 10 bits
30+
#(parameter width=16, M=5)
31+
(input logic [M-2:0] twiddleadr, // 0 - 1023 = 10 bits
3232
output logic [2*width-1:0] twiddle);
3333

3434
// twiddle table pseudocode: w[k] = w[k-1] * w,
3535
// where w[0] = 1 and w = exp(-j 2pi/N)
3636
// for k=0... N/2-1
3737

38-
logic [2*width-1:0] vectors [0:2**(N_2-1)-1];
38+
logic [2*width-1:0] vectors [0:2**(M-1)-1];
3939
initial $readmemb("rom/twiddle.vectors", vectors);
4040
assign twiddle = vectors[twiddleadr];
4141

0 commit comments

Comments
 (0)