Many threats are opened to discuss this subject, PICs vs AVRs.
I have used both 8-bit PICs and AVRs and from personal tests I can say that AVRs are superior to PICs because they don't divide the clock by 4 while PICs do.
The test was a pin being driven high and low with no delay between the high and low instructions. Both uC were clocked at 8 MHz.
The AVR (ATMega8) pin was switching at 2 MHz. This is because the instructions (assembly) which were needed to perform this action needed 4 clock cycles to be executed (check ATMega8 datasheet for execution cycles).
The PIC (16F819) pin was switching at 500 kHz. The one reason is that the instructions needed 4 clock cycles (PIC16F819 datasheet) to be executed and the other is that the clock is divided by 4.
Thus, it is seen that AVRs are faster than PICs at the 8-bit level referring to their instruction execution cycle because for the same instructions (compared in the datasheets) both families need the same cycles per instruction and because AVR does not divide the clock.
AVRs have a larger instruction set than PICs ans thus they need less code to perform a task.However, most of the instructions (not included in the PICs instruction list) need more than one cycle to be executed and thus balances their total execution program speed comparing with PICs (if PICs didn't divide the clock and were like AVRs).
This doesn't mean they are not faster because if they had both the same instruction list AVR would be faster because it doesn't divide the clock by 4.
According the 16-bit and 32-bit versions, PICs don't divide the clock and I think they have the same program execution speed.
I have used both 8-bit PICs and AVRs and from personal tests I can say that AVRs are superior to PICs because they don't divide the clock by 4 while PICs do.
The test was a pin being driven high and low with no delay between the high and low instructions. Both uC were clocked at 8 MHz.
The AVR (ATMega8) pin was switching at 2 MHz. This is because the instructions (assembly) which were needed to perform this action needed 4 clock cycles to be executed (check ATMega8 datasheet for execution cycles).
The PIC (16F819) pin was switching at 500 kHz. The one reason is that the instructions needed 4 clock cycles (PIC16F819 datasheet) to be executed and the other is that the clock is divided by 4.
Thus, it is seen that AVRs are faster than PICs at the 8-bit level referring to their instruction execution cycle because for the same instructions (compared in the datasheets) both families need the same cycles per instruction and because AVR does not divide the clock.
AVRs have a larger instruction set than PICs ans thus they need less code to perform a task.However, most of the instructions (not included in the PICs instruction list) need more than one cycle to be executed and thus balances their total execution program speed comparing with PICs (if PICs didn't divide the clock and were like AVRs).
This doesn't mean they are not faster because if they had both the same instruction list AVR would be faster because it doesn't divide the clock by 4.
According the 16-bit and 32-bit versions, PICs don't divide the clock and I think they have the same program execution speed.