lixuedong8000的个人空间 https://blog.eetop.cn/152131 [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

verilog2001中generate的精妙用法

已有 15341 次阅读| 2012-5-29 11:15 |个人分类:Verilog+SystemVerilog

转载http://www.cnblogs.com/adamite/archive/2008/12/24/1361878.html

也是刚刚用到此语法

verilog2001中有generate这个语法,近日有用到,简单归纳如下:

语法:

1。genvar后面的for,变量必须是genvar变量;generate+if,不如`ifdef `else `endif;

2。for里必须有begin,哪怕只有一句;

3。begin必须有名称,原因见4;

4。这里例化的模块名称是inst[j].unit;

5。generate语句可以看作是标准化为块的综合指令。

应用实例:

generate可以用for,case,if。其中,generate实例化多个器件很简洁。

案例

generate

  genvar j ;

  for(j=0;j<=INST_NUM;j=j+1)

  begin : inst

      dff #(PARAMETER) unit(

                                        .clk(clk),

                                        .ena(ena),

                                        .in(in),

                                        .out(out)

                                        ) ;

 end

endgenerate

 

generate还可以进行多个assign赋值!

案例

module anytest_v(
    input clk,
    input[7:0] datain,
    output[7:0] dataout,
    output finish
    );

wire[7:0] mem[31:0];
wire[32*8-1:0] xxx;
//reg[7:0] i;
generate
      genvar i;
      for(i=0;i<=31;i=i+1) 
      begin :wiertech
            assign mem[i]= 8'b0; 
      end
endgenerate
endmodule

 


点赞

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 1

    粉丝
  • 0

    好友
  • 0

    获赞
  • 0

    评论
  • 1559

    访问数
关闭

站长推荐 上一条 /2 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-4-23 16:38 , Processed in 0.028891 second(s), 14 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部