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

多功能数据处理器

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,就要给符号位扩展,就是把符号位再复制一个放到最高位。

全部评论

相关推荐

昨天 18:54
门头沟学院 Java
点赞 评论 收藏
分享
头像
11-09 12:17
清华大学 C++
out11Man:小丑罢了,不用理会
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务