Verilog中generate语句的用法
在Verilog-2001中新增了语句generate,通过generate循环,可以产生一个对象(比如一个元件或者是一个模块)的多次例化,为可变尺度的设计提供了方便,generate语句一般在循环和条件语句中使用,为此,Verilog-2001增加了四个关键字generate,endgenerate, genvar, localparam,genvar是一个新增的数据类型,用在generate的循环中的标尺变量必须定义为gnevar类型;

下面举例说明generate的用法:

首先设计一个1bit位宽的buffer_1:

//1bit width buffer_1module buffer_1(input    wire    in,output   wire    out);assign out = ~in;endmodule

在buffer_8中例化buffer_1 8次,这里有几点需要注意:

循环变量i必须是genvar类型的,不可以是reg型,integer型;
for循环之后的的begin最好加上一个标号(BLOCK1);

//8bit width buffermodule buffer_8(input    wire[7:0] din,output   wire[7:0] dout);// Generate blockgenvar i;generatefor(i=0; i<8; i=i+1) begin:BLOCK1buffer_1 buffer_1_1(.in(din[i]), .out(dout[i]));endendgenerateendmodule

这里给出了一个简单的顶层:

 //testbenchmodule buffer_8_tb;// reg & wire define areareg [7:0] din;wire[7:0] dout;// Instance the DUTbuffer_8 buffer_8_1(.din  (din    ),.dout (dout   ));// Generate the stimulateinitial begindin = 8'd7;#10; din = 8'd6;#10; din = 8'd4;#10; din = 8'd7;#10; $finish();endendmodule

generate语法
定义genvar,作为generate种的循环变量。
generate语句中定义的for语句,必须要有begin,为后续增加标签做准备。
begin必须要有名称,也就是必须要有标签,因为标签会作为generate循环的实例名称。
可以使用在generate语句中的类型主要有
ü module(模块)
ü UDP(用户自定义原语)
ü 门级原语
ü 连续赋值语句
ü initial或always语句
基本结构如下:

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

Verilog中generate语法和作用相关推荐

  1. Verilog中generate的使用

    目录 generate的结构类型 1.generate循环结构 2.条件if-generate构造 3.条件case-generate构造 4.断言和形式验证 5.层次化访问生成的模块 总结 Veri ...

  2. Verilog中generate用法总结

    Verilog中generate用法总结 1.generate-for 2.generate-if 3.generate-case 生成语句可以动态的生成verilog代码,当对矢量中的多个位进行 重 ...

  3. Verilog中generate的用法

    Generate 语句基本概念 generate 语句可以动态地生成 Verilog 代码,常用于编写许多结构相同但参数不同的赋值语句或逻辑语句,方便参数化模块的生成.generate 语句主要有以下 ...

  4. verilog中generate语句的使用

    原文地址:https://blog.csdn.net/qq_38428056/article/details/84821982 至芯科技的书上看到的,觉得还行吧,给大家分享一下. 一.为什么学习gen ...

  5. Verilog中generate语句的用法

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

  6. 【FPGA】Verilog中generate用法

    创作时间:2021-08-18 1.一些说明: generate循环的语法与for循环语句的语法很相似. genvar只有在建模的时候才会出现,在仿真时就已经消失了. 但是在使用时必须先在genvar ...

  7. Verilog初级教程(12)Verilog中的generate块

    文章目录 前言 正文 generate for generate if generate case 参考资料 本系列博文 前言 verilog中的generate块可以称为生成块,所谓生成,可以理解为 ...

  8. Verilog中生成语句(generate)的用法

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

  9. verilog always语法_Verilog初级教程(20)Verilog中的`ifdef 条件编译语句

    前言 `ifdef条件编译语句在逻辑设计中还是很常见的,但也常见一些滥用的情况,这应该避免. 应该在什么情况下使用呢? 例如:一部分代码可能有时候用,有时候不用,为了避免全部编译占用资源,可以使用条件 ...

最新文章

  1. (9)MSP430F5529 定时器Timer_A
  2. dependencies与dependencyManagement的区(转自:http://blog.csdn.net/liutengteng130/article/details/46991829)
  3. 每天一道LeetCode-----只可能有'.'和'*'的字符串正则匹配
  4. [NewLife.XCode]数据初始化
  5. Linux内核设计与实现---系统调用
  6. Hadoop初次接触后感
  7. python调用另一个.py文件中的类和函数
  8. [No0000F5]C# 类(Class)
  9. 【图论】Bellman_Ford算法求有步数限制的最短路(图文详解)
  10. 分析华为毕昇JDK8:类数据共享CDS有效果,幅度很小
  11. 内存部分重要参数详解
  12. 支付宝-线上资金授权(小程序)
  13. php开源微博框架,记事狗微博开源代码学习笔记:微博话题列表
  14. 甘肃一名高考生偷偷带手机进考场,拍题并上传到网上出钱求答案……
  15. 色环电阻的识别和检测
  16. 阿尔法c语言程序设计考试题,计算机考试习题
  17. jqueryppt_jQuery幻灯片
  18. python画八角星_Goc-N角星的绘制
  19. linux 默认路由 主机路由 网络路由
  20. dwz ajax提交,DWZ-JUI Ajax.post 封装

热门文章

  1. doe五步法_minitab中实验设计(doe).pdf
  2. 技巧 | Excel有哪些简单易学,又效率显著的骚操作?
  3. 论文|翻译——行为数据挖掘(持续更新!)
  4. 模拟QQ音乐微信登录界面
  5. ARP欺骗:使用工具:arpspoof、driftnet和ettercap
  6. unity3D 法线贴图的制作与使用
  7. 设计模式(C++实例)
  8. ARM Linux下UPnP使用
  9. 蓝桥杯第十三届大赛web大学组题目及答案解析
  10. java实现打印机打印