【问题标题】:how to get a T flip flop simulation waveform using Xilinx ISE design suite如何使用 Xilinx ISE 设计套件获得 T 触发器仿真波形
【发布时间】:2016-08-20 17:56:43
【问题描述】:

我尝试使用 Xilinx ISE webpack 和 ModelSim 使用以下框图模拟 TFF,并且结构代码是使用 VHDL 编写的。但我无法获得正确的波形。由于 T 触发器是时序电路,所以我首先将输出值设为 1 或 0,以便一个输出 (Q) 开始处理。

T flip flop truth table and block diagram

simulation waveform

与门代码:

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;

或非门代码:

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;

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

【问题讨论】:

  • 请分享波形。
  • 我上传了波形。
  • 请问您的教授,一旦我们转向 ASIC 和 FPGA 实施,现在“T”触发器有什么意义?在进行电路板设计时,T 触发器是相关的,以尽量减少 74xx 系列部件的数量来构建状态机之类的东西。现在我们已经转向更新的方法,它并不那么有趣。

标签: vhdl xilinx sequential waveform flip-flop


【解决方案1】:

我有一些建议。

  1. 存在未初始化的变量。在声明的末尾添加:= '0';。模拟可能显示“X”或未知。 Synthesized 设计可以正常工作,因为硬件会变为 1 或 0,但需要引导模拟器。

  2. 您的一些输出变量有反馈到输入。该设计是异步的,因为您没有使用某种描述的时钟来为迭代计时。考虑使用一个过程和类似 if rising_edge(clk)

【讨论】:

    猜你喜欢
    • 2015-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多