双向端口的VHDL程序如下:

library ieee;
use ieee.std_logic_1164.all;

entity in_out is
port(en    :in    std_logic;
     data  :in    std_logic;
     q     :inout std_logic;
     result:out   std_logic
     );
end in_out;

architecture behave of in_out is
begin
  process(en,data,q)
  begin
  if (en = '1') then
    q <= data;
  else
    q <= 'Z';
     result <= q;
  end if;
 end process;

end behave;

生成的RTL图如下:

结论:完整的if-else语句也会产生寄存器

posted on 2013-05-18 22:42  amanlikethis  阅读(258)  评论(0编辑  收藏  举报