`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)begin
if(!rst_n)begin
c<=0;
end
else begin
case(select)
2'b00:begin
c<={a[7],a};
end
2'b01:begin
c<={b[7],b};
end
2'b10:begin
c<={a[7],a}+{b[7],b};
end
2'b11:begin
c<={a[7],a}-{b[7],b};
end
default:begin
c<=0;
end
endcase
end
end
endmodule
没啥问题

京公网安备 11010502036488号