Ответ: и еще, пока листик с отчетом о пытках не выкинул, мож кому любопытно будет... нарисовал вот такую фигню...
LDR R1, =IO_base ;0xE0028000
LDR R2, =IO_WR
loop
STR R2, [R3,#0x4]
STR R2, [R3,#0xC]
STR R2, [R3,#0x4]
STR R2, [R3,#0xC]
B loop
дальше, запускаю из RAM, VPB = 1:1
_/ 7 \_7_/ 7 \_10_/...
цифры есть clk, 10 - есть 7+3 где 3 есть выполнение Branch
дальше, ставлю VPB = 1:2
_/ 10 \_10_/ 10 \_12_/...
удивляюсь двум вещам: 7/10 != 1/2 :-)
и то что на Branch визуально приходится два такта
(понятно что реально оно есть три, но гдето на синхронизации шин оно замазывается...)
еще дальше :-) ставлю VPB = 1:4
_/ 16 \_16_/ 16 \_20_/...
коментарии по вкусу...
LDR с порта ведет себя аналогично с разницей +1 clk...
ну и кто предложит лучшую версию ЭТОГО?