`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
没啥问题