Verificación

Simulación básica con colas

`timescale 1 ns/ 1 ps
 

module pruebas;
  
  logic [3:0] a ,b,c;

  logic clk;
  logic [3:0] cola [$];
  logic [3:0] cola_limited [$:3];
  int tamanyo;
  int tamanyo_limited;
  
  initial
  begin
  @(posedge clk) a=1;
  $display("empezamos a escribir elementos por la derecha en ambas colas");
  cola_limited.push_back(a);
  cola.push_back(a);
  tamanyo_limited=cola_limited.size();
  tamanyo=cola.size();
  $display("cola1=",cola);
    $display("cola2=",cola_limited);
  @(posedge clk) a=2;
  cola_limited.push_back(a);
  cola.push_back(a);
  tamanyo_limited=cola_limited.size();
  tamanyo=cola.size();
  $display("cola1=",cola);
    $display("cola2=",cola_limited);
  @(posedge clk) a=3;
  $display("empezamos a escribir elementos por la izquierda en ambas colas");   
  cola_limited.push_front(a);
  cola.push_front(a);
  tamanyo_limited=cola_limited.size();
  tamanyo=cola.size();
  $display("cola1=",cola);
    $display("cola2=",cola_limited);
  @(posedge clk) a=4;
  cola_limited.push_front(a);
  cola.push_front(a);
  tamanyo_limited=cola_limited.size();
  tamanyo=cola.size(); 
  $display("cola1=",cola);
    $display("cola2=",cola_limited);
  @(posedge clk) a=5;
  cola_limited.push_back(a);
  cola.push_back(a);
  tamanyo_limited=cola_limited.size();
  tamanyo=cola.size();
  $display("cola1=",cola);
    $display("cola2=",cola_limited);  
  @(posedge clk) ;
  $display("empezamos a leer elementos de cola1 por la izquierda");  
  $display("empezamos a leer elementos de cola2 por la derecha");
  b=cola_limited.pop_back();
  c=cola.pop_front();
  tamanyo_limited=cola_limited.size();
  tamanyo=cola.size();
  $display("cola1=",cola);
    $display("cola2=",cola_limited); 
  @(posedge clk) ;
  b=cola_limited.pop_back();
  c=cola.pop_front();
  tamanyo_limited=cola_limited.size();
  tamanyo=cola.size();
  $display("cola1=",cola);
    $display("cola2=",cola_limited);      
end

initial
begin
  clk=0;
forever #50 clk=~clk;
end



endmodule