【Verilog HDL】命名的规则研究
Verilog命名规范参考资料
1. 什么可以被命名?
- 模块的名称
- 模块实例的名称
- 各种数据类型的名称
这些名称我们称之为标识符,标识符的命名规则不再强调,与C语言类似,字母、数字、下划线(_)和美元符号($),开头只能是字母或者下划线。
2. 命名的方式是怎样的?
- 模块的名称
- 见名知义
- 符合命名规范
- 模块实例的名称
通常情况下,可能会多次使用模块的实例,命名的时候通常类似于:
ff0,ff1,ff2,ff3,ff4…… - 各种数据类型的名称
没什么好说的,见名知义,符合命名规范即可
3. 标识符的范围
就目前的知识结构来说,我对于范围的理解是这样的
- 模块与模块实例的名称是全局的,全局的名称都不能重复
- 数据类型的名称是局部的,不同的模块内可以重复,并且对于同一个信号源,不同子模块内建议使用一样的命名
- 一个模块内,所有标识符的名字,都不允许相同
4. 层次命名
先举一个例子,对于如下层次结构
标识符的层次名为:
- sti
- sti.q
- sti.qbar
- sti.set
- sti.reset
- sti.m1
- sti.m1. Q
- sti.m1.Qbar
- sti.m1.S
- sti.m1.R
- sti.n1
- sti.n2
其实就最后两个看起来比较特别,并且是令人费解的,按理说不应该是
- sti.m1.n1
- sti.m1.n2
不应该是这样才对嘛?为什么没有m1?
先不要慌,我们先来解释一下,为什么要使用层次命名,意义何在?
- 层次命名是为了在访问设计中的某个标识符的时候,能够唯一地识别这个标识符。
- 对于具备全局属性的标识符——模块和模块实例的名称来说,显然不是使用层次名的原因。
- 对于具备局部属性,可以在不同子模块中重复命名的标识符——变量或者信号的名称来说,在全局设计中,它不具备唯一性,因此访问的时候可能会出现问题,所以引入了层次名的概念,以便于能够在全局设计的任意位置中,能够唯一地访问这些标识符。
所以
- sti.n1
- sti.n2
这两个层次名的原因也就得到了解释,因为n1,n2在全局中是唯一的。
【Verilog HDL】命名的规则研究相关推荐
- 【黑金动力社区】【FPGA黑金开发板】Verilog HDL的礼物 - Verilog HDL扫盲文
声明:本文为原创作品,版权归akuei2及黑金动力社区共同所有,如需转载,请注明出处http://www.cnblogs.com/kingst/ 目录 目录 02 第0章 Veril ...
- 【连载】【FPGA黑金开发板】Verilog HDL那些事儿--VGA驱动(十)
声明:本文转载于http://www.cnblogs.com/kingst,版权归akuei2及黑金动力社区(http://www.heijin.org)共同所有. 实验九:VGA驱动 实验九之一:驱 ...
- 【连载】【FPGA黑金开发板】Verilog HDL那些事儿--12864(ST7565P)液晶驱动(十三)...
声明:本文为原创作品,版权归akuei2及黑金动力社区(http://www.heijin.org)共同所有,如需转载,请注明出处http://www.cnblogs.com/kingst/ 4.2 ...
- 【Verilog HDL学习之路】第二章 Verilog HDL的设计方法学——层次建模
2 Verilog HDL的设计方法学--层次建模 重要的思想: 在语文教学中,应该先掌握核心方法论,再用正确的方法论去做题目,这样能够逐渐加深对于方法论的理解,做题的速度和准确率也会越来越高. 在V ...
- Verilog初级教程(2)Verilog HDL的初级语法
文章目录 前言 正文 注释 空格 操作符 数字格式 字符串 标识符 关键字 verilog修订 写在最后 前言 学习Verilog和学习任何一门编程语言一样,都需要从语法开始,不会语法去学习设计是几乎 ...
- Verilog HDL
由于该语言与C语言比较接近,因此在FPGA的学习里面我先选择学习它,在后面如果有时间还需要学习VDHL.而且国内一般用Verilog用的比较多. 它具有一下的描述能力:设计的行为特性.设计的数据流特性 ...
- Verilog HDL 基础
Verilog HDL 基础 一.Verilog 的基本概念 1. 硬件描述语言HDL 1.1 特点: 描述电路的连接.描述电路的功能.在不同抽象级上描述电路. 描述电路的时序.表达具有并行性 1.2 ...
- Verilog HDL学习笔记
目录 1 硬件描述语言简介 1.1 概述 1.2 HDL语言特点 2 程序的基本语法 2.1 Verilog HDL 程序结构 2.1 Verilog HDL 程序规则 模块 连续赋值语句assign ...
- 【连载】【FPGA黑金开发板】Verilog HDL那些事儿--12864(ST7565P)液晶驱动(十三)
声明:本文转载于http://www.cnblogs.com/kingst,版权归akuei2及黑金动力社区(http://www.heijin.org)共同所有. 4.2 实验十二:12864(ST ...
最新文章
- Spring Cloud构建微服务架构:服务容错保护(Hystrix服务降级)
- linux shell 和 golang 查询服务器硬件信息
- php中参数传值的三种方法,php cli传递参数的方法
- 【数据结构与算法】之深入解析“奇偶链表”的求解思路与算法示例
- reactivecocoa基础讲解
- 牛逼! IDEA 2020 要本土化,真的是全中文了!
- 认识高清视频编码(MPEG、H.264、WMV-HD、RMVB)
- 休眠 嵌入式_内幕消息:嵌入式软件挤出最低功耗模式
- C#委托和事件实现观察者模式
- Android——多线程之Handler
- (原創) 這學期C++完美的Ending (C/C++) (日記)
- maple 2018 窗口关闭提示乱码_Stata15:一次性转码,解决中文乱码问题
- 牛顿插值法 matlab程序计算方法,(最新整理)牛顿插值法matlab程序
- cmd命令结束端口进程
- “拼命”奔跑的社区团购
- 树莓派sd卡linux分区,树莓派安装了Kali系统的SD卡扩容问题(分区太小)解决办法...
- mysql jdbc dao_MYSQL 之 JDBC(九):增删改查(七)DAO的补充和重构
- 豆瓣电影Top250信息爬取并保存到excel文件中
- docker启动失败原因
- 浏览器多分辨率适配方法总结(跨平台)
热门文章
- context元素大概解说
- dynamic与var
- Android中的Handler机制
- asp.net(c#) 将dbf转换为xls或wps,并将数据的列名改成中文;并判断本机是否安装office2003,2007和wps2007,2010...
- 对多个WCF服务进行统一的连接测试
- 萧山职称计算机考试培训,浙江萧山2017年职称计算机考试时间安排
- oracle转mysql总结经验,oracle转mysql总结(转)
- java项目中外接扫描仪无法使用_java – 扫描仪行不可用错误
- 金算盘高手论坛资料中心_3D006期 菜鸟论坛精英PK专栏 速来围观!!
- 文档词频矩阵_论文理解:从词嵌入到文档距离