【NB】2.4 Verilog 表达式

出黑q375629371   ·   发表于 6个月前   ·   编程代码

表达式
表达式由操作符和操作数构成,其目的是根据操作符的意义得到一个计算结果。表达式可以在出现数值的任何地方使用。

例如:
实例
a^b ; //a与b进行异或操作
address[9:0] + 10'b1 ; //地址累加
flag1 && flag2 ; //逻辑与操作
20 Reply   |  Until 6个月前 | 2403 View

yuforum
发表于 6个月前

操作数
操作数可以是任意的数据类型,只是某些特定的语法结构要求使用特定类型的操作数。

评论列表

  • 加载数据中...

编写评论内容

安好
发表于 6个月前

操作数可以为常数,整数,实数,线网,寄存器,时间,位选,域选,存储器及函数调用等。

评论列表

  • 加载数据中...

编写评论内容

syf1313113
发表于 6个月前

实例
module test;

//实数
real a, b, c;
c = a + b ;

//寄存器
reg [3:0] cprmu_1, cprmu_2 ;
always @(posedge clk) begin
cprmu_2 = cprmu_1 ^ cprmu_2 ;
end

//函数
reg flag1 ;
flag = calculate_result(A, B);

//非法操作数
reg [3:0] res;
wire [3:0] temp;
always@ (*)begin
res = cprmu_2 – cprmu_1 ;
//temp = cprmu_2 – cprmu_1 ; //不合法,always块里赋值对象不能是wire型
end

endmodule

评论列表

  • 加载数据中...

编写评论内容

2430658640
发表于 6个月前

操作符
Verilog 中提供了大约 9 种操作符,分别是算术、关系、等价、逻辑、按位、归约、移位、拼接、条件操作符。

评论列表

  • 加载数据中...

编写评论内容

py2815
发表于 6个月前

大部分操作符与 C 语言中类似。

评论列表

  • 加载数据中...

编写评论内容

hcat
发表于 6个月前

同类型操作符之间,除条件操作符从右往左关联,其余操作符都是自左向右关联。

评论列表

  • 加载数据中...

编写评论内容

北斗星的爱
发表于 6个月前

圆括号内表达式优先执行。例如下面每组的 2 种写法都是等价的。

评论列表

  • 加载数据中...

编写评论内容

1008612
发表于 6个月前

A+B-C ;
(A+B)-C ;

A ? B : C ? D : F ;
A ? B : (C ? D : F) ;

(A ? B : C) ? D : F ;
A ? B : C ? D : F ;

评论列表

  • 加载数据中...

编写评论内容

神麤詭末
发表于 6个月前

不同操作符之间,优先级是不同的。下表列出了操作符优先级从高至低的排列顺序。当没有圆括号时,Verilog 会根据操作符优先级对表达式进行计算。

评论列表

  • 加载数据中...

编写评论内容

呸友
发表于 6个月前

为了避免由操作符优先级导致的计算混乱,在不确定优先级时,建议用圆括号将表达式区分开来。

评论列表

  • 加载数据中...

编写评论内容
LoginCan Publish Content
程序耗时 0.0431秒 内存:1390KB