cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
ivictbor
Visitor
Visitor
11,645 Views
Registered: ‎03-27-2014

ISIM Behavior on SETUP VIOLATION

Hi. I want to make small research about triggers setup and hold violations, but ISIM makes me very confused. I created very small design:

 

 

entity syncer is
  port( clk:       in   std_logic;
        async_in:  in   std_logic;
        sync_out:  out  std_logic );
end syncer;

architecture Behavioral of syncer is
begin
  process(clk)
  begin
    if rising_edge(clk) then
      sync_out <= async_in;
    end if;	
end process; 

Implemented it on xc6slx9-3tqg144, and in "Analyze Timing / Floorplan Design" found that this design usesOLOGIC2 :

 

ologic2

Then I wrote small testbench to found some violations:

 

 

stim_proc: process
  variable i: integer;
begin		
  async_in <= '0';	
  clk <= '0';
  wait for 200 ns;		
  FOR i IN 1 to 100 LOOP
    async_in <= not async_in; 
    wait for i * 0.1 ns;  -- TODO выровнять
    clk <= '1';
    wait for 10 ns - i * 0.1 ns;	
    clk <= '0';
wait for 10 ns;
end loop; FOR i IN 1 to 100 LOOP clk <= '1'; wait for i * 0.1 ns; async_in <= not async_in; wait for 10 ns - i * 0.1 ns; clk <= '0'; wait for 10 ns;
end loop; wait; end process;

Then, I run ISIM in post-routemode, and addsignalx of X_SFF trigger todiagram.

 

The first violation are:

 

at 2243386 ps(1), Instance /async_test/uut/sync_out_13/ : Warning: /X_SFF SETUP High VIOLATION ON I WITH RESPECT TO CLK;
  Expected := 0.895 ns; Observed := 0.85 ns; At : 2243.386 ns

On diagram it looks here:

 

isim1

I can't Understand next two points:

 

  1. Why It says that it expect 0.895 ns delay, in table 36 "OLOGIC2 Switching Characteristics" http://www.xilinx.com/support/documentation/data_sheets/ds162.pdf we see that it should be 0.81ns but not 0.89Untitled1.png
  2. Why it shows violation at 2243.386, on diagram we see that front of clock on 2243.288. The "I" signal changes at 2242.536:Untitled2.pngso 2243.386 - 2242.536 is equal to 0.85 (Observed), but why not it observed 2243.288 - 2242.536 = 0.752 ?

 

0 Kudos
0 Replies