fpga数据位宽截取_一种基于FPGA数据位宽转换方法与流程
本发明涉及数据处理技术领域,具体涉及一种基于FPGA数据位宽转换方法。
背景技术:
数据处理过程中,任意位宽转换在逻辑电路或大规模集成电路设计使用是非常广泛的。需要进行位宽转换操作的原因很多,可能是因为需要降低逻辑内部时钟频率。通过数据位宽转换,将小位宽转换为大位宽数据,就可以降低时钟频率,从而降低逻辑电路的设计难度;时钟频率降低还可以降低逻辑电路或工电路的功耗;后段处理电路需要的数据位宽如果与输入数据位宽不相等,此时就需要进行位宽转换操作。基于上述分析,在逻辑电路设计或供电电路设计中,对于数据位宽的任意转换显得极为重要。
技术实现要素:
本发明的目的是,针对现有技术不足,设计一种基于FPGA数据位宽转换方法,实现数据位宽的任意转换。
本发明通过以下技术方案实现:
一种基于FPGA数据位宽转换方法,其特征在于,基于直接数字式频率合成器DDS相位累加实现:所述直接数字式频率合成器DDS满足以下条件:
fo=K/2^N*fi;
其中fo为输出频率;K为频率控制字;N为频率控制字K和累加和的位宽;fi为输入时钟的频率。
上述设计可以实现任意速率转化;输入数据到输出数据位宽转变,同时伴随着输入数据速率和输出数据速率的转变,类似输入时钟到输出时钟的转变。
位宽转变基于直接数字式频率合成器DDS相位累加字实现:
输入位宽作为相位累加控制字,ACC=ACC+IWIDTH;如果ACC>=OWIDTH则ACC=ACC-OWIDTH,同时置输出有效标志,取移位缓存SRL[ACC+OWIDTH-1:ACC]作为输出数据Dout;
输入数据按高位在前方式低位在后方式,在输入数据有效时送入移位寄存器SRL;
SRL={SRL[SRL_DEEP-IWIDTH-1:0],din}
移位寄存器深度SRL_DEEP=IWIDTH+OWIDTH-1
本发明提供了一种基于FPGA数据位宽转换方法,与现有技术相比,本发明实现数据位宽的任意转换。
附图说明
图1为本发明基于FPGA的高斯白噪声发生器的实现框图。
具体实施方式
参阅附图1对本发明做进一步描述。
本发明涉及一种基于FPGA数据位宽转换方法,其特征在于,基于直接数字式频率合成器DDS相位累加实现:所述直接数字式频率合成器DDS满足以下条件:
fo=K/2^N*fi;
其中fo为输出频率;K为频率控制字;N为频率控制字K和累加和的位宽;fi为输入时钟的频率。
上述设计可以实现任意速率转化;输入数据到输出数据位宽转变,同时伴随着输入数据速率和输出数据速率的转变,类似输入时钟到输出时钟的转变。
输入数据移位缓冲设计;
输入数据按高位在前方式地位在后方式,在输入数据有效时送入移位寄存器SRL:
SRL={SRL[SRL_DEEP-IWIDTH-1:0],din}
移位寄存器深度SRL_DEEP=IWIDTH+OWIDTH-1;
实例1:
当小的数据位宽向大的数据位宽转化时,参照DDS相位累加原理,步骤如下:
1)初始化累加字ACC=0;
2)当输入数据有效时ACC=ACC+IWIDTH;
3)如果ACC>=OWIDTH;
则ACC=ACC-OWIDTH,置输出有效标志,Dout=SRL[ACC+OWIDTH-1:ACC]
否则ACC=ACC;回到2步。
实例2:
当大的数据位宽向小的数据位宽转化时,参照DDS相位累加原理,步骤如下:
1)初始化累加字ACC=0;
2)当输入数据有效时ACC=ACC+IWIDTH;
3)如果ACC>=OWIDTH;
则ACC=ACC-OWIDTH,置输出有效标志,Dout=SRL[ACC+OWIDTH-1:ACC],返回到3;
否则ACC=ACC;回到2步。
与现有技术相比,实现数据位宽的任意转换。
按照以上描述,即可对本发明进行应用。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
