EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 A-Lin 于 2019-5-17 10:24 编辑 0 s( x d; r! ~' p
|5 @" p& N! {; n+ i6 \! i
大神告诉你VHDL语言中GENERATE用途一种目的 % F+ p2 y* ^# l. |
一种目的,两种用途:1)生成相同元件的多次实例化,示例如下:
0 R4 H6 N3 n. h8 D( `1 kfor k in 99 downto 0 generate 8 j' F2 |, T5 A4 W7 `3 ?6 B
flip_flop : DFF ' M1 l5 L4 H, g# _8 e1 x. a
port map ( ( F$ t$ \5 ~; q' ^* a2 L0 W
clk => clk,
6 c& C7 L& e1 r3 r+ U3 i* B. D) L5 G d => din(k), ! g" P- q; D( ?) \9 [. E
q => dout(k) );
2 x/ J2 z0 l( o3 S, N end generate;2) + @. j4 t( h! X V
生成结构相同的多次赋值、组合逻辑,示例如下:
( p, I) h8 c: ? }- `for i in 0 to 99 generate
1 [& o; N2 o7 L: |" B0 H/ D6 X a(i)<=b(i)+c(i);
# A$ m1 a9 k! ?2 l! @& K/ `end generate;
9 K: e4 E" B5 V' k两种用法目的都是为了减少代码量,增加可读性和可维护性。& J1 y6 J! G* D8 X# ]& z2 j1 `
请注意:在generate里面的语句都是并发的,而process里面的语句都是顺序执行的。. j4 i, `' j* E5 c6 M
& h3 f1 O3 t2 ^+ X& n* z8 H
|