Verilog命名规范参考资料

1. 什么可以被命名?

  • 模块的名称
  • 模块实例的名称
  • 各种数据类型的名称

这些名称我们称之为标识符,标识符的命名规则不再强调,与C语言类似,字母、数字、下划线(_)和美元符号($),开头只能是字母或者下划线。

2. 命名的方式是怎样的?

  • 模块的名称

    • 见名知义
    • 符合命名规范
  • 模块实例的名称
    通常情况下,可能会多次使用模块的实例,命名的时候通常类似于:
    ff0,ff1,ff2,ff3,ff4……
  • 各种数据类型的名称
    没什么好说的,见名知义,符合命名规范即可

3. 标识符的范围

就目前的知识结构来说,我对于范围的理解是这样的

  • 模块与模块实例的名称是全局的,全局的名称都不能重复
  • 数据类型的名称是局部的,不同的模块内可以重复,并且对于同一个信号源,不同子模块内建议使用一样的命名
  • 一个模块内,所有标识符的名字,都不允许相同

4. 层次命名

先举一个例子,对于如下层次结构

根层 sti
m1 模块SR_latch的实例
变量q,qbar,set,reset
n1 模块nand的实例
n2 模块nand的实例
信号 Q,Qbar,S,R

标识符的层次名为:

  • 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?

先不要慌,我们先来解释一下,为什么要使用层次命名,意义何在?

  1. 层次命名是为了在访问设计中的某个标识符的时候,能够唯一地识别这个标识符
  2. 对于具备全局属性的标识符——模块和模块实例的名称来说,显然不是使用层次名的原因。
  3. 对于具备局部属性,可以在不同子模块中重复命名的标识符——变量或者信号的名称来说,在全局设计中,它不具备唯一性,因此访问的时候可能会出现问题,所以引入了层次名的概念,以便于能够在全局设计的任意位置中,能够唯一地访问这些标识符

所以

  • sti.n1
  • sti.n2

这两个层次名的原因也就得到了解释,因为n1,n2在全局中是唯一的

【Verilog HDL】命名的规则研究相关推荐

  1. 【黑金动力社区】【FPGA黑金开发板】Verilog HDL的礼物 - Verilog HDL扫盲文

    声明:本文为原创作品,版权归akuei2及黑金动力社区共同所有,如需转载,请注明出处http://www.cnblogs.com/kingst/ 目录 目录         02 第0章  Veril ...

  2. 【连载】【FPGA黑金开发板】Verilog HDL那些事儿--VGA驱动(十)

    声明:本文转载于http://www.cnblogs.com/kingst,版权归akuei2及黑金动力社区(http://www.heijin.org)共同所有. 实验九:VGA驱动 实验九之一:驱 ...

  3. 【连载】【FPGA黑金开发板】Verilog HDL那些事儿--12864(ST7565P)液晶驱动(十三)...

    声明:本文为原创作品,版权归akuei2及黑金动力社区(http://www.heijin.org)共同所有,如需转载,请注明出处http://www.cnblogs.com/kingst/ 4.2 ...

  4. 【Verilog HDL学习之路】第二章 Verilog HDL的设计方法学——层次建模

    2 Verilog HDL的设计方法学--层次建模 重要的思想: 在语文教学中,应该先掌握核心方法论,再用正确的方法论去做题目,这样能够逐渐加深对于方法论的理解,做题的速度和准确率也会越来越高. 在V ...

  5. Verilog初级教程(2)Verilog HDL的初级语法

    文章目录 前言 正文 注释 空格 操作符 数字格式 字符串 标识符 关键字 verilog修订 写在最后 前言 学习Verilog和学习任何一门编程语言一样,都需要从语法开始,不会语法去学习设计是几乎 ...

  6. Verilog HDL

    由于该语言与C语言比较接近,因此在FPGA的学习里面我先选择学习它,在后面如果有时间还需要学习VDHL.而且国内一般用Verilog用的比较多. 它具有一下的描述能力:设计的行为特性.设计的数据流特性 ...

  7. Verilog HDL 基础

    Verilog HDL 基础 一.Verilog 的基本概念 1. 硬件描述语言HDL 1.1 特点: 描述电路的连接.描述电路的功能.在不同抽象级上描述电路. 描述电路的时序.表达具有并行性 1.2 ...

  8. Verilog HDL学习笔记

    目录 1 硬件描述语言简介 1.1 概述 1.2 HDL语言特点 2 程序的基本语法 2.1 Verilog HDL 程序结构 2.1 Verilog HDL 程序规则 模块 连续赋值语句assign ...

  9. 【连载】【FPGA黑金开发板】Verilog HDL那些事儿--12864(ST7565P)液晶驱动(十三)

    声明:本文转载于http://www.cnblogs.com/kingst,版权归akuei2及黑金动力社区(http://www.heijin.org)共同所有. 4.2 实验十二:12864(ST ...

最新文章

  1. Spring Cloud构建微服务架构:服务容错保护(Hystrix服务降级)
  2. linux shell 和 golang 查询服务器硬件信息
  3. php中参数传值的三种方法,php cli传递参数的方法
  4. 【数据结构与算法】之深入解析“奇偶链表”的求解思路与算法示例
  5. reactivecocoa基础讲解
  6. 牛逼! IDEA 2020 要本土化,真的是全中文了!
  7. 认识高清视频编码(MPEG、H.264、WMV-HD、RMVB)
  8. 休眠 嵌入式_内幕消息:嵌入式软件挤出最低功耗模式
  9. C#委托和事件实现观察者模式
  10. Android——多线程之Handler
  11. (原創) 這學期C++完美的Ending (C/C++) (日記)
  12. maple 2018 窗口关闭提示乱码_Stata15:一次性转码,解决中文乱码问题
  13. 牛顿插值法 matlab程序计算方法,(最新整理)牛顿插值法matlab程序
  14. cmd命令结束端口进程
  15. “拼命”奔跑的社区团购
  16. 树莓派sd卡linux分区,树莓派安装了Kali系统的SD卡扩容问题(分区太小)解决办法...
  17. mysql jdbc dao_MYSQL 之 JDBC(九):增删改查(七)DAO的补充和重构
  18. 豆瓣电影Top250信息爬取并保存到excel文件中
  19. docker启动失败原因
  20. 浏览器多分辨率适配方法总结(跨平台)

热门文章

  1. context元素大概解说
  2. dynamic与var
  3. Android中的Handler机制
  4. asp.net(c#) 将dbf转换为xls或wps,并将数据的列名改成中文;并判断本机是否安装office2003,2007和wps2007,2010...
  5. 对多个WCF服务进行统一的连接测试
  6. 萧山职称计算机考试培训,浙江萧山2017年职称计算机考试时间安排
  7. oracle转mysql总结经验,oracle转mysql总结(转)
  8. java项目中外接扫描仪无法使用_java – 扫描仪行不可用错误
  9. 金算盘高手论坛资料中心_3D006期 菜鸟论坛精英PK专栏 速来围观!!
  10. 文档词频矩阵_论文理解:从词嵌入到文档距离