D триггер, как проверить мою задержку между входом и выходом, когда часы нарастают? - PullRequest
0 голосов
/ 17 декабря 2018

Я написал код для D-триггера с 8 входами и 8 выходами.Я хочу проверить, сколько времени требуется для передачи данных входов, когда часы повышаются, пока они не дойдут до выхода 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.Есть ли другой способ узнать задержку?Если нет, может кто-нибудь показать мне пример, как это сделать?Я не нашел хорошего примера для задержек сигнала.

...