3

合成可能な VHDL コードと比較することは許可されていませんX。しかし、信号と比較したり、信号を検出して動作を中断するZコードを書いてもいいですか? コードは次のとおりです。01Z

process(clk)
begin
  if rising_edge(clk ) then
    if(rst = '0') then
      reg_0 <= (others => 'Z');
    elsif(btf_start = '1') then
      reg_0 <= "ZZ" & frame_in;
    elsif(t_btf_finish = '1') then
      reg_0 <= (others => 'Z');
    end if;
  end if;  
end process;

process(clk)
begin
  if rising_edge(clk) then
    if(reg_0(0) = '0' or reg_0(0) = '1') then
        -- DO SOME OPERATIONS
    else
        -- DO NOTHING
    end if;
  end if;
end process; 
4

1 に答える 1

5

いいえ、これはうまくいきません。物理デジタル信号は、'0' と '1' の 2 つの状態を持つことができます。状態は信号の電圧によって定義されます。ある電圧よりも小さい場合は「0」、その電圧よりも大きい場合は「1」です。フローティング (高インピーダンス) 信号でさえ、「1」または「0」として解釈される電圧があります。

「Z」は基本的に、特定のソースが信号を駆動していないことを示し、別のソースが「0」または「1」を駆動できるようにします。ソースが信号を駆動していない場合、通常、信号にはデフォルトで定義された「1」または「0」の状態を維持するためのプルアップまたはプルダウン抵抗があります。

于 2013-07-22T07:31:25.953 に答える