⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 overflow_detect.v

📁 rtl实现的fft变换
💻 V
字号:
module overflow_detect (
  rst,
  clk,
  bfly_out_valid,
  wr_stage_cmplt,
  xr_h3,
  xi_h3,
  yr_h3,
  yi_h3,
  shift_ctrl_clr,
  shift_ctrl
);

input rst,clk;
input bfly_out_valid;
input wr_stage_cmplt;
input [2:0] xr_h3,xi_h3,yr_h3,yi_h3;
input shift_ctrl_clr;
output [1:0] shift_ctrl;

reg [1:0] shift_ctrl;

wire [1:0] of_det;
reg  [1:0] of_flg;

assign of_det[1] = (xr_h3[2]^xr_h3[1]) | 
	           (xi_h3[2]^xi_h3[1]) | 
		   (yr_h3[2]^yr_h3[1]) |  
		   (yi_h3[2]^yi_h3[1]); 
assign of_det[0] = (xr_h3[1]^xr_h3[0]) | 
	           (xi_h3[1]^xi_h3[0]) | 
		   (yr_h3[1]^yr_h3[0]) |  
		   (yi_h3[1]^yi_h3[0]); 

always @(posedge rst or posedge clk) begin
  if(rst)
	  of_flg[1] <= 1'b0;
  else if(wr_stage_cmplt)
	  of_flg[1] <= 1'b0;
  else if(of_det[1] && !of_flg[1] && bfly_out_valid)
	  of_flg[1] <= 1'b1;
end

always @(posedge rst or posedge clk) begin
  if(rst)
	  of_flg[0] <= 1'b0;
  else if(wr_stage_cmplt)
	  of_flg[0] <= 1'b0;
  else if(of_det[0] && !of_flg[0] && bfly_out_valid)
	  of_flg[0] <= 1'b1;
end

always @(posedge rst or posedge clk) begin
  if(rst)
	  shift_ctrl <= 2'b00;
  else if(shift_ctrl_clr)
	  shift_ctrl <= 2'b00;
  else if(wr_stage_cmplt)
	  shift_ctrl <= of_flg[1] ? 2'b10 : of_flg;
end

endmodule

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -