VHDL中component 与for generate有什么区别

来源:百度知道 编辑:UC知道 时间:2024/06/02 10:49:49
都是并行同时性语句,而且是为了解决重复的问题。两者有什么区别啊?
4位加法器不是也可以 用component实现吗
比如使用comonent定义全加器,在使用portmap映像
u0:组件名称 Port map(a(0),b(0),c(0),c(1),s(0));
……
u3:组件名称 Port map(a(3),b(3),c(3),c(4),s(3));
和循环的for generate有分别吗?

这两个完全没用任何可比性。。。

component是对库中元件进行例化用的语句,相当于调用了一个模块。比如调用一个lpm计数器模块
test : COMPONENT lpm_counter
GENERIC MAP(lpm_width=>10,lpm_modulus=>1000)
PORT MAP(clock=>clk_in,aclr=>reset,q=>result);

for generate是为了同一类关系的循环描述,是一种简化写法。比如
FOR i IN 0 TO 7 GENERATE
a(i)<=b(i)+c(i);
END GENERATE;
------------------
对于你的第二个问题的回答就是 for generate的优点就在于如果我有100位的时候就不用你把component写100遍了。

component 用来对设计好的元件进行调用
component 调用元件名
port(元件端口

);
end component;

for.... generate
用来重复产生相同元件的指令

有时会把他们一起用 比如说要写个4位全加器,我们可一先写一个1位全加器
最后用for.... generate来生成4次就可以实现了

  component是对库中元件进行例化用的语句,相当于调用了一个模块。for.... generate是用来重复产生相同元件的指令。
  VHDL全名Very-High-Speed Integrated Circuit Hardware Description Language,诞生于1982年。1987年底,VHDL被IEEE和美国国防部确认为标准硬件描述语言 。自IEEE-1076(简称87版)之后,各EDA公司相继推出自己的VHDL设计环境,或宣布自己的设计工具可以和VHDL接口。1993年,IEEE对VHDL进行了修订