阅读 75

FPGA-Verilog HDL学习

Verilog HDL 的基本规范

标识符

标识符是程序代码中给模块、端口、信号等对象起的独一无二的名字。

标识符可以是任意一组字母、数字、美元符号和下划线的组合,且区分大小写。

标识符的第一个字符必须是字母或者下划线,因为以美元符号开始的标识符和系统任务保留字冲突。

转义标识符

转义标识符是由 “ \ ” 开始,以空白符( 空格、制表符、换行 )结束的特殊编程语言结构。

其提供一种可以表示任何可以打印的ASCII字符的方法。

空白符

空白符是指代码中的空格、制表符和换行或分页符。

如果这些空白符出现在字符串中则不可忽略。

注释

以 // 开始,从这里到这一行末尾的内容会被系统识别为注释。

以 /* 开始,*/ 结束,在两个符号之间的语句都是注释语句。

数据类型

  逻辑值

逻辑 0:表示低电平

逻辑 1:表示高电平

逻辑 X:表示未知,可能是高电平,也有可能是低电平

逻辑 Z:表示高阻态,外部没有激励信号,是一个悬空状态

数据类型

寄存器数据类型( reg )

寄存器表示一个抽象的数据存储单元,通过赋值语句可以改变寄存器的值

寄存器数据类型的关键字是 reg,默认初始值为 X

reg 类型的数据只能在 always 语句和 initial 语句中被赋值

如果该过程语句描述的是时许逻辑,即 always 语句带有时钟信号,则该寄存器变量对应为触发器

如果该过程语句描述的是组合逻辑,即 always 语句不带有时钟信号,则该寄存器对应为硬件连线

线网类型( wire、tri )

线网类型表示结构实体(例如门)之间的物理连线

驱动线网类型变量的元件有门、连续赋值语句、assign等

如果没有驱动元件连接到线网类型的变量上,则该变量为 Z

参数类型( parameter )

参数类型是一个常量,可以一次定义多个参数,参数与参数之间需要用逗号隔开

每个参数定义的右边必须是一个常数表达式

参数类型常用于定义状态机的状态、数据位宽和延迟大小

采用标识符来代表一个常量可以提高程序的可读性和可维护性

在模块调用时,可通过参数传递来改变被调用模块中已定义的参数

运算符

算术运算符

+     -     *     /     %

关系运算符

>     >=     <     <=     ==     !=

逻辑运算符

!     &&     ||

条件运算符

a ? b : c ( 如果 a 为真,则执行 b,否则执行 c )

位运算符

~     &     |     ^

移位运算符

<<     >>

拼接运算符

{a,b} ( 将 a 和 b 拼接起来,作为一个新信号 )

Verilog程序框架

  Verilog注释

以 // 开头的语句,表示从 // 开始到本行结束都属于注释语句

以 /* 开始,*/ 结束,在两个符号之间的语句都是注释语句

模块的结构

Verilog的基本设计单元是模块( block )

一个模块由两部分组成,一部分是描述接口,另一部分描述逻辑功能

 

 

 

 

 

 

 

 
 

原文:https://www.cnblogs.com/qu-yang/p/15355212.html

文章分类
百科问答
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐