我想定义一些浮点的输入和输出端口,所以我选择了真实的数据类型,但是根据我的搜索,我们不能将真实值作为输入端口传递,并且可用的转换是不可合成的。
input real [0:10] delta;
parameter ndelta= 100;
input real [0:10] ly;
input real [0:10] nly;
output real [0:20] w[0:20];
output real [0:20] oldw[0:20];
*所有实际值都是 C 代码中的原始“浮点”值。
此外,我决定在 ISE 的 CoreGenerator 中使用浮点 IP,但它只对两个 32 位向量进行操作,每个向量都呈现一个浮点值。如果我想对浮点数的一维或二维数组进行操作,我应该首先自定义 FP 内核,然后使用 generate for 循环来创建一个二维数组吗?是否有一些很好的教程来学习如何对一维浮点数数组进行简单的加法?
generate
for(i=0; (i<100); i=i+1) begin: FPU_unit
begin
floating_point_v5_0 U_FPU_ins(
.a(a[i]),
.b(b[i]),
.clk(clk),
.result(result[i])
);
end
endgenerate
此外,当我将 C 代码转换为 HDL 级别时,我想知道这里是否有人建议我使用 Vivado HLS 将我的 C 代码的一部分转换为 HDL 语言。
比较 Vivado HLS 和 ISE,哪一个是处理浮点密集型计算的更有效方法?