Concatenar la señal n veces en Verilog

6

Dada una señal wire [7:0] dummy , ¿cómo puedo concatenarla n veces?

Es decir, ¿hay una notación para lo siguiente:

{dummy, ..., dummy} // n times

?

    
pregunta Randomblue

1 respuesta

6

Esto es lo que hice para repetir y concatenar n veces:

{n{VARIABLE}}

Ejemplo:

module concat_n(dummy,super_dummy,clk);

input [7:0] dummy;
input clk;

output [23:0] super_dummy;

wire [7:0] dummy;
reg [23:0] super_dummy;

always @(posedge clk)
  super_dummy <= {3{dummy}};

endmodule 

Simulación:

   module test;

  initial begin

     $dumpfile("test.vcd");
     $dumpvars(0,test);

    dummy_in = 8'b10101111;
    #10 dummy_in = 8'b10101010;
    #10 dummy_in = 8'b11110001;
    #10 dummy_in = 8'b01010011;
    #10 dummy_in = 8'b00111100;
    #10 dummy_in = 8'b00110011;
    # 1 $finish;
  end

  reg clk = 0;
  always #1 clk = !clk;

  wire [23:0] super_dummy_out;
  reg [7:0] dummy_in; 

  concat_n concat_3 (dummy_in, super_dummy_out, clk);

  initial
     $monitor("At time %d, dummy_in = 0x%h, super_dummy_out = 0x%h ",
              $time, dummy_in, super_dummy_out);
endmodule 

Resultado de la simulación:

    
respondido por el dext0rb

Lea otras preguntas en las etiquetas