OpenCores
URL https://opencores.org/ocsvn/srdydrdy_lib/srdydrdy_lib/trunk

Subversion Repositories srdydrdy_lib

[/] [srdydrdy_lib/] [trunk/] [env/] [verilog/] [bench_fifo_s.v] - Diff between revs 3 and 14

Go to most recent revision | Only display areas with differences | Details | Blame | View Log

Rev 3 Rev 14
`timescale 1ns/1ns
`timescale 1ns/1ns
 
 
module bench_fifo_s;
module bench_fifo_s;
 
 
  reg clk, reset;
  reg clk, reset;
 
 
  localparam width = 8;
  localparam width = 8;
 
 
  initial clk = 0;
  initial clk = 0;
  always #10 clk = ~clk;
  always #10 clk = ~clk;
 
 
  /*AUTOWIRE*/
  /*AUTOWIRE*/
  // Beginning of automatic wires (for undeclared instantiated-module outputs)
  // Beginning of automatic wires (for undeclared instantiated-module outputs)
  wire [width-1:0]       chk_data;               // From fifo_s of sd_fifo_s.v
  wire [width-1:0]       chk_data;               // From fifo_s of sd_fifo_s.v
  wire                  chk_drdy;               // From chk of sd_seq_check.v
  wire                  chk_drdy;               // From chk of sd_seq_check.v
  wire                  chk_srdy;               // From fifo_s of sd_fifo_s.v
  wire                  chk_srdy;               // From fifo_s of sd_fifo_s.v
  wire [width-1:0]       gen_data;               // From gen of sd_seq_gen.v
  wire [width-1:0]       gen_data;               // From gen of sd_seq_gen.v
  wire                  gen_drdy;               // From fifo_s of sd_fifo_s.v
  wire                  gen_drdy;               // From fifo_s of sd_fifo_s.v
  wire                  gen_srdy;               // From gen of sd_seq_gen.v
  wire                  gen_srdy;               // From gen of sd_seq_gen.v
  // End of automatics
  // End of automatics
 
 
/* sd_seq_gen AUTO_TEMPLATE
/* sd_seq_gen AUTO_TEMPLATE
 (
 (
 .p_\(.*\)   (gen_\1[]),
 .p_\(.*\)   (gen_\1[]),
 );
 );
 */
 */
  sd_seq_gen gen
  sd_seq_gen gen
    (/*AUTOINST*/
    (/*AUTOINST*/
     // Outputs
     // Outputs
     .p_srdy                            (gen_srdy),              // Templated
     .p_srdy                            (gen_srdy),              // Templated
     .p_data                            (gen_data[width-1:0]),    // Templated
     .p_data                            (gen_data[width-1:0]),    // Templated
     // Inputs
     // Inputs
     .clk                               (clk),
     .clk                               (clk),
     .reset                             (reset),
     .reset                             (reset),
     .p_drdy                            (gen_drdy));             // Templated
     .p_drdy                            (gen_drdy));             // Templated
 
 
/* sd_seq_check AUTO_TEMPLATE
/* sd_seq_check AUTO_TEMPLATE
 (
 (
 .c_\(.*\)   (chk_\1[]),
 .c_\(.*\)   (chk_\1[]),
 );
 );
 */
 */
  sd_seq_check chk
  sd_seq_check chk
    (/*AUTOINST*/
    (/*AUTOINST*/
     // Outputs
     // Outputs
     .c_drdy                            (chk_drdy),              // Templated
     .c_drdy                            (chk_drdy),              // Templated
     // Inputs
     // Inputs
     .clk                               (clk),
     .clk                               (clk),
     .reset                             (reset),
     .reset                             (reset),
     .c_srdy                            (chk_srdy),              // Templated
     .c_srdy                            (chk_srdy),              // Templated
     .c_data                            (chk_data[width-1:0]));   // Templated
     .c_data                            (chk_data[width-1:0]));   // Templated
 
 
/* sd_fifo_s AUTO_TEMPLATE
/* sd_fifo_s AUTO_TEMPLATE
 (
 (
     .c_clk                             (clk),
     .c_clk                             (clk),
     .c_reset                           (reset),
     .c_reset                           (reset),
     .p_clk                             (clk),
     .p_clk                             (clk),
     .p_reset                           (reset),
     .p_reset                           (reset),
     .p_\(.*\)   (chk_\1[]),
     .p_\(.*\)   (chk_\1[]),
     .c_\(.*\)   (gen_\1[]),
     .c_\(.*\)   (gen_\1[]),
 );
 );
 */
 */
  sd_fifo_s #(8, 32, 1) fifo_s
  sd_fifo_s #(8, 32, 1) fifo_s
    (/*AUTOINST*/
    (/*AUTOINST*/
     // Outputs
     // Outputs
     .c_drdy                            (gen_drdy),              // Templated
     .c_drdy                            (gen_drdy),              // Templated
     .p_srdy                            (chk_srdy),              // Templated
     .p_srdy                            (chk_srdy),              // Templated
     .p_data                            (chk_data[width-1:0]),    // Templated
     .p_data                            (chk_data[width-1:0]),    // Templated
     // Inputs
     // Inputs
     .c_clk                             (clk),                   // Templated
     .c_clk                             (clk),                   // Templated
     .c_reset                           (reset),                 // Templated
     .c_reset                           (reset),                 // Templated
     .c_srdy                            (gen_srdy),              // Templated
     .c_srdy                            (gen_srdy),              // Templated
     .c_data                            (gen_data[width-1:0]),    // Templated
     .c_data                            (gen_data[width-1:0]),    // Templated
     .p_clk                             (clk),                   // Templated
     .p_clk                             (clk),                   // Templated
     .p_reset                           (reset),                 // Templated
     .p_reset                           (reset),                 // Templated
     .p_drdy                            (chk_drdy));             // Templated
     .p_drdy                            (chk_drdy));             // Templated
 
 
  initial
  initial
    begin
    begin
      $dumpfile("fifo_s.vcd");
      $dumpfile("fifo_s.vcd");
      $dumpvars;
      $dumpvars;
      reset = 1;
      reset = 1;
      #100;
      #100;
      reset = 0;
      reset = 0;
 
 
 
      gen.rep_count = 1000;
 
 
      // burst normal data for 20 cycles
      // burst normal data for 20 cycles
      repeat (20) @(posedge clk);
      repeat (20) @(posedge clk);
 
 
      gen.srdy_pat = 8'h5A;
      gen.srdy_pat = 8'h5A;
      repeat (20) @(posedge clk);
      repeat (20) @(posedge clk);
 
 
      chk.drdy_pat = 8'hA5;
      chk.drdy_pat = 8'hA5;
      repeat (40) @(posedge clk);
      repeat (40) @(posedge clk);
 
 
      // check FIFO overflow
      // check FIFO overflow
      gen.srdy_pat = 8'hFD;
      gen.srdy_pat = 8'hFD;
      repeat (100) @(posedge clk);
      repeat (100) @(posedge clk);
 
 
      // check FIFO underflow
      // check FIFO underflow
      gen.srdy_pat = 8'h11;
      gen.srdy_pat = 8'h11;
      repeat (100) @(posedge clk);
      repeat (100) @(posedge clk);
 
 
      #5000;
      #5000;
      $finish;
      $finish;
    end
    end
 
 
endmodule // bench_fifo_s
endmodule // bench_fifo_s
// Local Variables:
// Local Variables:
// verilog-library-directories:("." "../../rtl/verilog/buffers")
// verilog-library-directories:("." "../../rtl/verilog/buffers")
// End:
// End:
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.