6.5 元件例化语句
当设计实体是一个较大的电路系统时,如果将电路所有功能在一个实体内实现,那么可能会使代码变得相当复杂,并且难以修改。可以把这个复杂的电路系统看成是由具有各自功能的小模块组成的,这些小模块相当于电路系统板上的芯片。元件例化从简单电路描述开始,逐步完成复杂元件的描述,从而实现整个硬件系统的描述,实现“自上而下”或“自下而上”层次化的设计。
元件例化语句分为两部分:第一部分是元件声明,第二部分是元件例化。
(1)元件声明。
『格式』:
(2)元件例化。
『格式』:
例化名:元件名PORT MAP(信号[,信号关联式…]);--元件例化
在元件声明中,GENERIC用于该元件的可变参数的带入和赋值,PORT则声明该元件的输入/输出端口的信号规定。
在元件例化中,“(信号[,信号关联式…])”部分完成元件引脚与插座引脚的连接关系,称为关联。关联的方法有位置映射、名称映射及由它们构成的混合关联法。
位置映射法就是把例化元件端口声明语句中的信号名与PORT MAP()中的信号名在书写顺序和位置方面一一对应。例如:
u1:and1PORT MAP(a1,b1,y1);
名称映射法就是用“”符号将例化元件端口声明语句中的信号名与PORT MAP()中的信号名关联起来。例如:
u1:and1PORT MAP(aa1,b
b1,y
y1);
用元件例化方式设计电路时,通常先完成各种元件的设计,并将这些元件声明包装在程序包中,然后通过元件例化产生需要的设计电路。
【例6.5.1】 利用带进位的异步清除十进制加法计数器,设计一个计数范围为0~99的加法计数器。
该计数器是由两个十进制加法计数器通过元件例化方式产生的,如图6.5.1所示。
图6.5.1 0~99加法计数器
第一步,设计十进制加法计数器,源代码如下。
第二步,将设计的元件声明装入my_pkg程序包中,源代码如下。
第三步,用元件例化产生如图6.5.1所示的电路,源代码如下。
【例6.5.2】 三进制计数器输出的数码管显示。
在该程序中用COMPONENT命令调用了三进制计数器的设计程序,其程序如下。
三进制计数器输出的数码管显示的波形如图6.5.2所示。
图6.5.2 三进制计数器输出的数码管显示的波形
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。