如何在行为vhdl中使用组件

时间:2013-05-25 15:34:35

标签: generator vhdl core

我创建了一个用核心生成器划分的。它创建了如下组件:

component divider_core
port (
clk: IN std_logic;
rfd: OUT std_logic;
dividend: IN std_logic_VECTOR(31 downto 0);
divisor: IN std_logic_VECTOR(31 downto 0);
quotient: OUT std_logic_VECTOR(31 downto 0);
fractional: OUT std_logic_VECTOR(31 downto 0));
end component;

我想知道如何在进程内部通过某些行为vhdl代码使用此divider组件。这可能吗?

谢谢, 哈里斯

3 个答案:

答案 0 :(得分:1)

创建模块后,您需要在架构部分中声明组件,并在流程之前映射组件的端口。

您可以看到它如何应用于您的代码

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;

entity declaration 

architecture Behavioral of <your_entity> is

component divider_core
port (
 clk: IN std_logic;
 rfd: OUT std_logic;
 dividend: IN std_logic_VECTOR(31 downto 0);
 divisor: IN std_logic_VECTOR(31 downto 0);
 quotient: OUT std_logic_VECTOR(31 downto 0);
 fractional: OUT std_logic_VECTOR(31 downto 0));
end component;

begin

c1: divider_core Port Map (
 clk => clk,
 rfd => rfd,
 dividend => dividend,
 divisor => divisor,
 quotient => quotient,
 fractional => fractional
);

process

end process;
end Behavioral;

答案 1 :(得分:0)

包含numeric_std包(link)并使用除法(/)运算符。

答案 2 :(得分:0)

听起来你想将这个division_core用作函数,这可能是不可能的。如果你想要一个实现除法的vhdl函数,那就不同于使用组件了。