Verilog的带符号数的移位


FPGA中对2的整数倍乘或者除,用移位的方式是效率最高的,对应到Verilog语言的移位操作有右移(除)和左移(乘),>>和>>>,<<和<<<区分,根据官方的说法:两个号表示无符号操作,就是认为需要移位的数都是正数!三个号表示有符号数操作,有符号数一样分正数和负数,也就是说,正数的>>>和>>结果其实是一样的,负数的>>>和>>操作结果是不一样的!!!所以要区分清楚了。

 
在进行有符号数运算的时候,最好像如下这样写:
reg signed [3:0] a;
reg signed [3:0] b;
reg signed [3:0] c;
 always @(posedge clk)
c<=(a+b)/2;
这样就可以避免不必要的错误, /2的操作,verilog会根据定义的符号数,自动综合成>>或>>>。
点击数: 34   打印  添加到收藏   发布时间: 2020-09-23




上一篇:先困难还是先简单
下一篇:滑动平均较传统平均算法的优势





» 相关内容
  PID程序中DAC输出范围的限定区..
  MCU中断编写注意事项
  数据校验原理及简化实现
  一片顶两片的LDO
  三步实现ModelSim仿真Quartus..
  数字下变频的理解
  匿名IMU版本4.34的下位机协议..
  轻量级数据库SQLite大小的说明
  BUFF的有效性理解
  PHP页面顶端出现空白问题
  高速数据采集的一些关键点
  软硬件通用加密思路-针对PC端..
  隔离变压器的作用
  GSM下Unicode和中文字符转码
  Teamview远程ID和PWD自动回传..