官方论坛
官方淘宝
官方博客
微信公众号
点击联系吴工 点击联系周老师

三目运算符

发布时间:2023-04-13   作者:admin 浏览量:

需要看对应的视频,请点击视频编号:001100000065

1、本视频详解verilog语言中条件运算符之一的三目运算符以及使用方法。
2、这是ALTERA和VIVADO视频




5.8 条件运算符


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

        
条件表达式?真表达式:假表达式;
   
condition_expr?  true_expr : false_expr
   
   
   
   

其含义为:当“条件表达式”为真(即逻辑1),执行“真表达式”;当“条件表达式”为假(即逻辑0),

执行“假表达式”。即当condition_expr为真(即值为1),选择true_expr;如果condition_expr为假(值为0)

选择false_expr。如果condition_expr

结果将是按以下逻辑true_exprfalse_expr按位操作的值: 000111,其余情况为

应用举例如下:


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

对应硬件电路图如下所示。



上一篇:移位运算符
下一篇:if和case
   拓展阅读