2011-12-25 144 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部分总是描述你系统的行为!