0001-Verilog语言学习笔记/20170314

1、线型变量没有存储能力,需要被持续驱动;
2、连续赋值使用关键词assign;
3、过程赋值的形式是<寄存器变量=A<表达式= 其中<寄存器变量=必须是寄存器型或存储器型变量过程赋值只允许出现在initial和always结构块中;
4、initial和always结构多用于描述时序逻辑(有限状态自动控制);
5、过程赋值改变一个寄存器的状态,即时序逻辑;而连续赋值用来描述组合逻辑,连续赋值语句驱动线型变量,输入操作数的值一发生变化,就重新计算并更新它所驱动的变量。掌握这一区别很有必要

6、Verilog语言的三种描述方法:
1)结构性描述:通过实例进行描述的方法;
2)数据流型描述:是一种描述组合功能的方法,用assign连续赋值语句来实现;连续赋值语句完成如
下的组合功能:等式右边的所有变量受持续监控,每当这些变量中有任何一个发生变化,整个表达式被重新赋值并送给等式左端。这种描述方法只能用来实现组合功能。
3)行为型描述:高级语言的方法;通用性和有效性;关键词是always,一旦赋值给定,仿真器便等待下一次变化,有无限循环之意;

7、 语言中词法标识符的类型有以下几种:
1)间隔符:空格字,符制表符,换行以及换页符。这些字符起到与其他词法标识符相分隔的作用外科医被忽略,但是在字符串中空白和制表符会被认为是有意义的字符。
2)注释符:1>单行// 2>多行/* */ 段注释不允许嵌套
3)算子:一元,二元,三元算子。
4)数值:0 1 x z
常数可以划分为整数和实数两种,2,8,10,16进制。格式是:<位宽’><基数><数值>
a、数值常量中的下划线_是为了增加可读性可以忽略
b、在给寄存器型数据赋值时有大小的负数并不使用符号扩展的方法生成
 c、数值常量中“?”表示高阻状态
实数用双精度浮点型数据来描述,可以用小数和科学计数法。

实数可以转化为整数,根据四舍五入的原则,而不是截断原则。当将实数赋给一个整数时,这种转换自行发生。

5)字符串:双引号字符串序列。在表达式和赋值语句中字符串用作算子,且要转换成无符号整型常量,用一串8 位二进制ASC II码的形式表示,每一个8位二进制ASC II码代表一个字符。例如字符串
“ab”等价于 16’h5758

字符串变量是寄存器型变量,它具有与字符串的字符数乘以8相等的位宽

6)标识符:标识符是赋给对象的唯一名字,用这个标识符来提及相应的对象;字母,数字,$,下划线_,但必须以字母或下划线开头;区别大小写。

逃逸标识符,以反斜杠“\”开始,以空格结束。反斜杠和空格不属于名称的一部分。

7)关键词
关键字是预先定义的非逃逸标识符用来定义语言结构所有的关键字都是用小写方式定义的。

系统名称:
系统任务标识符:
1>系统任务和函数的标准集合
2>使用PLI定义
3>通过软件工具定义

系统功能可以执行不同的操作:实时显示当前仿真时间,显示/监视信号的值,暂停仿真,结束仿真

8、数据类型:
物理划分:线型和寄存器型,要设置位宽,缺省值为1位。

线型数据包括wire wand wor等几种类型。在被一个以上激励源驱动时,不同的线型数据有各自决定其最终值的分辨方法。

输入端口:线型/寄存器型->线型
输出端口:线型/寄存器型->线型
输入输出端口:线型->线型
1>只能由线型/寄存器型驱动线型
2>使用assign语句被连续赋值的变量必须是线型的;在always或initial程序模块(行为模块)中
“=”赋值的变量必须是寄存器型的。

抽象数据类型分:

  • integer整型:在算数运算中整型数据被视为二进制补码形式的有符号数,而寄存器型数据当做无符号数来处理,除此之外整型数据与32位寄存器数据在实际意义上相同。
  • time时间型:64位无符号数
  • real型 :实型数据在机器码表示法中是浮点型数值 。
  • event型:它是一种特殊的变量类型,不具有任何值,作用是使模块不同部分的事件在时间上同步。
  • parameter参数型:参数型数据是被命名的常量

9、运算符和表达式
与C语言有一个例外:Verilog中没有1++和1–运算符
1】算数运算符:+ - * / %
在进行整数除法运算时结果值要略去小数部分,只取整数部分;而进行取模运算时,结果的符号位采用模运算式里第一个操作数的符号位。
2】符号运算符
这类运算符只是将正号+ 和负号-赋给单个的操作数
3】关系运算符:所有的关系运算符有着相同的优先级别。关系运算符的优先级别低于算数运算符的优先级别。
1.>
2.>=
3.<
4.<=
5.==
6.!=
7.===实例相等
8.!==
4】逻辑运算符:逻辑运算符中,&&和||的优先级别低于关系运算符,!高于算算术运算符。
1.&&逻辑与
2.||逻辑或
3.!逻辑非
5】位逻辑运算符:如果操作数的长度不相等,较短的操作数将用0来补位。
1.~非
2.&与
3.|或
4.^异或
5.^~同或
6.~&与非
7.~|或非
6】一元的约简运算符:对单个操作数进行与或非地推运算
7】其他运算符
1。移位运算符:进行移位运算时应注意移位前后变量的位数。
2。条件运算符
条件运算符(:?)有三个操作数,第一个操作数时TRUE,算子返回第二个操作数,否则返回第三个操作数,条件算子可以用来实现一个选择器。嵌套的条件算子可以用来实现夺路选择。
3。并接运算{};
其使用方法是把某些信号的某些位详细地列出来,中间用逗号分开,最后用大括号括起来表示一个整体信号。
8】运算符优先级排序

10、控制结构

猜你喜欢

转载自blog.csdn.net/weichen001122/article/details/62045304