明德扬论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

微信扫一扫,快捷登录!

查看: 6028|回复: 0

【FPGA至简设计原理与应用】第一篇第三章硬件描述语言Verilog第5节三目运算符

[复制链接]
发表于 2020-9-7 19:01:06 | 显示全部楼层 |阅读模式

马上注册,看完整文章,学更多FPGA知识。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
本案例的编号为:001500000142,如果有疑问,请按编号在下面贴子查找答案:MDY案例交流【汇总贴】_FPGA-明德扬科教 (mdy-edu.com)
本文为明德扬原创及录用文章,转载请注明出处

大家好,近期我们会连载《FPGA至简设计原理与应用》一书,有兴趣的同学可以学习,也希望大家可以对我们的书提出宝贵的意见和建议。


FPGA至简设计原理与应用》书籍连载索引目录

http://www.fpgabbs.cn/forum.php?mod=viewthread&tid=989


读过的朋友可积极在贴后留言,书籍正式出版时,我们会从留言者中挑选20位幸运读者,幸运读者可获潘老师亲笔签名书籍一本。

注:手机浏览可能格式会乱,建议用电脑端进行浏览。




5.8 条件运算符

本文档编号:001100000061
需要看对应的视频,请点击视频编号001100000065
1. 本节主要进行组合逻辑的介绍,包括:程序语句(assign语句、always语句),数字进制(二进制、不定态、高阻态),算数运算符(加、减、乘、除运算符),逻辑运算符(逻辑与、或、非运算符),按位逻辑运算符(单目按位与、或、非运算符,双目按位与、或、异或运算符),关系运算符,移位运算符(左移、右移运算符),条件运算符(三目运算符、if语句、case语句、选择语句等),拼接运算符;
2. ALTERA和VIVADO文档



5.8.1三目运算符
Verilog HDL语法中条件运算符(?:)带有三个操作数(即三目运算符),其格式一般表达为:

        
条件表达式?真表达式:假表达式;
   
condition_expr?  true_expr : false_expr
   
   
   
   
其含义为:当“条件表达式”为真(即逻辑1),执行“真表达式”;当“条件表达式”为假(即逻辑0),执行“假表达式”。即当condition_expr为真(即值为1),选择true_expr;如果condition_expr为假(值为0),选择false_expr。如果condition_exprx z ,结果将是按以下逻辑true_exprfalse_expr按位操作的值: 000111,其余情况为x
应用举例如下:
1
  
2
  
3
  
4
regstut
  
always@*begin
  
r =s ? t : u ;
  
end
在上面的表达式中s如果为真,则把t赋值给r;如果s为假,则把u赋值给r
对应硬件电路图如下所示。

条件运算符的使用有以下几点需要注意的地方:
1)条件表达式的作用实际上类似于多路选择器,如图1.3-8所示。同时,其可以用if-else语句来替代。

2)条件运算符可用在数据流建模中的条件赋值,这种情况下条件表达式的作用相当于控制开关。例如:
1
  
2
wire[2:0] student ;
  
assign  student = Marks >18 ?Grade_AGrade_C ;
其中,表达式Marks > 18如果为真,则Grade_A赋值为student;如果Marks > 18为假,则Grade_C赋值为Student
对应硬件电路图如下所示。

3)条件运算符也可以嵌套使用,每个“真表达式”和“假表达式”本身就可以是一个条件表达式。例如:
1
  
2
reg OUT,M,CTL,CLT,A,B,C,D;
  
  assign OUT = M = = 1?CTL  ? AB):(CLT ? CD);
上面代码所代表的含义是:表达式M == 1如果为真,则判断CTL是否为真,如果CTL为真就将A赋值给OUT,如果为假就将B赋值给OUT;如果M = = 1为假,则判断CLT是否为真,如果CLT为真就将C赋值给OUT,如果为假就将D赋值给OUT
对应硬件电路图如下所示。






您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|MDYBBS ( 粤ICP备16061416号 )

GMT+8, 2024-4-20 21:35 , Processed in 0.049369 second(s), 21 queries .

Powered by Discuz! X3.4

本论坛由广州健飞通信有限公司所有

© 2001-2019 Comsenz Inc.

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