verilog的基本语法
来源:互联网 发布:openstack云计算入门 编辑:程序博客网 时间:2024/05/29 14:31
verilog的基本语法:
1:定义一个数据的,定义其位宽和和进制,省略位宽默认32位,省略进制默认十进制,数据之间可以添加下划线
2: X表示不确定的值,Z为高阻态
3:parameter参数类型,可以定义为不变的数据,也可以参数的传递
4:定义字符串时通用C语言的部分字符串,如\n,\t等
5:变量数据类型主要分为网络类型和寄存器类型。网络类型不能存储数据,寄存器类型可以存储数据。(网络类型:wire和tri主要用作连接单元的连线;Supply0对地建模,supply1对电源建模。Wor和trior实现线或功能;wand和triand实现线与功能;trireg可以存储数值和电容节点的建模;tri0和tri1用于线逻辑的建模)(寄存器类型:reg型为可定义的无符号整数变量;memory是reg型的一个数组;interger型是32位有符号整数变量)
6:wire型信号可以用于任何方程式的输入,也可作为assign语句或者实例元件的输出。
Reg型数据常用作表示always模块内的自定信号,常代表触发器。
7:逻辑运算符分为数值的与或非也分为按位运算符。
缩减运算符依次高位和地位实现逻辑运算。
关系运算符两个数据进行关系运算,输出真假和不确定X
等式运算符分为逻辑等和严格等。逻辑等输出01X,将X,Z视为不确定的数;关系等分为01,将X,Z视为两种符号。
位拼接运算符将两个数据的某几位拼接在一起
三目运算符相当于if和else,
8:赋值语句分为阻塞赋值和非阻塞赋值
阻塞赋值也就是说它阻塞了其他赋值语句的执行,只能进行一步一步的执行, a=b
非阻塞赋值允许其他verilog语句同时进行操作,a<=b
当使用always时,阻塞赋值来描述组合逻辑,而非阻塞赋值描述时序逻辑。在一个always块中不要同时使用阻塞逻辑和非阻塞逻辑
9:verilog中有0 1 X Z四种逻辑值,逻辑值为1则按照真处理,若为0 X Z则按假处理,跳过if中的语句。
在if嵌套中,else总是和它最上面的if来匹配。
Case语句中的case和endcase成对出现。case语句分为case语句,以常量为参考;casez则以高阻态为参考,当有一个Z是,其结果为真;casex则以高阻态和不确定值为参考,当有一个为Z或X时,结果为真。
采用‘primitive’对于case的约束主要分为FULL_CASE和PARALLEL_CASE。FULL_CASE约束就是让编译器默认case语句为完全case。
10:verilog分为四种循环的方式,其中repeat,forever,while只能用于仿真,不能形成电路。
Repeat规定循环几次就循环几次,需借助begin和end进行开始和结束。
Forever循环常用于产生周期性波形。可以进行终止后执行forever之后的语句。
While是用作一定条件下的循环,满足条件是连续执行,当条件不满足时进入while之后的程序。
For循环部分可以进行仿真和综合,电路复杂。
11: 块语句以及过程块
块语句有begin_end和fork_join。
Begin_end块内可以定义局部变量,其次块内使用的语句可以被其他语句调用。
Fork_join块内语句将同时开始并行执行,按照时间顺序,排在最后一个语句执行完之后跳出该程序块。
块内部赋值有assign的连续赋值语句,当右边的值发生变化时,计算右边的表达式的值,并将结果付给左边的变量。具有组合逻辑的特征。
Always块可以描述组合逻辑也可以描述时序逻辑。Always块主要由时序控制条件和执行语句构成。
12:抽象级别的描述主要分为系统级,算法级,RTL级,门级和开关级。
门级描述就是利用verilog内置的基本门级元件以及他们之间的连接来构筑逻辑电路的模型。
行为级描述关注的是逻辑电路的输入/输出的因果关系,即在任何输入条件下产生何级输出,描述的是一种行为特征。
13:组合逻辑通过assign实现。
- Verilog的基本语法
- verilog的基本语法
- Verilog HDL的基本语法
- verilog HDL基本语法笔记
- Verilog学习基本语法篇
- Verilog基本语法总结(一)
- Verilog基本语法——模块
- 可综合的verilog语法
- Verilog语法最常错的点
- verilog打印 数据类型的语法
- Verilog语法
- Verilog基本语法——数据类型及常量集合
- Verilog基本语法——运算符和表达式
- ultraedit 中verilog的语法高亮
- Verilog的模块与端口 语法
- Verilog的模块与端口 语法
- FPGA第六篇:Verilog语法的基本概念
- Verilog的模块与端口 语法
- Android配置NDK(不用Cygwin)
- Cocos2d-x教程(10)-CCProgressTimer实现页面加载进度条效果
- 关于SetupDiEnumDeviceInfo枚举设备返回 缓冲区无效 解决办法
- javaScript身份证严格验证
- jdom解析xml文件简单实例
- verilog的基本语法
- 3.2.4 模式匹配元组
- ubuntu root 用户登陆声音无法调节大小问题解决
- linux 下加载bou2_4p.shp后乱码问题
- cocos2D场景切换方式总汇
- Http请求
- MyBatis拦截器动态修改SQL语句及参数值(场景:查询中字段值中特殊字符自动转义)
- C/C++数据对齐
- JAVA反射机制