rofactor.v
来自「基于VHDL语言的一个FFT快速傅里叶变换程序。采用4蝶形算法」· Verilog 代码 · 共 72 行
V
72 行
/*
* filename: rofactor.v
*
* version: 2007-04-21
*
* funciton: 在rof_start出现的下一个时钟,依次输出旋转因子,共
* 输出256*3个
*
*/
module rofactor
(
rst,
clk8x,
rof_start,
angle
// ,state,
// cnt256,
// inc1, inc2, inc3
);
input rst, clk8x, rof_start;
output [7:0] angle;
//output [1:0] state;
//output [7:0] cnt256;
//output [5:0] inc1, inc2, inc3;
reg [1:0] state;
reg [7:0] cnt256;
wire [5:0] inc1, inc2, inc3;
reg [7:0] angle;
always @ (posedge clk8x)
begin
if (rst)
state <= 2'b0;
else if (rof_start)
state <= 2'b01;
else if (cnt256 == 255)
state <= state + 1'b1;
if (rst)
cnt256 <= 8'b0;
else if (state!=0)
cnt256 <= cnt256 + 1'b1;
end
assign inc1 = cnt256[7:2];
assign inc2 = {cnt256[5:2], 2'b0};
assign inc3 = {cnt256[3:2], 4'b0};
always @ (posedge clk8x)
begin
if (rst || cnt256[1:0]==3)
angle <= 8'b0;
else if (state == 1)
angle <= angle + inc1;
else if (state == 2)
angle <= angle + inc2;
else if (state == 3)
angle <= angle + inc3;
else
angle <= 8'b0;
end
endmodule
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?