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

Subversion Repositories qaz_libs

[/] [qaz_libs/] [trunk/] [BFM/] [src/] [clock/] [tb_programmable_clk.v] - Rev 41

Go to most recent revision | Compare with Previous | Blame | View Log

// --------------------------------------------------------------------
//
// --------------------------------------------------------------------
 
`timescale 10ps/1ps
 
 
module
  tb_programmable_clk
  (
    output reg clock
  );
 
 
  // --------------------------------------------------------------------
  //  
  integer clk_duty_cycle = 50;
 
  task set_clk_duty_cycle;
  input integer duty_cycle;
    begin
 
      clk_duty_cycle = duty_cycle;
 
    end
  endtask
 
 
  // --------------------------------------------------------------------
  //  
  integer clk_period = 1515;
 
  task set_clk_period;
  input integer period;
    begin
 
      clk_period = period;
 
    end
  endtask
 
 
  // --------------------------------------------------------------------
  //  
  initial
    clock <= 1'b1;
 
  always
    if(clk_duty_cycle == 50)
      #(clk_period/2) clock <= ~clock;
    else
      if(clock)
        #(clk_period * (clk_duty_cycle/100)) clock <= ~clock;
      else
        #(clk_period * ( (100 - clk_duty_cycle)/100 ) ) clock <= ~clock;
 
 
endmodule
 
 

Go to most recent revision | Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

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