您的位置:首页 > 其它

关于vhdl语言中模块连接的方法和注意点

2015-03-23 21:43 369 查看

1.明确任务

     

如上图所示

,A和B是我们已经写好的两个模块,现在我们希望把这两个模块连接起来,成为一个整体的模块C。并让A的两个输入作为C的输入,B的输出作为整体的输出

2.具体实现

(1)首先新建一个vhdl模块,取名为c
  (2)   在c中的实体entity部分填充c的输入输出端口

entity  c is
Port(
x1:out std_logic;
x2:out std_logic;
y:out std_logic);

end entity c;


(2)在 architecture 和 begin之间加入A和B的component

ARCHITECTURE c IS
SIGNAL tem:std_logic;
COMPONENT  A
PORT( x1:IN std_logic;x2:IN std_logic;y1:OUT std_logic);
END COMPONENT;

COMPONENT   B
PORT( y2:IN std_logic;y:OUT std_logic);
END COMPONENT;
BEGIN

在port中分别填入A和B模块的输入输出端口。注意在component的上方,还加入了一个signal。这个signal必须要有,它是作为A和B的y1和y2端口互联的中间变量。

(3)在 architecture的begin下方加入两个component的连接关系

BEGIN
U0:A PORT MAP ( x1=>x1,x2 => x2, y1=>tem);
U1:B PORT MAP (y2 => tem,y => y);
END;

前面的U0和U1只是一个名字,可以随便取。在冒号之后是原先两个实体的名字A和B。port map代表端口的映射,在括号中输入映射的关系。在这里我们可以看到信号所起到的连接作用:y1=>tem代表将y1端口和tem相连,y2 => tem代表将y2端口和tem相连.注意不可以写成

tem=>y2或者y1=>y2.


3.注意事项

(1)A和B连接部分一定要设置一个信号。
(2)注意在port map中端口互联的写法
(3)在port map中是使用逗号,不是分号。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: