I've got the P2 running on my bench at home now and I'm going through it. Haven't figured out, yet, what's up with the ROM code and pull-up sensing, but I'm trying other stuff out.
Using a 20MHz crystal and the PLL, I'm running a power torture test at 180Mhz:
a) All 8 cogs are running in hubexec.
b) Each cog executes a 2-instruction loop which causes the FIFO to reload continuously.
c) Each cog issues a CORDIC command on each loop.
d) All 64 smart pins are doing PWM with a 16-clock frame, so the pins toggle every 8 clocks, on average.
e) VDD = 1.80V, VIO = 3.30V, F=180MHz
VDD current = 920mA
VIO current = 38mA
VDD power = 1.80V * 920mA = 1.66W
VIO power = 3.30V * 38mA = 0.125W
Total power = 1.79W
The chip is a little too hot to keep your finger on, but I think with a solid ground plane in a 4-layer PCB, it could be brought way down. As it is, the back of the PCB is only slightly less hot than the top of the chip, so the Amkor package and the via plane on Peter's 2-layer PCB are doing their job well.
We will design a really simple 4-layer board with internal ground/heat plane and high-current power regulators. This will be needed to discover the chip's real speed limits. My current setup uses a dual-output bench supply and some wires with grabbers. At this VDD current level, I'm dropping ~200mV just over the wires going to the board, so I need to output 2.00V to get 1.80V onto the board. Peter's board has regulators, potentially, but I'm just using it as a carrier board for the chip. This way, I can measure currents easily.
Here is the power torture test code:
' Launch all cogs with test program.
hubset ##%1_000000_0000001000_1111_10_00 'enable crystal+PLL, stay in 20MHz+ mode
waitx ##20_000_000/100 'wait ~10ms for crystal+PLL to stabilize
hubset ##%1_000000_0000001000_1111_10_11 'now switch to PLL running at 180MHz
.loop coginit cognum,#@pgm 'last iteration relaunches cog 0
cognum long 7
' Set 8 pins (per cog) to PWM mode, jump to hubexec loop
pgm cogid x 'which cog am I, 0..7?
rep @.p,#8 'start pwm pins
pat long $0010_0001
x res 1
' Hubexec loop
hubloop qrotate x,x