¿Realmente no hay manera de seleccionar bits directamente de un cálculo sin darles un nombre y luego seleccionar los bits del nombre en SystemVerilog?
module testbench;
logic signed [7:0] x = 8'b11100000;
logic signed [7:0] y = 8'b00010100;
logic [15:0] z;
initial begin
z = x*y;
$display("%b", z[14:7]); // :)
//$display("%b", (15'(x*y))[14:7]); // :(
//$display("%b", 15'(x*y)[14:7]); // :(
//$display("%b", {15'(x*y)}[14:7]); // :(
//none of the above 3 works
end
endmodule
Contexto: quiero asignar sin bloqueos los bits 14: 7 del producto de dos números de 8 bits firmados a otro número de 8 bits sin esperar el siguiente ciclo de reloj:
z <= 15'(x*y)[14:7];