目录

1. 示例说明

2. add_single.vhd源码

3. add_total.vhd源码

4. 运行结果

5. 功能仿真结果

6. 调用关系解析


1. 示例说明

本例是一个quartus II的工程下有两个vhd文件,其中一个调用另一个的过程。

两个vhd文件:

         add_single.vhd

         add_total.vhd

其中实现的是在add_total.vhd文件中多次调用add_single的过程。

工程名称是add_total调用关系如下:

 

2. add_single.vhd源码

 

源码如下:

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

entity add_single is

port(

         X                : in STD_LOGIC;

         Y                : in STD_LOGIC;

         C_in : in STD_LOGIC;

         Sum           : out STD_LOGIC;

         C_out       : out STD_LOGIC);

end add_single;

architecture behav of add_single is

begin

         process(X, Y, C_in)

                   begin       

                            Sum <= (X xor Y) xor C_in;

                   C_out <= (X and Y) or (C_in and X) or (C_in and Y);         

         end process;

end behav;

3. add_total.vhd源码

 

源码如下:

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

entity add_total is

port(

         X                : in STD_LOGIC_VECTOR(1 downto 0);

         Y                : IN STD_LOGIC_VECTOR(1 downto 0);

         C_in : in STD_LOGIC;

         Sum           : out STD_LOGIC_VECTOR(1 downto 0);

         C_out       : out STD_LOGIC);

end add_total;

architecture behav of add_total is

component add_single

         port(

                   X: in STD_LOGIC;

                   Y: in STD_LOGIC;

                   C_in: in STD_LOGIC;

                   Sum: out STD_LOGIC;

                   C_out: out STD_LOGIC

         );

end component;

signal C_temp: std_logic;

begin

         A1: add_single

         port map(X(0), Y(0), C_in, Sum(0), C_temp);

         A2: add_single

         port map(X(1), Y(1), C_in, Sum(1), C_out);

end behav;

4. 运行结果

 

5. 功能仿真结果

 

6. 调用关系解析

 

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐