Skip to content

Instantly share code, notes, and snippets.

@sagar5258
Last active June 11, 2020 11:51
Show Gist options
  • Select an option

  • Save sagar5258/9be6f50eaa0a0b1d307e5bb2666b0f5e to your computer and use it in GitHub Desktop.

Select an option

Save sagar5258/9be6f50eaa0a0b1d307e5bb2666b0f5e to your computer and use it in GitHub Desktop.
class fibonacci;
rand int unsigned f_ary[];
rand int unsigned fibonacci_length;
constraint f_ary_size_cn {
f_ary.size() == fibonacci_length;
}
constraint f_ary_cn {
foreach (f_ary[i]) {
if (i == 0 || i == 1) {
f_ary[i] == i;
}
else {
f_ary[i] == f_ary[i-1] + f_ary[i-2];
}
}
}
endclass : fibonacci
module top();
fibonacci F;
initial begin
F = new();
if (!F.randomize() with { fibonacci_length == 10;}) begin
$fatal("Randomization failed");
end
else begin
$display("Lengh of Fibonacci series:%0d", F.fibonacci_length);
$write("Fibonaci series: ");
for (int unsigned i=0; i<F.fibonacci_length; i++) begin
if (i != F.fibonacci_length - 1) begin
$write("%0d, ", F.f_ary[i]);
end
else begin
$write("%0d\n", F.f_ary[i]);
end
end
end
end
endmodule : top
//Output:
// Lengh of Fibonacci series:10
// Fibonacci series: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment