版权声明:本文为博主原创文章,转载请注明博客地址: https://cloud.tencent.com/developer/article/1433294
VHDL语言的一大特点是“自顶向下”进行硬件设计。这样的方式能最大化利用接口的优点。从系统的观点来看,这是层次化的设计,有利于扩展。
元件例化,简单来说就是将以前设计的实体当做本设计的一个元件,然后利用VHDL语句将各元件之间的连接关系描述出来。元件例化语句由两部分组成,一部分是元件定义,即将现成的设计实体定义为本设计的元件。第2部分是元件连接关系映射,即描述各个元件之间的连接关系。
元件例化语句一般格式如下
--元件定义部分
COMPONENT 元件名 IS
[GENERIC(类属表)];
PORT(端口列表);
END COMPONENT 元件名;
--元件映射部分
例化名1:元件名1 PORT MAP(元件端口名=>连接端口名,...);
......
例化名n:元件名n PORT MAP(元件端口名=>连接端口名,...);
元件例化在某些方面简化了程序设计,但是它并不完美。如果你又N个上层实体需要使用同一个下层实体,那么在这N个上层实体中,你不得不每次都进行元件例化。这将使程序变得非常臃肿。为此,VHDL允许用户自定义程序包,使得你不必每次都例化元件,而是通过调用程序包来完成。
生成语句在设计中常用来复制多个相同的并行元件或者设计单元电路结构。一般有下面两种格式。
FOR 循环变量 IN 取值范围 GENERATE
说明语句;
BEGIN
并行语句;
END GENERATE;
IF 条件 GENERATE
说明语句;
BEGIN
并行语句;
END GENERATE;
生成语句在计数器等时序电路设计的时候是非常好用的一种语句,它能使得元件例化语句大大得到简化。