2017-08-10 104 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/這個標準已經在很多領域得到了廣泛的應用,但是我認爲這對你有點困難。

處理矩陣並不是什麼特別的,只要按照你在數學課上學到的東西。

我不擅長英語。希望你能理解。