2017-08-10 151 views
0

我想问一个关于HDL矩阵乘法的问题。 6个月来,我一直在学习FPGA和ASIC设计,但仍然没有足够的经验来编程使用Verilog/VHDL的FPGA。我进行了一次快速搜索,发现Verily适合我。无论如何,你只是假设我是初学者,直到现在,我只学习了使用Xilinx Spartan 3E-XCS1600E MicroBlaze入门套件制作的简单教程,因为我也拥有它。如何在FPGA中乘以包含浮点的矩阵?

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

我的问题是,我应该怎么做才能乘以矩阵?有没有什么比C语言更简单或更简单的方法? (我知道Verilog是HDL,我们不能这么想)。另外如何将我的浮动数字转换为固定或整数类型?那我想我可以用这种方式解决我的问题。我看了其他的问题,但不明白。感谢您的回应和帮助。

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

问候,

莱昂纳多

+0

创建矩阵很容易..在'系统verilog'与多维数组。乘以它们很容易......在'c'中。如果您的fpga中没有板载算术单元,那么您至少需要将一个乘法器单元模型化为最小值。 – Serge

回答

0

您可以创建在硬件设计RAM矩阵。实际上,一切都可以用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/这个标准已经在很多领域得到了广泛的应用,但是我认为这对你有点困难。

处理矩阵并不是什么特别的,只要按照你在数学课上学到的东西。

我不擅长英语。希望你能理解。