一、概述
類屬參量是一種端口界面常數,常以一種説明的形式放在實體或塊結構體前的説明部分。
類屬為所説明的環境提供了一種靜態信息通道。
類屬與常數不同,常數只能從設計實體的內部得到賦值,且不能再改變,而類屬的值可以由設計實體外部提供。
使用GENERIC 語句易於模塊化和通用化。有些模塊的邏輯關係是明確的,但是由於半導體工藝、半導體材料的不同,而使器件具有不同的延遲。
為了簡化設計,對該模塊進行通用設計,參數根據不同材料、工藝待定。
因此,設計者可以從外面通過類屬參量的重新設定而容易地改變一個設計實體或元件地內部電路結構和規模。
二、書寫格式
GENERIC(常數名 數據類型 := 設定值);
三、應用實例
- 定義實體的端口大小;
- 設計實體的物理特徵;傳輸延遲,上升和下降延遲等;
- 結構體的總線寬度;
- 設計實體中底層中同種原件的例化數量;
四、程序與仿真
1 entity and2 is
2 generic (rise,fall:TIME);
3 port(a,b:IN bit;c:OUT bit);
4 end and2;
5
6 architecture generic_example of and2 is
7 signal internal_signal : BIT;
8 begin
9 internal_signal <= a and b;
10 c <= internal_signal AFTER(rise) when internal_signal = '1' ELSE internal_signal AFTER(fall);
11 end architecture generic_example;
激勵文件程序:
1 library ieee;
2 use ieee.std_logic_1164.all;
3 use ieee.std_logic_arith.all;
4 use ieee.std_logic_unsigned.all;
5
6 entity tb_and2 is
7 end entity;
8
9 architecture a of tb_and2 is
10 component and2 is
11 generic (rise,fall:TIME);
12 port(a,b:IN bit;c:OUT bit);
13 end component;
14
15 signal a_t : bit;
16 signal b_t : bit;
17 signal c_t : bit;
18
19 begin
20 a_t <= '0','1' after 10 ns;
21 b_t <= '0','1' after 10 ns;
22 u0: and2
23 generic map(5 ns,7 ns)
24 port map
25 ( a => a_t,
26 b => b_t,
27 c => c_t
28 );
29 end a;
仿真:
説明:10ns時,internal_signal已經拉高,但是c要延遲5 ns再拉高,即為參數説明的示例結果。