updated vhdl code