Verilog求相反数
来源:互联网 发布:agv调度系统算法 编辑:程序博客网 时间:2024/06/08 10:24
条件:数据data为signed
目的操作:将数据取相反数。即8变-8,-7变7。
误区:仅仅是“取反加1”
误区操作的后果: 若data=1000,表示为-8,取反加一后仍为1000,仍为-8
module minusdata; reg clk; reg [3:0]cnt; wire [3:0]minuscnt; wire [3:0]notadd1cnt; wire [4:0]extcnt; initial begin cnt = 4'd0; clk = 0; forever #10 clk = !clk; end always @(posedge clk) begin cnt <= cnt + 1'b1; end assign minuscnt = -cnt; assign notadd1cnt= ~cnt + 1'b1; assign extcnt = -{cnt[3],cnt}; //求相反数,符号位扩展必须 endmodule
ModelSim仿真图如下:
所以,从该实验得出的结论如下,
1, verilog中直接加“负号”,等效于讲数据取反加一。
2, 位宽为N的signed data的范围为,-2^( N - 1) ~ 2^( N - 1) – 1, 比如说4bit signed data范围为-8 到7。若想取相反数,必须符号位扩展1bit,然后取反加1。
另外一种途径,不扩展,对-8做特殊处理,讲其近似为7。
0 0
- Verilog求相反数
- 求相反数。
- 求“相反数”
- 位操作求相反数
- 位运算求相反数
- STL实例:求相反数
- 相反数
- 相反数
- 相反数
- 相反数
- 相反数
- 相反数
- 相反数
- 相反数
- 求一个数的相反数算法
- 重复刷新相反数求最大和
- 求一个数的相反数的补码
- verilog求阶乘
- 技术的正宗与野路子
- 利用validate进行表单校验
- 修改Android Studio默认缓存文件夹
- Linux简介
- Android studio工程分析笔记
- Verilog求相反数
- eclipse下Tomcat使用问题小结汇总
- 什么是离散化?
- [hdp2.4系列] ambari安装配置
- 1014. 福尔摩斯的约会 (20)
- Android Studio常用插件
- GOF-设计模式之ABSTRACT FACTORY(抽象工厂),BUILDER(生成器),FACTORY METHOD(工厂方法),PROTOTYPE(原型)以及SINGLETON(单例)
- kettle 资源库的一些问题
- 锤子发布会的那些梗-2016年10月18号