A power-aware voltage-scheduling heuristic with offline and online components is presented for a hard real-time multi-processor system supporting multiple voltage levels. The offline component determines a voltage configuration for each task in a graph according to the worst-case scenario of task execution, to speed up paths with tasks. Once some path is speeded up, it next chooses and speeds up one of the paths sharing tasks with that path. The online component reclaims the slack, which occurs when some task actually finishes, to slow down the execution speed of its successor. Simulations are made to show the effectiveness of the proposed heuristic.