gpt4 book ai didi

algorithm - 遍历 FPGA 中的位

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:07:53 25 4
gpt4 key购买 nike

现在我正试图找出在 FPGA 中迭代位的最佳方法。我正在使用一些快速供电算法的变体,也就是平方求幂(更准确地说,它是椭圆曲线数学的加倍和相加算法)。要在硬件上实现它,我知道我必须使用进行迭代的 FSM。我的问题是如何正确地“处理”一点点移动。我的第一个想法是切换字节顺序,但是当我的 k = 17 是 32 位时,我必须丢弃前 27 位,所以这是一个相当愚蠢的想法。另一个概念是“移动”0001000 模式和按位 & 它与数字,但它也需要找到第一个非零位。

TL&DR得到例如 k = 17(32 位,所以:17x0 10001)并且想要迭代 5 次(这意味着我开始迭代数字的第一个“真实”位)知道我迭代的每一位。

语言无关紧要 - 我只需要算法,而不是特定语言的解决方案。但是,如果可以在 Verilog 中轻松完成,我不会介意。 :P

最佳答案

找到第一个非零位的专用组合电路,将其移到第一个位置,并告诉您移位量应该对资源相当轻。

原则上,编译器应该能够自己找到这个解决方案并对其进行改进:

if none of the top 16 bits are set, set bit 4 of the shift amount, and shift by 16.
if none of the top 8 bits are set, set bit 3 of the shift amount, and shift by 8.
...

编译器应该能够找到进一步的优化。

关于algorithm - 遍历 FPGA 中的位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24335815/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com