clkbuf.sv 613 B

1234567891011121314151617181920212223242526272829303132333435
  1. //
  2. // clkbuf.sv
  3. //
  4. // Clock output using a DDIO output buffer; can optionally be
  5. // overridden to not use DDIO e.g. for temporary testing.
  6. //
  7. module clk_buf
  8. #(
  9. parameter bit invert = 1'b0,
  10. parameter bit noddio = 1'b0
  11. )
  12. (
  13. input clk,
  14. output pin
  15. );
  16. generate
  17. if ( noddio )
  18. begin
  19. assign pin = clk ^ invert;
  20. end
  21. else
  22. begin
  23. ddio_out ddiobuf (
  24. .aclr ( 1'b0 ),
  25. .datain_h ( ~invert ),
  26. .datain_l ( invert ),
  27. .outclock ( clk ),
  28. .dataout ( pin )
  29. );
  30. end // else: !if( noddio )
  31. endgenerate
  32. endmodule // clk_buf