Binary to Gray code converter Apr 10, 2006 • Rohit VHDL library ieee; use ieee.std_logic_1164.all; entity B2G is port(i:in std_logic_vector(3 downto 0); o:out std_logic_vector(3 downto 0); e:in std_logic); end B2G; architecture DataFlow of B2G is begin o(0)<=((i(0)and (not i(1)))or((not i(0))and(i(1))))and e; o(1)<=((i(2)and (not i(1)))or((not i(2))and(i(1))))and e; o(2)<=((i(2)and (not i(3)))or((not i(2))and(i(3))))and e; o(3)<=i(3)and e; end DataFlow; Testbench library ieee; use ieee.std_logic_1164.all; entity B2GTB is end B2GTB; architecture BehavioralTB of B2GTB is component B2G is port(i:in std_logic_vector(3 downto 0); o:out std_logic_vector(3 downto 0); e:in std_logic); end component; signal i:std_logic_vector(3 downto 0); signal o:std_logic_vector(3 downto 0); signal e:std_logic; begin inst:B2G port map(i,o,e); process begin e<=transport'1' ; wait for 10 ns; i<=transport "0000"; wait for 10 ns; i<=transport "0010"; wait for 10 ns; i<=transport "0110"; wait for 10 ns; i<=transport "1000"; wait for 10 ns; i<=transport "1001"; wait for 10 ns; i<=transport "1111"; wait for 10 ns; end process; end BehavioralTB; Add reply Click here to reply to the blog post instead Send