verilog语法规则(上)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
verilog语法规则(上)
1.Verilog分以下四个层次:
l 低阶交换模型:电路由开关与储存点所组成
l 逻辑间层次描述:⽤and ,or, buf , not 等
l 资料处理模型或暂存器转移层次:⽤于说明资料如何在暂存器中储存与传送。
使⽤assign(电路所需功能的指定描述)来描述。
l ⾏为模型:只需要考虑模组的功能,使⽤always ,for ,while ,case等
2.关键字keywords必须使⽤⼩写来表⽰。
3.不能⽤于电路合成的verilog 语法:
叙述:Delay, Initial, Repeat, Forever, Wait, Fork, Join, Event, time, Deassign, Force, Release, Primitive, Cese indentity, not identity operations,Rtuan,tranif0,tranif1,rtranif0,rtranif1
运算⼦:= = =,!= =,/,%
逻辑间型态:tranif1,tranif0,rtran,trtanif1,rtranif0等逻辑间型态
Triand,trior,tri0,tri1,tritrg等接线型
Nmos, pmos, coms ,rnmos ,rpmos ,rcmos等元件
Pullup,pulldown等讯号改变元件
其他不能⽤于电路合成的构建⽅式
1) 不能在模组内有另⼀个阶层式的名称: module
2) ifdef,endif,else等条件编译命令
verilog的时间控制:主要⽤途是设定某⼀个程序在特定的时间被执⾏。
事件:当⼀条接线wire,wor,wand或暂存器register的值被改变时就是⼀个事件
当模组的输⼊埠介绍到新的值时也是⼀个事件
可⽤于合成的verilog电路描述的事件基础时间控制,有两种:
1) 正规事件控制@当信号产⽣正缘posedge ,负negedge,转换或者值被改变时,叙述才会被执⾏。
Always @ (posedge clock)
2) 当有多个讯号或者事件触发⼀个叙述或⼀个内含多个叙述的区块
Always@(reset or gate or d)
Verilog的资料型态:wire,wand,wor,reg
Wire的特性:
1) 接线时连接硬体元件之连接线
2) 接线必须要被驱动才能改变它的内涵值
3) 接线描述的关键字为wire
4) 除⾮有被宣告成⼀个向量,否则接线是内定为⼀个位元的值,⽽且内定值是Z
Wand的特性:
1) 我们不能将多条讯号输出线同样连接到使⽤wire的某⼀条接线
2) 可以将多条讯号输出线同样连接到某⼀条wand,wor
Reg 的特性:
1) 可以直接给定⼀个数值,主要功能在于保持住电路中的某个值,不必像wire才能改变它的内涵值
2) 除⾮有被宣告成⼀个向量,否则接线是内定为⼀个位元的值,⽽且内定值是X
选⽤wire或reg的时机
1) wire必须配合assign来使⽤,且不能出现在always⾥
2) reg的使⽤⽅法为a=b格式,也就是必须放在always的区块描述⾥
3) wire,reg皆可定义为向量
4) 在verilog中内定的为WIRE,因此若在端与端的宣告中只有告input,output,inout,则为wire,如果需要将讯号的值储存起来就要宣告为reg
5) 在verilog中端的内部与外部的连接必须遵守下列规定:
Input能被net,或register推动,⽽⼀个输⼊端能够推动net型态的接线
output能被net,或register推动,⽽⼀个输⼊端能够推动net型态的接线
双向端能被net推动,⽽⼀个输⼊端能够推动net型态的接线
可⽤于电路合成的net,包括三种:wire,wor,wand。