博客首页 | 排行榜 |

Gentel------飞鱼

何时何地都不要放弃了自己。。。

个人档案
博文分类
verilog2001有关generater用法  2010年03月15日 星期一 21:49


Verilog-2001添加了generate循环,允许产生moduleprimitive的多个实例化,同时也可以产生多个variablenettaskfunctioncontinous assignmentinitialalways。在generate语句中可以引入if-elsecase语句,根据条件不同产生不同的实例化。

genvar为新增数据类型,存储正的integer。在generate语句中使用的index必须定义成genvar类型。localparamparameter有些类似,不过其不能通过redefinition改变值。除了可以在generate语句中使用if-elsecase外,还能使用for语句进行循环

例如:

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

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

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

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

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

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

  

类别:FPGA /SOPC(EDK) |
上一篇:DE2 板子 固化到flash | 下一篇:写在2010年
以下网友评论只代表其个人观点,不代表本网站的观点或立场