赞
踩
大家好,我是Xiaojie,桂林电子科技大学计算机在读硕士研究生,这篇内容主要是给大家分享:XLINUX-FPGA开发-语法篇-Verilog HDL-Verilog HDL基础知识,接下来进入正题
空白符:空白符包括空格符(\b)、制表符(\t)、换行符和换页符。在编译和综合时,空白符被忽略。
注释符:
标识符:标识符(Identifier)被用来命名信号名、模块名、参数名等,可以是任意一组字母、数字、$符合和_(下划线)符号的组合。应该注意的是标识符的字母要区分大小写,并且第一个字符必须是字母或者下划线。
转义标识符(Escaped Idenrifiter):采用转义标识符可以在一条标识符中包含任何可打印的字符,转义标识符以""(反斜线)符号开头,以空白结尾(空白可以是一个空格、一个制表字符或换行符)
关键字:Verilog HDL语言内部已经使用的词称为关键字或保留字,他是Verilog HDL语言内部的专用词,是事先定义好的确认符,用来组织语言结构,这些关键字用户不能随便使用,所有关键字都是小写的。
常用的关键字:
数值
逻辑数值状态
整数及其表示 +/-’<base_format>
实数及其表示
物理数据类型:连线型、寄存器型和存储器型数据类型
信号强度表示数字电路中不同强度的驱动源,用来解决不同驱动强度存在下的赋值冲突:
连线型
wire和tri
wor和trior
寄存器型:
reg型是数据储存单元的抽象数据类型,其对应的硬件电路元件具有状态保持作用,能够存储数据,如触发器、锁存器等。
reg型变量常量用于行为级描述,由过程赋值语句对其进行赋值
算术操作符(加法(+);减法(-);乘法(*);除法(/);取模(%))
关系运算符
关系运算符是双目运算符,是对两个数进行比较的操作,包括大于(>)、小于(<)、大于等于(>=)和小于等于(<=)。在进行关系的比较时,如果成立则结果为1’b1,不成立的结果为0’b0。
相等关系操作符
操作符有等于"=="、不等于"!="、全等"==="、非全等"!==",它们比较的结果有三种,真"1"、假"0"和不定值"x"
"=="运算符的真值表
"==="运算符的真值表
逻辑运算符
逻辑运算符有三种,分别是逻辑与(&&)、逻辑或(||)、逻辑非(!)。逻辑与、逻辑或是双目运算符,逻辑非是单目运算符
若操作数中存在不定状态x,则逻辑运算的结果也是不定态
按位操作符
数字逻辑电路中,信号与信号之间的运算称为位运算,5种类型的位运算符:按位取反()、按位与(&)、按位或(|)、按位异或(^)、按位同或(^)
按位与运算符的真值表
按位或运算符的真值表
按位异或运算符的真值表
归约运算符
归约运算符按位进行逻辑运算,属于单目运算符。这类运算符运算的结果是产生1位逻辑值,因此称为缩位运算符。缩位运算符包括&(与)、|(或)、^(异或)以及相应的非操作~&、~|、~^、^~。
归约运算符的运算过程是:设a是一个4位的寄存器型变量,它的4位分别是a[0]、a[1]、a[2]、a[3]。当对a进行缩位运算时,先对a[0]和a[1]进行缩位运算,产生1位的结果,再将这个结果与a[2]进行缩位运算,再接着是a[3],最后产生1位的操作结果
移位运算符
移位运算符有两种:左移运算符(<<)、右移运算符(>>)。运算过程是将左边的操作数向左(右)移,所移动的位数由右边的操作数决定,然后用0来填补移出的空位。
条件运算符
表达式的形式:<条件表达式>?<表达式1>:<表达式2>
条件表达式的计算结果有真"1"、假"0"和未知态"x"三种,当条件表达式的结果为真时,执行表达式1,当条件表达式的结果为假时,执行表达式2。
连接和复制运算符
模块(module)是Verilog HDL语言的基本单元,它代表一个基本的功能块,用于描述某个设计的功能或结果以及与其他模块通信的外部端口
模块结构组成图:
一个模块主要包括:模块的开始与结束、模块端口定义、模块数据类型说明和模块逻辑功能描述。
至此,Verilog HDL中的基础知识就介绍完了,下一章介绍Verilig HDL中的程序设计语句和描述方式
当幸福来敲门
下面的是笔者的微信公众号,欢迎关注,会持续更新c++、python、tensorflow、机器学习、深度学习、计算机视觉、雷达原理、FPGA等系列文章。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。