题解 | #多功能数据处理器#

多功能数据处理器

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

`timescale 1ns/1ns
module data_select(
	input clk,
	input rst_n,
	input signed[7:0]a,
	input signed[7:0]b,
	input [1:0]select,
	output reg signed [8:0]c
);
always@(posedge clk or negedge rst_n)
if(!rst_n)
	c<=9'd0;
else case(select)
0: c<=a;
1: c<=b;
2: c<=a+b;
3: c<=a-b;
default:c<=9'd0;
endcase
endmodule

假如都定义成了有符号数类型 signed,直接加减就可以

如果没定义成signed,就要给符号位扩展,就是把符号位再复制一个放到最高位。

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务