我为具有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文件。还有其他方法可以找出延迟吗?如果没有,可以给我示范一个例子吗?我找不到信号延迟的好例子。