2011-12-25 153 views
1

我正在一個項目上工作,但無論我做什麼,我都無法理解此代碼的作用。由於我對VHDL不熟悉,因此我很難理解此代碼的用途。這個VHDL代碼是做什麼的?

library iee; 
use ieee.std_logic_1164.all; 
use ieee.std_logic_arith.all; 
use work.my_package.all; 

Entity multiplier is 

    generic (size: integer :=4); 
    Port (a,b : in unsigned(size-1 downto 0); 
     y : out unsigned(size-1 downto 0)); 

End multiplier ; 

ARCHITECTURE behavior of multiplier is 

Begin 

    y<= mult(a,b); 

End behavior; 
+0

你也有一個包使用work.my_package.all; y <= mult(a,b)我認爲** mult(a,b)**是包中的函數。 – user29875 2013-10-01 22:15:33

回答

5

您有一個實體它描述了您的設計的接口。在這種情況下,輸入ab以及輸出y。這些都是4位值。

架構包含的你正在試圖做的(身體如果你願意)什麼實施。在這種情況下,它只是ab的乘法,它被分配到y。並且(如果你感到困惑)不,<=不代表「小於或等於」,但它是一項任務。

3

它需要兩個4位輸入並在輸出上產生一個4位乘積。這有點奇怪,因爲輸入大小等於輸出,所以如果你將兩個大數相乘,你會發生溢出。

1

只需查找ARCHITECTURE部分,就可以看到您在實體部分中定義的兩個整數a和b相乘。 ARCHITECTURE部分總是描述你係統的行爲!