module test( input clk, wen, input [7:0] uns, input signed [7:0] a, b, input signed [23:0] c, input signed [2:0] sel, output [15:0] s, d, y, z, u, q, p, mul, div, mod, mux, And, Or, Xor, eq, neq, gt, lt, geq, leq, eqx, shr, sshr, shl, sshl, Land, Lor, Lnot, Not, Neg, pos, Andr, Orr, Xorr, Xnorr, Reduce_bool, output [7:0] PMux ); //initial begin //$display("shr = %b", shr); //end assign s = a+{b[6:2], 2'b1}; assign d = a-b; assign y = x; assign z[7:0] = s+d; assign z[15:8] = s-d; assign p = a & b | x; assign mul = a * b; assign div = a / b; assign mod = a % b; assign mux = x[0] ? a : b; assign And = a & b; assign Or = a | b; assign Xor = a ^ b; assign Not = ~a; assign Neg = -a; assign eq = a == b; assign neq = a != b; assign gt = a > b; assign lt = a < b; assign geq = a >= b; assign leq = a <= b; assign eqx = a === b; assign shr = a >> b; //0111111111000000 assign sshr = a >>> b; assign shl = a << b; assign sshl = a <<< b; assign Land = a && b; assign Lor = a || b; assign Lnot = !a; assign pos = $signed(uns); assign Andr = &a; assign Orr = |a; assign Xorr = ^a; assign Xnorr = ~^a; always @* if(!a) begin Reduce_bool = a; end else begin Reduce_bool = b; end //always @(sel or c or a) // begin // case (sel) // 3'b000: PMux = a; // 3'b001: PMux = c[7:0]; // 3'b010: PMux = c[15:8]; // 3'b100: PMux = c[23:16]; // endcase // end endmodule