osamaamin
Newbie level 4
- Joined
- Dec 21, 2008
- Messages
- 7
- Helped
- 0
- Reputation
- 0
- Reaction score
- 0
- Trophy points
- 1,281
- Activity points
- 1,333
Hello,
I am trying to do a post-implementation timing simulation of a Ring Oscillator using Vivado 2014.1. But every time I got the error message:
FATAL_ERROR: Iteration limit 100000 is reached. Possible zero delay oscillation detected where simulation time can not advance.
Here is the code of ring oscillator:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity roPUF is
Port ( enable : in std_logic;
fout : inout STD_LOGIC);
end roPUF;
architecture ring_osc of roPUF is
constant NUM_INV : integer := 3;
signal int_net : STD_LOGIC_VECTOR (NUM_INV downto 0);
attribute dont_touch : string;
attribute dont_touch of int_net : signal is "true";
begin
int_net(0) <= enable and int_net(NUM_INV);
GEN_INV :
for I in 1 to NUM_INV generate
int_net(I) <= not int_net(I-1);
end generate GEN_INV;
fout <= int_net(NUM_INV);
end ring_osc;
I have tried to change to iteration limit to 100,000 using -maxdeltaid switch but still it won't work. Also I have checked the post-implementation schematic to make sure that my logic does not get trimmed by the tool.
I am trying to do a post-implementation timing simulation of a Ring Oscillator using Vivado 2014.1. But every time I got the error message:
FATAL_ERROR: Iteration limit 100000 is reached. Possible zero delay oscillation detected where simulation time can not advance.
Here is the code of ring oscillator:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity roPUF is
Port ( enable : in std_logic;
fout : inout STD_LOGIC);
end roPUF;
architecture ring_osc of roPUF is
constant NUM_INV : integer := 3;
signal int_net : STD_LOGIC_VECTOR (NUM_INV downto 0);
attribute dont_touch : string;
attribute dont_touch of int_net : signal is "true";
begin
int_net(0) <= enable and int_net(NUM_INV);
GEN_INV :
for I in 1 to NUM_INV generate
int_net(I) <= not int_net(I-1);
end generate GEN_INV;
fout <= int_net(NUM_INV);
end ring_osc;
I have tried to change to iteration limit to 100,000 using -maxdeltaid switch but still it won't work. Also I have checked the post-implementation schematic to make sure that my logic does not get trimmed by the tool.