如何使用Xilinx ISE设计套件获得T触发器仿真波形

时间:2016-08-20 17:56:44

标签: vhdl xilinx sequential waveform flip-flop

我尝试使用Xilinx ISE web pack和ModelSim使用以下框图模拟TFF,并使用VHDL编写结构代码。但我无法得到正确的波形。由于T触发器是顺序电路,首先我将输出值1或0用于一个输出(Q)以开始该过程。

print

T flip flop truth table and block diagram

和门的

代码:

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;



entity AND_GATE is
Port ( X : in  STD_LOGIC;
       Y : in  STD_LOGIC;
          W : in STD_LOGIC;
       Z : out  STD_LOGIC);
end AND_GATE;

architecture Behavioral of AND_GATE is

begin
Z <= X AND Y AND W;

end Behavioral;
NOR门的

代码:

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;

entity NOR_GATE is
Port ( A : in  STD_LOGIC;
       B : in  STD_LOGIC;
       C : out  STD_LOGIC);
end NOR_GATE;

architecture Behavioral of NOR_GATE is

begin

c   <= A NOR B;

end Behavioral;

T-FF的代码:

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;

entity TFF_2 is
Port ( T : in  STD_LOGIC;
       CLK : in  STD_LOGIC;
       Q : inout  STD_LOGIC;
       s : inout  STD_LOGIC);
end TFF_2;

architecture STRUCTURAL of TFF_2 is

--declare components being used in T -FF
component TFF is
Port ( T : in  STD_LOGIC;
       CLK : in  STD_LOGIC;
       RST : in  STD_LOGIC;
       Q : out  STD_LOGIC);
end component;

component NOR_GATE is
Port ( A : in  STD_LOGIC;
       B : in  STD_LOGIC;
       C : out  STD_LOGIC);
end component;

component AND_GATE is
Port ( X : in  STD_LOGIC;
       Y : in  STD_LOGIC;
          W : in STD_LOGIC;
       Z : out  STD_LOGIC);
end component;

--declare signals

signal S1, S2 : STD_LOGIC;

begin

C1 : AND_GATE port map (Q, T, CLK, S1);
C2 : AND_GATE port map (S, T, CLK, S2);
C3  : NOR_GATE port map (S1, S, Q);
C4  : NOR_GATE port map (S2, Q, S);

end STRUCTURAL;

这些文件合成时没有任何错误,但在模拟中没有给出预期的输出。

1 个答案:

答案 0 :(得分:0)

我有一些建议。

  1. 有非初始化变量。在声明的末尾添加:= '0';。模拟可能显示“X”或未知。合成设计将正常工作,硬件将变为一个或零,但模拟器需要定向。

  2. 您的一些输出变量会反馈到输入中。设计是异步的,因为您没有使用某些描述的时钟来计算迭代时间。考虑使用某个流程,例如 if rising_edge(clk)