文章目录
一、为什么学习generate?
在设计中,很多情况下需要编写很多结构相同但是参数不同的赋值语句或者逻辑语句,如果在参数量很大的的情况下,原本的列举就会显得心有余而力不足。c语言中常用for
语句来解决此类问题,verilog则为我们提供了generate
语句。
二、generate的基本概念及语法
generate语句的最主要功能就是对module
、reg
、assign
、always
、task
等语句或者模块进行复制。generate语句有generate_for
、generate_if
、generate_case
三种语句。
下面来看看这三种语句有什么不同?
2.1、generate_for
语句
- 1、必须使用
genvar
申明一个正整数变量,用作for
循环的判断。(genvar
是generate
语句中的一种变量类型,用在generate_for
中声明正整数变量。 - 2、需要复制的语句必须写到
begin_end
语句里面。就算只有一句! - 3、
begin_end
需要有一个类似于模块名的名字。
例1、利用generate