集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 937|回复: 0

Verilog HDL的基本语法

[复制链接]
LYF 发表于 2021-8-5 14:46:36 | 显示全部楼层 |阅读模式
3.3.7.位拼接运算符(Concatation)
在Verilog HDL语言有一个特殊的运算符:位拼接运算符{}。用这个运算符可以把两个或多个信号的
某些位拼接起来进行运算操作。其使用方法如下:
{信号1的某几位,信号2的某几位,..,..,信号n的某几位}
即把某些信号的某些位详细地列出来,中间用逗号分开,最后用大括号括起来表示一个整体信号。见
下例:
{a,b[3:0],w,3’b101}
也可以写成为
{a,b[3],b[2],b[1],b[0],w,1’b1,1’b0,1’b1}
在位拼接表达式中不允许存在没有指明位数的信号。这是因为在计算拼接信号的位宽的大小时必需知
道其中每个信号的位宽。
位拼接还可以用重复法来简化表达式。见下例:
{4{w}} //这等同于{w,w,w,w}
位拼接还可以用嵌套的方式来表达。见下例:
{b,{3{a,b}}} //这等同于{b,a,b,a,b,a,b}
用于表示重复的表达式如上例中的4和3,必须是常数表达式。
3.3.8.缩减运算符(reduction operator)
缩减运算符是单目运算符,也有与或非运算。其与或非运算规则类似于位运算符的与或非运算
规则,但其运算过程不同。位运算是对操作数的相应位进行与或非运算,操作数是几位数则运算结果也
是几位数。而缩减运算则不同,缩减运算是对单个操作数进行或与非递推运算,最后的运算结果是一位
的二进制数。缩减运算的具体运算过程是这样的:第一步先将操作数的第一位与第二位进行或与非运
算,第二步将运算结果与第三位进行或与非运算,依次类推,直至最后一位。
例如:reg [3:0] B;
reg C;
C = &B;
相当于:
C =( (B[0]&B[1]) & B[2] ) & B[3];
由于缩减运算的与、或、非运算规则类似于位运算符与、或、非运算规则,这里不再详细讲述,请参照
位运算符的运算规则介绍。
3.3.9.优先级别
下面对各种运算符的优先级别关系作一总结。见下表:
30
第三章 Verilog HDL 基本语法
--------------------------------------------------------------------------------------------------------------------------------------------
------
优 先 级 别
! ~ 高 优 先 级 别
* / %
+ -
<< >>
< <= > >=
= = != = = = != =
&
^ ^~
|
&&
||
?: 低 优 先 级 别

3.3.10.关键词
在Verilog HDL中,所有的关键词是事先定义好的确认符,用来组织语言结构。关键词是用小
写字母定义的,因此在编写原程序时要注意关键词的书写,以避免出错。下面是Verilog HDL中使用的
关键词(请参阅附录:Verilog语言参考手册):
always, and, assign,begin,buf,bufif0,bufif1,case,casex,casez,cmos,deassign,
default,defparam,disable,edge,else,end,endcase,endmodule,endfunction,endprimitive,
endspecify, endtable, endtask, event, for, force, forever, fork, function,highz0,
highz1, if,initial, inout, input,integer,join,large,macromodule,medium,module,
nand,negedge,nmos,nor,not,notif0,notifl, or, output, parameter, pmos, posedge,
primitive, pull0, pull1, pullup, pulldown, rcmos, reg, releses, repeat, mmos, rpmos,
rtran, rtranif0,rtranif1,scalared,small,specify,specparam,strength,strong0, strong1,
supply0, supply1, table, task, time, tran, tranif0, tranif1, tri, tri0, tri1, triand,
trior, trireg,vectored,wait,wand,weak0,weak1,while, wire,wor, xnor, xor
注意在编写Verilog HDL程序时,变量的定义不要与这些关键词冲突.
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2024-11-15 19:48 , Processed in 0.057924 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表