如何在FPGA中乘以包含浮点数的矩阵?

How to multiply matrices containing floating points in FPGA?

我想问一个关于HDL中矩阵乘法的问题。 6 个月以来,我一直在学习 FPGA 和 ASIC 设计,但仍然没有足够的经验来使用 Verilog/VHDL 对 FPGA 进行编程。我快速搜索了一下,发现 Verily 很适合我。不管怎样,你只是假设我是一个初学者,直到现在我只遵循了使用 Xilinx Spartan 3E-XCS1600E MicroBlaze 入门套件的简单教程,因为我也有它。

对我来说最具挑战性的部分是在 Verilog 中创建矩阵。如果我能够创建矩阵并首先用整数填充它们,那么我可以继续下一步用浮点数矩阵。事先,我也想对这些矩阵进行逆运算,这对我来说似乎非常困难。

我的问题是,我应该怎么做才能使矩阵相乘?有没有像在 C 语言中那样的棘手或更简单的方法? (我知道 Verilog 是 HDL,我们不能那样想)。另外如何将我的浮点数转换为固定或整数类型?然后我想我可以通过这种方式解决我的问题。我看了其他问题,但不太了解。感谢您的回复和帮助。

奖金问题:如果我在 MATLAB 或 Simulink 上尝试这些操作,使用 HDL Coder 将其转换为 HDL 是否更容易?如果是,你能指导我这样做吗?

此致,

莱昂纳多

您可以在硬件设计中使用 RAM 创建矩阵。其实什么都可以用内存来形容:)

当然 Verilog 只支持整数,但我们确实有一些方法可以创建和计算浮点数。

  1. 定义浮点语法。假设我们有 reg var[7:0],我们可以假设 var[7:4] 是整数部分,var[3:0] 是小数部分。就像 8'b0101_1001 在 DEC 中等于 5.9。必须限制var[3:0]的范围为0~9!
  2. IEEE 754.http://grouper.ieee.org/groups/754/这个标准在很多领域都有广泛的应用,但是我觉得对你来说有点难。

处理矩阵没有什么特别的,只要按照你在数学上学到的东西就可以了class。

我英语不好。希望你能理解。