use work.fg_16_04.all; -- code from book (in text) entity tri_state_reg is port ( d : in resolved_byte; q : out resolved_byte bus; clock, out_enable : in bit ); end entity tri_state_reg; -- end code from book -- code from book architecture behavioral of tri_state_reg is begin reg_behavior : process (d, clock, out_enable) is variable stored_byte : byte; begin if clock'event and clock = '1' then stored_byte := d; end if; if out_enable = '1' then q <= stored_byte; else q <= null; end if; end process reg_behavior; end architecture behavioral; -- end code from book use work.fg_16_04.all; entity fg_16_05 is end entity fg_16_05; architecture test of fg_16_05 is signal d1, d2, q : resolved_byte := X"00"; signal clk1, clk2, oe1, oe2 : bit := '0'; begin dut1 : entity work.tri_state_reg(behavioral) port map ( d => d1, q => q, clock => clk1, out_enable => oe1 ); dut2 : entity work.tri_state_reg(behavioral) port map ( d => d2, q => q, clock => clk2, out_enable => oe2 ); stimulus : process is begin d1 <= X"11"; clk1 <= '1', '0' after 5 ns; wait for 10 ns; oe1 <= '1', '0' after 5 ns; wait for 10 ns; d2 <= X"21"; clk2 <= '1', '0' after 5 ns; wait for 10 ns; oe2 <= '1', '0' after 5 ns; wait for 10 ns; oe1 <= '1', '0' after 5 ns; oe2 <= '1', '0' after 5 ns; wait; end process stimulus; end architecture test; <div align="center"><br /><script type="text/javascript"><!-- google_ad_client = "pub-7293844627074885"; //468x60, Created at 07. 11. 25 google_ad_slot = "8619794253"; google_ad_width = 468; google_ad_height = 60; //--></script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script><br /> </div>