// synthesis translate_off
`timescale 1 ns / 1 ps
module test ();
parameter period = 12.5;
reg clk = 0;
integer fout, runtime;
glbl glbl (); // glbl stuff needed by some Xilinx parts
assign glbl.GTS = 1'b0;
initial begin
runtime = period * 50;
fout = $fopen("temp.do", "w");
$fdisplay(fout, "set PrefWave(gridPeriod) %fns", period);
$fdisplay(fout, "add wave -divider top");
$fdisplay(fout, "add wave -format Logic -radix unsigned top/\*");
$fdisplay(fout, "run %0dns", runtime);
$fdisplay(fout, "WaveRestoreZoom 0ns [expr 1.01 * %0d]ns", runtime);
$fclose(fout);
fork
begin #(period) forever begin clk=1; #(0.5*period); clk=0; #(0.5*period); end end
join
end
top top (.clk(clk));
endmodule
// synthesis translate_on
module top (clk, odata);
parameter obits = 4;
input clk; // synthesis attribute period "12.5ns";
output reg [obits-1:0] odata = 0;
always @ (posedge clk) begin
odata <= odata + 1;
end
endmodule