题解 | #乘法与位运算#

乘法与位运算

https://www.nowcoder.com/practice/e41980b698624eb2b20c0d6e2bee7f45

`timescale 1ns/1ns

module dajiang13(
    input  [7:0]    A,
    output [15:0]   B
	);

//*************code***********//
// 关键: 使用移位来进行乘法操作
// 即:A[7:0]*8'b11111011 == A[7:0]*(9'b100000000-8'b00000100-8'b00000001)
// 而A[7:0]*8'b00000100 == {8'b0, A[7:0]} << 2 == {6'b0, A[7:0], 2'b0};
// 而A[7:0]*9'b100000000 == {8'b0, A[7:0]} << 8 == {A[7:0], 8'b0};
// 而A[7:0]*8'b00000001 == {8'b0, A[7:0]} << 0 == {8'b0, A[7:0]};

wire c;

assign {c, B[10:0]} = {A[2:0], 8'b0} - {1'b0, A, 2'b0} - {3'b0, A};
assign B[15:11] = A[7:3]-c;

//*************code***********//

endmodule

分成两段:[15:11] 以及 [10:0]

全部评论

相关推荐

Beeee0927:是缅甸园区吗
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-08 13:15
点赞 评论 收藏
分享
06-10 21:15
门头沟学院 Java
宁阿:好多这种没🧠的公司,他们估计都不知道毕业的人不能给安排实习岗
实习吐槽大会
点赞 评论 收藏
分享
Lorn的意义:你这标个前端是想找全栈吗?而且项目确实没什么含金量,技术栈太少了,边沉淀边找吧 现在学院本想就业好一点四年至少得高三模式两年加油吧
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-11 17:10
什么素质,我请问呢,要掉小珍珠了。。。又憋屈又生气
Steven267:这不喷回去?花钱是大爷,记住这个道理
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务