位置:51电子网 » 技术资料 » EDA/PLD

Verilog HDL算术操作结果的长度

发布时间:2008/5/28 0:00:00 访问次数:573

 算术表达式结果的长度由最长的操作数决定。在赋值语句下,算术操作结果的长度由操作符左端目标长度决定。考虑如下实例:

reg [0:3] arc, bar, crt;
reg [0:5] frx;
. . .
arc = bar + crt;
frx = bar + crt;

  第一个加的结果长度由bar,crt和arc长度决定,长度为4位。第二个加法操作的长度同样由frx的长度决定(frx、bat和crt中的最长长度),长度为6位。在第一个赋值中,加法操作的溢出部分被丢弃;而在第二个赋值中,任何溢出的位存储在结果位frx[1]中。
  在较大的表达式中,中间结果的长度如何确定?在verilog hdl中定义了如下规则:表达式中的所有中间结果应取最大操作数的长度(赋值时,此规则也包括左端目标)。考虑另一个实例:

wire [4:1] box, drt;
wire [1:5] cfg;
wire [1:6] peg;
wire [1:8] adt;
. . .
assign adt = (box + cfg) + (drt + peg);

  表达式左端的操作数最长为6,但是将左端包含在内时,最大长度为8。所以所有的加操作使用8位进行。例如:box和cfg相加的结果长度为8位。


 算术表达式结果的长度由最长的操作数决定。在赋值语句下,算术操作结果的长度由操作符左端目标长度决定。考虑如下实例:

reg [0:3] arc, bar, crt;
reg [0:5] frx;
. . .
arc = bar + crt;
frx = bar + crt;

  第一个加的结果长度由bar,crt和arc长度决定,长度为4位。第二个加法操作的长度同样由frx的长度决定(frx、bat和crt中的最长长度),长度为6位。在第一个赋值中,加法操作的溢出部分被丢弃;而在第二个赋值中,任何溢出的位存储在结果位frx[1]中。
  在较大的表达式中,中间结果的长度如何确定?在verilog hdl中定义了如下规则:表达式中的所有中间结果应取最大操作数的长度(赋值时,此规则也包括左端目标)。考虑另一个实例:

wire [4:1] box, drt;
wire [1:5] cfg;
wire [1:6] peg;
wire [1:8] adt;
. . .
assign adt = (box + cfg) + (drt + peg);

  表达式左端的操作数最长为6,但是将左端包含在内时,最大长度为8。所以所有的加操作使用8位进行。例如:box和cfg相加的结果长度为8位。


相关IC型号

热门点击

 

推荐技术资料

声道前级设计特点
    与通常的Hi-Fi前级不同,EP9307-CRZ这台分... [详细]
版权所有:51dzw.COM
深圳服务热线:13692101218  13751165337
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!