At first you accuse me of my code doing two SHA256 rounds, and at the same time claim that it is not necessary.
Here is your quote:
4) You say it does a double SHA256 - but no miner does a double SHA256
They only do a partial single SHA256, since that's all that's necessary
And then, when I told you directly that you are ignorant about this, you went to check the information and realized that you could lose your reputation. And now you already claim that the miners perform 2 rounds. At the same time, again accuse me of being wrong?
Here is your new statement:
You complain about me not watching you silly video or reading your white paper on some other web site, yet I've written here above EXACTLY how mining works and you don't bother to read or understand it, and thus get your reply WRONG.
Your a joke. Full on.
Bitcoin block header hashing is a double SHA256, but the ASIC internally doesn't do the first half of the first SHA256, and doesn't complete the second SHA256.
So saying that the ASIC does a double SHA256 is not correct.
I will admit that the way I wrote it the first time is a little misleading when I now reread it now, since I didn't mention the 2nd part of the process:
One round of SHA256 is 64 cycles (steps as you write).
Bitcoin hashing requires 3 rounds of SHA256 with 64 cycles = 3 * 64 = 192 cycles (steps). If you do 2 cycles = 64 * 2 = 128 steps, you will not get a Bitcoin hash.
So in this case the ASIC does (almost) 2 times though the 64 step loop.
You verilog file says
To explain it in simple terms:
You have a hash called SHA256
The code calculates the SHA256 hash (of course) of any input (of any length) you give it and it gives a single fixed size output.
But the process of doing that hash involves multiple steps, including one or more times though a part of the hashing code, an internal 64 step loop, and the number of times depends on the size of the input.
That internal loop is not a SHA256 hash, it's just a part of the SHA256 hash code.