题解 | #编写乘法器求解算法表达式#

编写乘法器求解算法表达式

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

`timescale 1ns/1ns

module calculation(
	input clk,
	input rst_n,
	input [3:0] a,
	input [3:0] b,
	output [8:0] c
	);
wire[8:0]c0,c1;
reg [8:0]c_reg;
mul u0(
	.clk(clk),
	.rst_n(rst_n),
	.a(a),
	.b(12),
	.c(c0)
);
mul u1(
	.clk(clk),
	.rst_n(rst_n),
	.a(b),
	.b(5),
	.c(c1)
);
always@(posedge clk or negedge rst_n)begin
	if(!rst_n)begin
		c_reg<=0;
	end
	else begin
		c_reg<=c0+c1;
	end
end
assign c=c_reg;
endmodule

module mul(
	input clk,
	input rst_n,
	input [3:0]a,
	input [3:0]b,
	output reg[8:0]c

);
always@(posedge clk or negedge rst_n)begin
	if(!rst_n)begin
		c<=0;
	end
	else begin
		case(b)
		4'b0000:c<=0;
		4'b0001:c<=a;
		4'b0010:c<={a,1'b0};
		4'b0011:c<={a,1'b0}+a;
		4'b0100:c<={a,2'b0};
		4'b0101:c<={a,2'b0}+a;
		4'b0110:c<={a,2'b0}+{a,1'b0};
		4'b0111:c<={a,2'b0}+{a,1'b0}+a;
		4'b1000:c<={a,3'b0};
		4'b1001:c<={a,3'b0}+a;
		4'b1010:c<={a,3'b0}+{a,1'b0};
		4'b1011:c<={a,3'b0}+{a,1'b0}+a;
		4'b1100:c<={a,3'b0}+{a,2'b0};
		4'b1101:c<={a,3'b0}+{a,2'b0}+a;
		4'b1110:c<={a,3'b0}+{a,2'b0}+{a,1'b0};
		4'b1111:c<={a,3'b0}+{a,2'b0}+{a,1'b0}+a;
		default:c<=0;
		endcase
	end

end
endmodule

全部评论
还是用generate来写方便
点赞 回复 分享
发布于 2023-09-13 17:56 陕西

相关推荐

07-03 11:02
中山大学 C++
字节刚oc,但距离九月秋招很近了有两段互联网实习,非腾讯字节。不敢赌转正,现在在纠结去还是不去如果实习俩月离职会有什么后果吗
阿城我会做到的:不去后悔一辈子,能否转正取决于ld的态度,只要他不卡,答辩就是走流程,个人觉得可以冲一把
投递字节跳动等公司8个岗位
点赞 评论 收藏
分享
来个大佬救一下,为上投了都是石沉大海了,没实习经历的话怕秋招直接进不了面。什么实习这么难找,基本
心态爆炸了:现在正式的岗位都少,实习基本不咋招的,除了大厂,中小企业其实没那么多岗位需求,就算是有,大多都是招一两个廉价劳动力,同时,他们也会希望你一来就能干活的,没时间培训你,就让你了解公司的项目,你了解完就可以开始干活。再者是,很多低质量的实习其实用处没有那么大的。我去年也是找实习找到破防,最后去了一家深圳的小公司实习,工作对我来说很简单,甚至不如我在学校做的项目,秋招的时候,这段实习经历也并没有帮上什么忙,投递简历,依旧非常低的回复率。低回复率是常态,尤其是找实习,找不到,那就把重心放在优化自己的简历和项目,多看八股文,锻炼自己的面试能力,多看别人的面经,自己模拟面试,等秋招的时候,只要有那么寥寥几次,好好抓住那几次机会。
点赞 评论 收藏
分享
下北澤大天使:你是我见过最美的牛客女孩😍
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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