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

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

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[7:0] a_temp, b_temp;
	reg[8:0] c_temp;
	mul mul1(
		.clk(clk),
		.rst_n(rst_n),
		.a(a),
		.b(4'd12),
		.c(a_temp)
	);
	mul mul2(
		.clk(clk),
		.rst_n(rst_n),
		.a(b),
		.b(4'd5),
		.c(b_temp)
	);

	always@(posedge clk or negedge rst_n) begin
		if(!rst_n)
			c_temp <= 8'd0;
		else
			c_temp <= a_temp + b_temp;
	end
	assign c = c_temp;
endmodule

module mul(
	input clk,
	input rst_n,
	input[3:0] a,
	input[3:0] b,

	output reg[7:0]  c
);
	always@(posedge clk or negedge rst_n) begin
		if(!rst_n)
			c <= 8'd0;
		else
			c <= ({4{b[0]}} & a)
				+(({4{b[1]}} & a) << 1)
				+(({4{b[2]}} & a) << 2)
				+(({4{b[3]}} & a) << 3);
	end
endmodule

实在是不知道这个题目要例化一个乘法器,为什么后面还有再隔一个周期才能输出c,而不能直接assign c = a_temp + b_temp;

乘法器就用最简单的移位相加乘法器来做了,毕竟不允许用乘法。

全部评论

相关推荐

虽然大家都在劝退读研,说读研以后也是打工,不如本科直接去打工,但随着现在研究生越来越多,很多企业招聘要求就会变成研究生起招,本科投递简历就会被卡,横向比较时也会因为"本科学历比不上研究生学历"被筛掉,而且你没发现劝退读研的基本都是读完研的人吗?而且进体制、国企等,研究生也比本科生升的快,他们拿着研究生文凭劝你一个本科生,可别当真了
球1个offer:每个行业都是不一定的,例如计算机开发岗,只要是92学历,完全可以冲互联网大厂,没进去抛开运气因素,就是不够努力,准备的晚没有实习等等。计算机算法岗还是要读研的,研究生是基本要求。现在太多人无脑考研了,因为本科秋招春招啥都没准备过,只能读研
点赞 评论 收藏
分享
点赞 评论 收藏
分享
迷茫的大四🐶:自信一点,我认为你可以拿到50k,低于50k完全配不上你的能力,兄弟,不要被他们骗了,你可以的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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