基2蝶算模块(fft8)

本文介绍了基2蝶算模块FFT8的实现,包括内部两级缓存的设计和CMUL模块的异步计算。在测试过程中,通过波形验证了2点FFT的正确性,并讨论了计算时采用符号法与直接调用LPM模块的性能差异以及溢出处理策略的灵活性。
摘要由CSDN通过智能技术生成

满眼的管脚线看得眼晕,尤其是在测试的时候,才发现测试对象的思考更纠结。

对于蝶算模块,其功能是由控制器输出4个控制计数,butter_fly在每一个时钟接收一组数。内部设两级缓存交替存储输入,同时计算出结果按原址存到ram里。如下图所示:

对于cmul,每个时钟接收8个数据,异步得出结果。基二的蝶型公式是 A=A+B*Wn, A=A-B*Wn,涉及到小数运算,将小数定标,提高64倍,考虑到溢出,每一步计算之后回退128倍,公式如下:

assign R=(A_r*64 +B_r*wn1a +B_i*wn1b) /128;
assign I=(A_i*64 +B_r*wn2a +B_i*wn2b) /128;



对于bf模块,其作用是控制给cmul的数据传送,如下:

	case(cnt4_buf)
	2'b00:begin TA_r1<=q_r;	TA_i1<=q_i; Twn11<=sin; Twn21<=cos;		A_r<=TA_r2; A_i<=TA_i2; B_r<=TB_r2; B_i<=TB_i2; wn1a<=Twn22; wn1b<=-Twn12; wn2a<=Twn12; wn2b<=Twn22; end
	2'b01:begin TB
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值