Una de las dudas que suele surgirle a un diseñador cuando maneja los arrays muldimensionales de SystemVerilog es si dichos códigos son sintetizables.
Afortunadamente la mayoría de los sintetizadores de hoy en día los admiten sin problemas. Para que sirva de ejemplo veamos el código de un shifter 2D de 32 etapas de 8 bits
module shifter_2d(clock,reset,enable,clear,shift,entrada_serie, salida_serie);
parameter tamanyo=32;
input clock; //senyal de reloj
input reset; //reset asincrono
input enable;
input [7:0]entrada_serie;
input clear;
input shift;
output [7:0] salida_serie ;
logic [tamanyo-1:0][7:0] aux;
always_ff @(posedge clock or negedge reset)
if (!reset)
aux<={tamanyo{8'b0}};
else
if (!clear)
if (shift==1'b1)
aux<={entrada_serie,aux[tamanyo-1:1]};
else
aux<={tamanyo{8'b0}};
assign salida_serie=aux[0];
endmodule