A few years ago, I wanted to make a pair of dressers for my house.
I drew up the plan. I bought the wood.
I checked all my theoritical calculation twice just like I was suposed to.
Then I stood before the table saw, and I stared at the wood, afraid to make a cut until I "understood" all that I wanted to know about cutting the wood.
What if the blade grabs the wood, What if I push to fast and burn the wood, what if ....
Eventually my friend (whos garage and tools I was using) came in and asked why I had not started yet. (He knew I was an Engineer and took my time triple checking everything).
We talk some more. Eventually we turned the table saw on and I just had to learn the feel of the wood going past the blade. Sometimes it was easy, other times it was hard, and I learned to adjust my "coding style" (pressure) to match the grain of the wood.
Sure, I burned the wood a few times, but in the end, I have two beautiful (in my eyes) 4 drawer dressers that I will pass on to my kids.
Just start coding and it will all work out in the end.
(Levels of logic - the is the amount of Boolean gates between registers. It does not matter if it is in the data path or the control path. It is the result of the synthesis tools "creating logic" based on your HDL code.
Many things can effect the levels of logic.
The quality of the synthesis tool.
The ability of the synthesis tool to know the target part and apply understanding of the delays in the logic( physical synthesis-time delays).
The width of the inputs in the boolean blocks of the target part (3-4-5-6-7-8 input LUTs).
)
Enjoy