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步。

与现有技术相比,实现数据位宽的任意转换。

按照以上描述,即可对本发明进行应用。

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部