What voltage Atmega16 is running? If you can choose voltage for it, use for example 3.3v and no voltage conversion needed. If it is running 5v, you can do 5v->3v with two resistors. (voltage divider). You can check datasheets if it is possible to connect 3.3v output directly to 5v input. Is 3.3v high level high enough to 5v input read as 1? If not some level conversion is needed. You can do inverting level conversion with one transistor and few resistors(and handle inversion in FPGA). Or use real level coverter IC.