SimulIDE

SimulIDE is a free and open source simulator which can be used to simulate digital circuits. It simulates AVR microcontrollers and Arduino boards, as well. SimulIDE supports Windows, Linux, and MacOS.
https://www.simulide.com/p/home.html
Tutorials
For AVR
AVR Simulation in SimulIDE Step by Step Tutorial
Simulating the AVR UART in SimulIDE