|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
我们都知道booth2算法是要讨论相邻高位,本位,相邻低位的,其中得到的情况结果有0、B、2B、-B、-2B,像-B的实现就是取反加一,即~B+1;-2B的实现方法是(~(B<<1)) + 1的,最近看了一个例子,怎么也看不懂,例子部分代码如下:
- always @ (y or x) begin
- symb5=1'b0;
- case(y[9:7])
- 3'b000: tpp5=17'b0;
- 3'b001,
- 3'b010: tpp5={x[15],x};
- 3'b011: tpp5={x,1'b0};
- 3'b100: begin
- tpp5=~{x,1'b0};
- symb5=1'b1;
- end
- 3'b101,
- 3'b110: begin
- tpp5=~{x[15],x};
- symb5=1'b1;
- end
- 3'b111: tpp5={1'b0,16'b0};
- endcase
- end
复制代码
根据作者写的代码,其中100、101、110这三种情况为什么都没有加 1 呢,而最后他总的代码仿真结果又是正确的,想了好久,不出其解,请坛友支支招,在此谢谢了! |
|