我目前正在研究一个将 C 转换为 VHDL 的框架,并且我陷入了长除法的实现。事实上,我的框架只能处理 32 位变量,因此解析 C long long 变量将产生 2 个 VHDL 变量,一个包含最重要的部分,一个包含最不重要的部分。所以总结一下,从这里:
long long a = 1LL;
将生成的 VHDL 将类似于:
var30 <= 00000000000000000000000000000000;
var31 <= 00000000000000000000000000000001;
现在我的问题是:我如何划分 2 个 long long 参数(在 VHDL 中),因为它们被分成 2 个变量?我对加法/减法没有问题,因为我可以独立处理最重要的部分(分别是最小的部分)(只是传播的进位),但我真的不知道如何执行除法,因为有了这个一种操作,最小和最重要的部分真的绑定在一起......如果有人有想法,将不胜感激
PS:乘法我有同样的问题
编辑:我都处理有符号/无符号变量,结果应该是一个 64 位变量