D触发器在时钟上升沿时如何检查我的输入和输出之间的延迟?

时间:2018-12-17 15:21:07

标签: vhdl timing

我为具有8个输入和8个输出的D触发器编写了代码。 我想检查时钟上升直到传输到输出Q时传输输入数据的时间。

这是我的代码:

Library IEEE;
USE IEEE.Std_logic_1164.all;


entity Input_ADC is 
   port(
      Q7,Q6,Q5,Q4,Q3,Q2,Q1,Q0: out std_logic;    
      Clk :in std_logic;   
         reset :in  std_logic;-- Reset input
      D7,D6,D5,D4,D3,D2,D1,D0 :in  std_logic    
   );
end Input_ADC;
architecture Behavioral_of_rising_edge_Dflipflops of Input_ADC is  
begin  

  D0_process:process(Clk,reset)  --------flip flop D0
 begin 
            if(reset='0') then 
                    Q0<= '0';
            elsif(clk' event and clk='1') then
                    Q0<= D0; 
            end if;       
 end process D0_process;  

    D1_process:process(Clk,reset)  --------flip flop D1
 begin 
            if(reset='0') then 
                    Q1<= '0';
            elsif(clk' event and clk='1') then
                    Q1<= D1; 
            end if;       
 end process D1_process;  

   D2_process:process(Clk,reset)  --------flip flop D2
 begin 
            if(reset='0') then 
                    Q2<= '0';
            elsif(clk' event and clk='1') then
                    Q2<= D2; 
            end if;       
 end process D2_process;  

   D3_process:process(Clk,reset)  --------flip flop D3
 begin 
            if(reset='0') then 
                    Q3<= '0';
            elsif(clk' event and clk='1') then
                    Q3<= D3; 
            end if;       
 end process D3_process;  

    D4_process:process(Clk,reset)  --------flip flop D4
 begin 
            if(reset='0') then 
                    Q4<= '0';
            elsif(clk' event and clk='1') then
                    Q4<= D4; 
            end if;       
 end process D4_process;  

   D5_process:process(Clk,reset)  --------flip flop D5
 begin 
            if(reset='0') then 
                    Q5<= '0';
            elsif(clk' event and clk='1') then
                    Q5<= D5; 
            end if;       
 end process D5_process;  

    D6_process:process(Clk,reset)  --------flip flop D6
 begin 
            if(reset='0') then 
                    Q6<= '0';
            elsif(clk' event and clk='1') then
                    Q6<= D6; 
            end if;       
 end process D6_process;  

    D7_process:process(Clk,reset)  --------flip flop D7
 begin 
            if(reset='0') then 
                    Q7<= '0';
            elsif(clk' event and clk='1') then
                    Q7<= D7; 
            end if;       
 end process D7_process;  
end Behavioral_of_rising_edge_Dflipflops; 

我发现,我需要使用时序分析器来找出延迟。为此,我需要编写一个SDC文件。还有其他方法可以找出延迟吗?如果没有,可以给我示范一个例子吗?我找不到信号延迟的好例子。

0 个答案:

没有答案