Perfect! That was an excellent (and concise) explanation. Thanks so much for that. That's the missing link that I didn't understand. You see, I had it in my mind that I could just do the hash function on the FPGA in a black box and have my miners handle the front end and communicate with it to do the actual hashing, but even within my house at a local level it became clear that the bottleneck was going to be communication with that black box. In the case of the "partial" hash function that my students implemented for Monero, we even had what we called a "hash server" set up with a number of computers doing a remote procedure call to it (with concurrency issues cleverly handled) and it was mining live on an XMR pool successfully. It was all just a "proof of concept" experiment, but it worked and it mined! However, when I started doing the math I realized that although 24 rounds of Keccak was executing thousands of times faster in the FPGA than in the software, since I was doing a single hash at a time, it was taking way too long to get the data to and from the FPGA "hash server" to the local miners in the house.
So if I understand what you told me, I need to also implement this "merkel tree" business local to the FPGA so that it can in turn execute millions/billions of hashes iteratively without having to exchange information with the pool (or with my miners in my case of this "hash server" architecture I described).
Now although I can continue reverse engineering the cpuminer software, it took a tremendous amount of effort to just sort out what I've done so far - to that end, can you point me to some resource that would describe the technical details of dealing with the merkel tree? Since this is a BTC forum, I assume such resources would be for BTC, but since I'm interested in SmartCash/Keccak (my Keccak algorithm in the FPGA is phenomenally fast) I'd prefer either more generic coverage or something specific to Keccak than just BTC only. Do you have any suggestions about where I might find what I'm looking for? Thanks in advance. You've been a great help!
-gt-