zxopenluyutong 发表于 2021-5-10 09:29:51

generate

在设计中,很多情况下我们需要编写很多结构相同但参数不同的赋值语句或逻辑语句块,当参数量很大的情况下,原始的列举就会变得很笨拙甚至是不可行的。C语言处理这种问题通常情况下会使用如for循环语句来完成多次的相同操作。而verilog 语言呢?同样的为我们提供了generate语句块来帮助我们完成这些过程。

基本概念

generate的主要功能就是对module,net,reg,parameter,assign,always,task,function进行复制,genvar是generate语句中的一种变量类型,用以在 generate-for 语句中声明一个正整数的索引变量 (如果将“X”或“Z”或者“负值”赋给genvar 变量将会出错)。genvar 变量可以声明在 generate 语句内,也可以声明在 generate 语句外。

generate 语句有 generate-for、generate-if 和 generate-case 三种语句,下面梦翼师兄和大家一起来学习这三种语句。



genrate-for



使用generate_for的时候,必须要注意以下几点要求:



a) 必须使用genvar申明一个正整数变量,用作for的判断变量;



b) for里面的内嵌语句,必须写在begin_end里面,哪怕只有一句;



c) begin_end需要一个名字。


zxopenhl 发表于 2021-6-16 16:22:23

generate   
页: [1]
查看完整版本: generate