Subversion Repositories ngs

Rev

Rev 24 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1. // testbench for CPLD_buf.v
  2. // (c) NedoPC 2010
  3.  
  4. `timescale 1ns/100ps
  5.  
  6.  
  7. `define CLK20_HALFPERIOD (25.000)
  8. `define CLK24_HALFPERIOD (20.833)
  9.  
  10.  
  11. module tb;
  12.  
  13.  
  14.         reg clk24,clk20;
  15.  
  16.         reg coldres_n;
  17.  
  18.         reg [1:0] clksel;
  19.  
  20.  
  21.         wire clkout;
  22.  
  23.  
  24.  
  25.         // 20MHz clock
  26.         initial
  27.         begin
  28.                 clk20 = 1'b0;
  29.  
  30.                 forever #(`CLK20_HALFPERIOD) clk20 = ~clk20;
  31.         end
  32.  
  33.         // 24MHz clock
  34.         initial
  35.         begin
  36.                 clk24 = 1'b0;
  37.  
  38.                 forever #(`CLK24_HALFPERIOD) clk24 = ~clk24;
  39.         end
  40.  
  41.  
  42.         // cold reset
  43.         initial
  44.                 coldres_n = 1'b0;
  45.  
  46.  
  47.  
  48.  
  49.         // clk switch signals
  50.         initial
  51.         begin
  52.                 clksel = 2'b00;
  53.  
  54.                 forever
  55.                 begin
  56.                         repeat(10) @(posedge clkout);
  57.  
  58.                         clksel <= clksel + 2'b01;
  59.                 end
  60.         end
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.         // module connection
  70.  
  71.         GS_cpld DUT( .clk24in(clk24),
  72.                      .clk20in(clk20),
  73.                      .clksel0(clksel[0]),
  74.                      .clksel1(clksel[1]),
  75.                      .clkout(clkout)
  76.  
  77.                );
  78.  
  79.  
  80. endmodule
  81.  
  82.