Hi BBKcoins,
I would like to share my experiences so that you can have more samples to evaluate your design and find the potential instability
As I mentioned before I am using the exact circuit as you drew for the clock generation with RC values 100ohm and 30Pf. The two NOR gates are all 74AUP1G02 on your BOM. From my oscilloscope I can see that the rising and falling edge are not as sharp as yours but better than using only one NOR gate.
I mounted 8 chips on the board and currently 6 chips are fully working. I have checked pins of the last two chips again and again. I cannot find any soldering problem and all the signals are correct (clock, config, report, powers). I'll re-solder them later.
I have been running this board for a while (~ 1 hour) at 300MHz. The HW is above 10% which is similar to terrahash's board. Here's the statistics
"Errors / Chip 0": "0000 0000 0048 0037 0028 0034 0020 0036 ",
"Nonces / Chip 0": "0002 0000 0281 0276 0276 0273 0302 0268 ",
Very strange the last chip returned only two good nonces after 1 hour running.
I want to thank you for your great work. The board is working basically. However, I have to say when it's massively produced, HW might be a big issue. Some boards like yours may work great with low HW but others like mine and terrahash's may not.
Thank you for sharing. I have some ideas for others to test to improve the error rate. I am quite certain now that it is related to USB induced noise. The PIC docs indicate that no external parts are needed but it seems that not enough or incorrect conditioning is done internally in the chip. Chaoztc also suggested checking the USB GND, and I think he may be spot on with that.
I scoped my board connected to the RasPi instead of my notebook and the 1.2V core is much cleaner now. It does not have the 100Hz/100kHz/100MHz noise I posted about earlie, and only shows 600hKz buck reg pulses. I'm thinking that noise came in from the notebook via USB and by adding some ferrite beads there we may be able to improve noise enough to improve substantially. In my case with the RasPi it has run overnight in exactly the same location, same PSU but has 109 errors for 16243 hash, or 0.6%.
I don't have access to ferrite beads here. Not in a timely fashion. I'd suggest 3 things to test.
1. add a 0.1uF cap next to PIC on VCC-GND to improve decoupling because I think the one that is there is not enough. This I will test myself this morning to see if inadequate decoupling is causing data glitches in the PIC.
2. pull the USB conn off board and test with 3 ferrite beads. Use a 120 ohm on the D+ D- lines, and a 220 ohm on the GND connection USB GND to board GND. The specific parts are:
BLM18BB121SN1D 120 ohm, 200mA
BLM21PG221SN1D 220 ohm, 2A
It may be enough to add just the GND one if the PIC has internal conditioning. So try that first. I noticed that my noise problem was on the GND plane as well.
3. scope the power before and after. Obviously if this makes a big difference then I'll need to get it into the revised board, which means moving the PIC slightly - though I think the pending revision for QFN pkg is small enough to fit with beads.