I'm working on implementing a CPU that needs a three-stage pipeline. The division of those stages is open for me to determine.
I am struggling to comprehend how the stages are counted. While some designs I've looked at are said to have three stages, I always seem to count at least four.
Here are two examples:
I've carefully annotated both images with my comprehension of the pipeline stages. In both designs, the instruction and data memories are synchronous, leading me to believe that three implicit pipeline stages have already been created. Thus, adding another pipeline location would lead to the creation of a fourth stage.
What am I getting wrong in this analysis?