concatenar entradas en verilog

2

En mi módulo estoy tomando dos entradas de 8 bits.

mymodule(input clk, input [7:0] AS_1,input [7:0] AS_2, output [7:0] AS)

Ahora quiero crear un contenedor que mantendrá ambas entradas, quiero decir que quiero unirlas en una sola. Quiero hacer algo así:

reg [15:0] JOIN = AS_1 and AS_2 ---> all their bits should be arranged in a single container

Pero no sé si debería ser un tipo de registro o un cable o algo más, porque tendré que hacer otras operaciones con esa ÚNETE

¡Cualquier ayuda, consejo o sugerencia sería altamente apreciada!

    
pregunta Bledi Boss

2 respuestas

3
wire [15:0] joined;
assign joined = {AS_1, AS_2};

Eso crea un cable que siempre tiene el valor unido.

Las llaves se pueden usar en la mayoría de los lugares para concatenar valores como este.

    
respondido por el pjc50
0

Si desea realizar cálculos adicionales para JOIN , le recomendaría lo siguiente:

reg [15:0] JOIN;
always @* begin
  JOIN = {AS_1,AS_2};
  JOIN[8:0] = JOIN[8:0] & mask;
  // ... other code
end

Si su simulador es compatible con SystemVerilog, le recomendaré que use logic en lugar de reg . Técnicamente, los dos son iguales, sin embargo, para facilitar la lectura, es mejor usar reg para los fracasos previstos y logic para los valores de combinación previstos.

    
respondido por el Greg

Lea otras preguntas en las etiquetas