verilog运算符

verilog HDL中运算符和优先级

一、算数运算符

verilog HDL中常用的运算符主要有五种,分别是加法(+)、减法(-)、乘法(*)、除法(/)、取模(%)。这五种运算符都属于双目运算符。

有符号数与无符号数的使用的注意在设计中是重要的

无符号数值一般储存在线网,reg型变量、整型数

有符号数值一般储存在整型变量,十进制形式整数,有符号的reg型寄存器变量,有符号线网中

算数运算符示例:

module arith_tb;reg[3:0]a;reg[2:0]b;initialbegina = 4'b1111;b = 4'b011;$display("%b", a*b);        //做乘法运算,结果为4'b1101$display("%b", a/b);        //做除法运算,结果为5,为4'b0101$display("%b", a+b);        //加法运算,结果为4'b0010$display("%b", a-b);        //减法运算,结果为4'b1100$display("%b", a%b);        //取模运算,结果为4'b0000end
endmdule

二、关系运算符

关系运算符也是双目运算符(比较大小)

module rela_tbreg[3:0]a,b,c,d;initialbegina = 3;b = 6;c = 1;d = 4'hx;$display(a<b);        //结果为真,为1$display(a>b);        //结果为假,为0$display(a <= c);     //结果为假,为0$display(d <= a);     //结果为不定值,为xend
endmodule

三、相等关系运算符

相等关系运算符是对两个操作数进行比较,比较的结果有三种,即真(1),假(0),不定值(x)。verilog HDL中有四种相等关系运算符号:等于(==)、不等于(!=)、全等(==)、非全等(!==)。

module equal_tb;reg[3:0]a,b,c,dinitialbegina = 4'b0xx1;B = 4'b0xx1;c = 4'b0011;d = 2'b11;$display(a==b);        //结果为不确定(X)$display(c==d);        //结果为真(1)$display(a===b);        //结果为真(1)$diaplay(c===d);        //结果为假(0)end
endmodule

四、逻辑运算符

逻辑运算符有三种,分别是逻辑与(&&)、逻辑或(丨丨)、逻辑非(!)

逻辑运算符的真值表

a b !a !b a&&b a||b
1 1 0 0 1 1
1 0 0 1 0 1
0 1 1 0 0 1
0 0 1 1 0 0

五、按位运算符

信号与信号之间的运算称为位运算。VHDL提供了一下五类型的位运算符:

module bit_tb;reg[2:0]a;reg[4:0]b;initialbegina = 5b'101;b = 5b'11101;$display("%b", ~a);         //结果为5'b11010  按位取反$display("%b", ~b);         //结果为5'b00010  按位取反$display("%b", a&b);        //结果为5'b00101  按位与$display("%b", a|b);        //结果为5'b11101  按位或$display("%b", a^b);        //结果为5'b11000  按位异或end
endmodule

六、归约运算符

归约运算符按位进行逻辑运算,由于这一类运算符的结果是产生1位逻辑值,因此被形象得称为缩位运算符。

module cut_tb;reg[5:0]a;initalbegina = 6'b101011;$display("%b", &a);        //结果为 1'b0$display("%b", |a);        //结果为 1'b1$display("%b", ^a);        //结果为 1'b0endendmodule

七、位移运算符

位移运算符有两种:左移位运算符(<<)、右移位运算符(>>),用0来填补空位

module shift_tbreg[5:0]a,b,c,d;reg[7:0]e;initialbegina = 6'b101101;b = a<<2;c = a>>3;d = a<<7;e = a<<2;$display("b%", b);        //结果是6'b110100$display("b%", c);        //结果是6'b000101$display("b%", d);        //结果是6'b000000$display("b%", e);        //结果是8'b10110100end
endmodue

八、条件运算符

条件运算符(?:)是VHDL中唯一一个三目运算符,表达形式如下:

<条件表达式>?<表达式1>:<表达式2>

module mux2(in1,in2,sel,out);input[3:0]in1,in2;input seloutput[3:0]out;wire[3:0]out;assign out = (!sel)?in1:in2;        //sel为0时out等于in1,反之等于in2
endmodule

描述了一个2选1的数据选择器,如下为电路结构。

若sel端为不定态x,则out端由in1和in2按位运算结果得出。若in1 = 4‘b0011 , in2 = 4'b0101,则按照真值表得出 out = 4’b0xx1

九、连接和复制运算符

module con_rep_tb;reg[2:0]a;reg[3:0]b;reg[7:0]c;reg[4;o]d;reg[5:0]e;initialbegina = 3'b101;b = 4'b1110;c = {a, b};               //连接操作d = {a[2:1], b[2:0]};     //连接操作e = {2{a}};               //复制操作$diaplay("%b", c);        //结果为:8'b01011110$diaplay("%b", d);        //结果为:5'b10110$diaplay("%b", e);        //结果为:6'b101101end
endmodule

Verilog语言入门学习(3)相关推荐

  1. c语言10个人 三向成绩,C语言入门学习精华:这样学习C语言最有效

    C语言入门学习精华:这样学习C语言最有效 c语言死了吗? 本材料描述了使用C语言的高级技能,并努力将您的C语言能力从"基本"提升到"高级".然而,学习态度比学习 ...

  2. c语言入门自学免费app,C语言入门学习最新版下载-C语言入门学习app手机版v1.0.2 安卓版-腾飞网...

    C语言入门学习app手机版是一款c语言编程自学软件,零基础也可以学习,里面有海量教学视频,针对c语言不同程度的讲解都囊括其中.随时随地学习编程都可以,不用担心自己没有基础.还支持在手机上敲代码编程哦. ...

  3. 郑州计算机c语言培训机构,c语言入门学习选郑州哪家计算机专业学校

    C语言是一门稀缺的贵族语言,会C语言的被IT界高看,C语言的地位很高,学C语言确实难,但是有正确的方法成为C程序员是非常有效的,会C语言相当于拥有了一定地位,未来非常有前景,那么如何入门C语言呢?选择 ...

  4. c语言入门自学手机版,c语言入门自学app下载-C语言入门学习 安卓版v1.0.2-PC6安卓网...

    C语言入门学习app是一款C语言零基础自学软件.C语言入门自学app提供海量精品学习资源,从小白入门到基础进阶都有,帮你轻松学习编程. 软件介绍 C语言入门学习app是一款专业的编程入门学习App,致 ...

  5. c语言入门自学手机版,C语言入门学习app下载-C语言入门学习app最新版下载 V1.0.2-友情手机站...

    C语言入门学习app是一款0基础自学软件,这里有着丰富C语音相关课程学习,大家在这里是可以便捷搜索查找,随时都是可以找到适合感兴趣课程学习,都是一些优质课程知识提供大家,学员在这里是可以高效学习,海恩 ...

  6. c语言入门自学手机版,C语言入门学习软件下载-C语言入门学习手机版v1.0.2 - 起点软件园...

    C语言入门学习是一款最新推出上线于安卓手机平台的专业编程学习软件,C语言入门学习app收录了海量入门视频课程,清晰易懂的详细讲解专为刚入门学习C语言的小白量身打造,不同章节都有相应的习题,根据习题成绩 ...

  7. R语言入门学习——Rstudio的安装与学习

    R语言入门学习--Rstudio的安装与学习 1.Rstudio下载 2.Rstudio安装 3.Rstudio功能和简单程序 1.Rstudio下载 下载地址:https://rstudio.com ...

  8. Verilog语言入门——边学边练

    第一次写博客,记录北京交通大学李金城的Verilog语言入门 参考复制了一些代码,其他代码均为自敲 Verilog语言入门--边学边练 前言 一.基本逻辑门代码设计与仿真 1.1反相器 1.2与非门 ...

  9. lua语言入门学习(二)lua语言的特点及注意事项

    lua语言入门学习 lua语言的特点及注意事项 文章目录 lua语言入门学习 lua语言的学习地址 一.lua语言特点 1.注释 2.全局变量和局部变量 3.lua数据类型 4.字符串类型 5.多变量 ...

最新文章

  1. 【风控策略】(未完成)策略规则与模型评分
  2. SAP日志log:SLG0,SLG1
  3. mess系统可以读取opc服务器,C3. Messages
  4. [转载] python中numpy库的使用举例
  5. 移动互联软件技术与实践demo
  6. html手机表白弹窗,怎么制作抖音弹窗表白代码 制作抖音弹窗表白代码的教程
  7. Form表单的重置按钮(type=“reset“)无法重置隐藏Input输入框的值
  8. UART通信协议知识入门
  9. 16种常用的数据分析方法-列联分析
  10. ae 渲染 计算机内存不足,AE内存不足怎么办? After Effects内存不足【解决方法】...
  11. php 电子签字,电子签名和电子签字的区别
  12. 大数据在金融行业的应用
  13. Win10切换用户,开始菜单,应用都不见了
  14. 计算机课堂教学改革培训心得体会,课堂教学改革心得体会范文(精选6篇)
  15. Mac中的番茄钟Just Focus——保持专注就对了
  16. sed在shell脚本中引用变量
  17. vs按f5没反应_NBA直播:灰熊vs火箭 死亡五小战过关斩将,本战势在必得
  18. Linux 调试之strace
  19. 【C++实验】模拟实现一个ATM自助存取款机
  20. java 数学公式解析框架有哪些_java程序员该如何进阶?这份java中高级核心知识全面解析请收好...

热门文章

  1. 个人计划日程提升系统APP的设计与实现
  2. centos java 安装路径_Centos7下查询jdk默认安装路径
  3. 互联网时代内容分发四宗罪
  4. 2021AIOps挑战赛|基于移动通信网络运维中的多指标时空序列预测
  5. CNN入门实战:我如何把准确率从86% 提高到99%(中)
  6. 2020我的上半年好书推荐
  7. 学计算机男自编对联,学习对联大全
  8. 模型评价指标之ROC、AUC和GAUC
  9. 字符串的原样输入输出python_Python字符串输入输出的详细介绍
  10. oracle内连接简写,【Oracle】——内连接、外连接