一种目的,两种用途: 1)生成相同元件的多次实例化,示例如下: for k in 99 downto 0 generate flip_flop : DFF port map ( clk => clk, d => din(k), q => dout(k) ); end generate; 2) 生成结构相同的多次赋值、组合逻辑,示例如下: for i in 0 to 99 generate a(i)<=b(i)+c(i); end generate; 两种用法目的都是为了减少代码量,增加可读性和可维护性。 请注意: 在generate里面的语句都是并发的,而process里面的语句都是顺序执行的。 以上例子来源于网络,未经调试,希望对楼主有所帮助。转自太乙本人