`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 ); //有符号数的定义通过关键词signed实现,如果不使用signed则默认都为无符号数。 //在设计时,任何运算的表达式中不能将有符号变量和无符号变量进行混用。必须保证全都为无符号变量或有符号变量,如果至少存在1个无符号变量,那么整个表达式的运算过程会被当作无符号数运算。 always@(posedge clk or negedge rst_n)begin if(!rst_n) c <= 'd0; else begin case(select) 2'd0: c = a; 2'd1: c = b; 2'd2: c = a+b; 2'd3: c = a-b; default: c = a; endcase end end endmodule