关于generate用法的总结
Abtract
generate语句允许细化时间(Elaboration-time)的选取或者某些语句的重复。这些语句可以包括模块实例引用的语句、连续赋值语句、always语句、initial语句和门级实例引用语句等。细化时间是指仿真开始前的一个阶段,此时所有的设计模块已经被链接到一起,并完成层次的引用。
Introduction
1.generate语法
- 定义genvar,作为generate种的循环变量。
- generate语句中定义的for语句,必须要有begin,为后续增加标签做准备。
- begin必须要有名称,也就是必须要有标签,因为标签会作为generate循环的实例名称。
- 可以使用在generate语句中的类型主要有:
- ü module(模块)
- ü UDP(用户自定义原语)
- ü 门级原语
- ü 连续赋值语句
- ü initial或always语句
- 基本结构如下:
genvar 循环变量名;
generate
// generate循环语句
// generate 条件语句
// generate 分支语句
// 嵌套的generate语句
endgenerate
下面将就generate常用的几种情况举例说明。
2. generate-loop循环语句

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

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

Conclusion
genvar与generate是Verilog 2001才有的,功能非常强大,可以配合条件语句、分支语句等做一些有规律的例化或者赋值等操作,对于提高简洁代码很有帮助,同时也减少了人为的影响。
转载:http://www.cnblogs.com/nanoty/archive/2012/11/13/2768933.html
关于generate用法的总结的更多相关文章
- 【转载】关于generate用法的总结【Verilog】
原文链接: [原创]关于generate用法的总结[Verilog] - nanoty - 博客园http://www.cnblogs.com/nanoty/archive/2012/11/13/27 ...
- [转载]关于generate用法的总结【Verilog】
转载自http://www.cnblogs.com/nanoty/archive/2012/11/13/2768933.html Abtract generate语句允许细化时间(Elaboratio ...
- kali linux之Msf-exploit模块,生成payload
Exploit模块 Active exploit(主动地向目标机器发送payload并执行,使目标交出shell(反连等)) msf5 > use exploit/windows/smb/pse ...
- Android View.setId(int id) 用法
Android View.setId(int id) 用法 当要在代码中动态的添加View并且为其设置id时,如果直接用一个int值时,Studio会警告. 经过查询,动态设置id的方法有两种; 1. ...
- EasyUI-标签(Tabs)用法
用法示例 创建tabs 1. 经由标记创建Tabs 从标记创建Tabs更容易,我们不需要写任何JavaScript代码.记住把 'easyui-tabs' 类添加到<div/>标记,每个t ...
- [图解教程]Eclipse不可不知的用法之一:自动生成Getter、Setter和构造方法
[图解教程]Eclipse不可不知的用法之一:自动生成Getter.Setter和构造方法 关键词:Getters and Setters.getter和setter方法.Constructor us ...
- c++ algorithm 的用法
1 , accumulate()template<class _II, class _Ty> inline_Ty accumulate(_II _F, _II _L, _Ty _V){fo ...
- 【转】ldconfig和ldd用法
ldconfig和ldd用法 一.ldconfig ldconfig --helpUsage: ldconfig [OPTION...]Configure Dynamic Linker Run Tim ...
- Maven介绍,包括作用、核心概念、用法、常用命令、扩展及配置
由浅入深,主要介绍maven的用途.核心概念(Pom.Repositories.Artifact.Build Lifecycle.Goal).用法(Archetype意义及创建各种项目).maven常 ...
随机推荐
- Java 实现的SnowFlake生成UUID (Java代码实战-007)
SnowFlake所生成的ID一共分成四部分: 1.第一位占用1bit,其值始终是0,没有实际作用. 2.时间戳占用41bit,精确到毫秒,总共可以容纳约69 年的时间. 3.工作机器id占用10bi ...
- python之模块colorsys颜色转换模块 暂不了解
# -*- coding: utf-8 -*- #python 27 #xiaodeng #python之模块colorsys #颜色转换模块 #colorsys import colorsys 针对 ...
- 使用u盘安装os x系统
从 App Store 下载 OS X 安装器 请执行以下步骤下载要安装的 OS X 版本. 1. 从 Apple 菜单中,选取“App Store”. 2. 按住 Option 键并点按“已购项目” ...
- 利用jquery修改href的部分字符
试了好久 就一句代码即可. $(document).ready(function(){ $('a').each(function(){ this.href = this.href.replace('y ...
- 持续集成工具hudson
2008-07-08 一.什么是持续集成 持续集成的核心概念 CI 过程会经常构建软件组件:在许多情况下,每当源代码存储库(比如 Subversion 或 ClearCase)中的代码发生变化时, ...
- Iterm2的一些好用法
今天把mac带到公司办公了,爽歪歪啊. 1,如何脱离鼠标拷贝屏幕中的内容 1) Command+f 调出选择框,并在其中输入要复制的字符,可以使用Tab补全 2) 按 Command + c复制字符 ...
- iOS 常用的几个math函数
1.取整数 double ceil (double); 取上整 double floor (double); 取下整 2.绝对值 double fabs (double);求绝对值 double ca ...
- 树莓派进阶之路 (006) - 树莓派安装wiringPi
安装git-core sudo apt-get install git-core 下载winringPi库 git clone git://git.drogon.net/wiringPi 编译和安装库 ...
- Android--ListView 分割线
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout ...
- FluentScheduler
The job configuration is handled in a Registry class. A job is either an Action or a class that inhe ...