2

私は VHDL の本を読んでいて、彼らが示した例を理解するのに苦労しています。

与えられたコード:

-------------------------------------------------------------------
-- RET T Flip-flop model with active-low asynchronous set input. --
-------------------------------------------------------------------
-- library declaration
library IEEE;
use IEEE.std_logic_1164.all;
-- entity
entity t_ff_s is
  port ( T,S,CLK : in std_logic;
  Q : out std_logic);
end t_ff_s;
-- entity
architecture my_t_ff_s of t_ff_s is
  signal t_tmp : std_logic; -- intermediate signal declaration
begin
  tff: process (S,CLK)
  begin
    if (S = '0') then
      Q <= '1';
    elsif (rising_edge(CLK)) then
      t_tmp <= T XOR t_tmp; -- temp output assignment
    end if;
  end process tff;
  Q <= t_tmp; -- final output assignment
end my_t_ff_s;

私が理解していないのは、複数のシグナルを Q に割り当てる方法です。プロセス ステートメントの外では、それはQ <= t_tmpプロセス内にあります。これはどのように機能しますか?VHDL の理解が限られている私には、間違っているように見えます。基本的に、これは次のように書いているのと同じように見えます。S='0'Q <= '1'

Q <= '0';
Q <= '1';

この例をよりよく理解するのを手伝ってくれる人はいますか?

4

1 に答える 1

4

この例に疑問を呈するのは正しい。壊れてます。

Q <= '1';

する必要があります

t_tmp <= '1';

誰かが出力を読み取れないことに気付き、t_tmp を導入してコードの半分だけを変更しました。

于 2012-04-20T16:48:58.087 に答える