一、语法介绍

generate语句允许细化时间(Elaboration-time)的选取或者某些语句的重复。这些语句可以包括模块实例引用的语句、连续赋值语句、always语句、initial语句和门级实例引用语句等。细化时间是指仿真开始前的一个阶段,此时所有的设计模块已经被链接到一起,并完成层次的引用。

1、定义genvar,作为generate中的循环变量。

2、generate语句中定义的for语句,必须要有begin,为后续增加标签做准备。

3、begin必须要有名称,也就是必须要有标签,因为标签会作为generate循环的实例名称。

4、可以使用在generate语句中的类型主要有:

  • module(模块)
  • UDP(用户自定义原语)
  • 门级原语
  • 连续赋值语句
  • initial或always语句

基本结构如下:

genvar 循环变量名;
generate
// generate循环语句
// generate 条件语句
// generate 分支语句
// 嵌套的generate语句
endgenerate

二、举例

1、generate-for循环语句

2、generate-if条件语句

generate允许对语句进行条件选择,即将条件选择加入到generate中的for循环中,只例化条件成立时对应的语句或者module。

3、generate-case分支语句

generate-case分支语句与generate-if条件语句类似,只不过将原来的分支语句换做了case语句。

三、总结

genvar与generate是Verilog 2001才有的,功能非常强大,可以配合条件语句、分支语句等做一些有规律的例化或者赋值等操作,对于提高简洁代码很有帮助,同时也减少了人为的影响。

需要注意的是:

有人可能一开始感觉这几个语法没有啥明显的作用啊,其实我一开始也是这么想的。但是思考了一会之后发现,正常情况下,我们的for循环、if以及case语句都要写在always块中,然而在always块里是不能例化模块的,所以我们就没有办法使用这几种语句去例化模块。

可是使用了generate之后,我们就可以不在always块中使用for循环、if以及case语句,从而可以使用这几种语句来例化模块,这样我们就可以方便的给不同的例化对象不同的参数以及实现在不同情况下例化不同模块的需求。

verilog generate语法总结相关推荐

  1. Verilog中generate语法和作用

    Verilog中generate语句的用法 在Verilog-2001中新增了语句generate,通过generate循环,可以产生一个对象(比如一个元件或者是一个模块)的多次例化,为可变尺度的设计 ...

  2. Verilog generate循环

    一:generate Verilog-2001添加了generate循环,允许产生module和primitive的多个实例化,同时也可以产生多个variable,net,task,function, ...

  3. b 计数器位选信号 verilog_Verilog HDL菜鸟学习笔记———三、Verilog常用语法之一...

    1.一个完整版实例 上一次Verilog学习笔记中,我通过几个小例子,较为直观的对Verilog编程有了一些了解.这次笔记,我开始着重的系统学习Verilog编程语法基础.在我系统学习语法之前,我先用 ...

  4. 【正点原子FPGA连载】 第七章 Verilog HDL语法 摘自【正点原子】DFZU2EG/4EV MPSoC 之FPGA开发指南V1.0

    1)实验平台:正点原子MPSoC开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id=692450874670 3)全套实验源码+手册+视频下载地址: h ...

  5. 【正点原子FPGA连载】第七章Verilog HDL语法 -摘自【正点原子】新起点之FPGA开发指南_V2.1

    1)实验平台:正点原子新起点V2开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id=609758951113 2)全套实验源码+手册+视频下载地址:ht ...

  6. Verilog HDL 语法整理 (一)

    目录 导读 一.模块结构 1.模块的端口定义 2.模块内容 二.数据类型 1.常量 2.参量 3.变量 1.寄存器数据类型 2.线网型数据类型 参考声明 导读 本篇博文主要介绍Verilog HDL ...

  7. Verilog HDL 语法学习笔记

    今天给大侠带来Verilog HDL 语法学习笔记,话不多说,上货. 关于详细的VHDL语法以及Verilog HDL语法可参见往期文章. 一周掌握 FPGA VHDL Day 7 暨汇总篇 一周掌握 ...

  8. RTL是什么,Verilog的语法能不能看我的这一篇大致知道。

    Verilog HDL是一种硬件描述语言(HDL:Hardware Description Language),以文本形式来描述数字系统硬件的结构和行为的语言,用它可以表示逻辑电路图.逻辑表达式,还可 ...

  9. 一周掌握FPGA Verilog HDL语法 day 4

    今天给大侠带来的是一周掌握FPGA Verilog HDL 语法,今天开启第四天. 一周掌握FPGA Verilog HDL语法 day 3 被平台综合了,如果想要看详细介绍的话,可以到公众号内部&q ...

最新文章

  1. 支持树莓派的路由器系统_用树莓派打造无线路由器
  2. 对‘TIFFReadDirectory@LIBTIFF_4.0’未定义的引用
  3. 在Word XP中也能插入国际音标、拼音
  4. 网络硬盘录像机和数字硬盘录像机区别(nvr dvr ipc区别)
  5. 以实战之名尽兵法之意
  6. Ensemble_VEP--vcf文件注释
  7. 基于python的爬虫毕业论文_基于python网络爬虫及数据处理毕业论文 相关实例(示例源码)下载 - 好例子网...
  8. 乳酸的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  9. 外贸ERP软件之工贸一体企业解决方案
  10. 石墨烯海水淡化lammps模拟建模方法
  11. 上传图片到淘宝 API
  12. 计算机科学论文生成器,软件自动生成假论文:满篇废话
  13. 斯皮尔 皮尔森 肯德尔_失焦图像的无参考质量评价
  14. 开关电源:效率与VOUT的关系
  15. ASO优化优缺点各是什么?带你学会常见的优化手段
  16. 利用占空比的改变调节小车速度
  17. 工作站和微型计算机的区别,轻松了解工作站和台式机的区别,用Precision 3551挥洒创意...
  18. 九度 1420 Jobdu MM分水果 -- 动态规划、深度优先搜索
  19. arcgis两张图层不能同时显示_arcgis如何统一不同坐标的两个图层
  20. iOS 12-12.1.2 完整越狱教程

热门文章

  1. 中小学开学了,猿辅导们还能一路凯歌吗?
  2. html怎么div剧中,css怎么使div居中?
  3. OpenOffice 使用 文档结构图 目录
  4. C语言 | 异或运算符的妙用
  5. 大量的电脑文件用它就能批量管理
  6. Ps提示“无法完成请求 因为程序错误
  7. vue中怎么引入字体包(超详细)
  8. 锐龙R7 Pro 5850U怎么样 相当于什么水平
  9. 深度学习PyTorch、TensorFlow中GPU利用率与内存占用率很低的问题
  10. 优信发布2018年Q4财报:营收11.367亿元 同比增61.6%