--- Quote Start ---
does it really need to code multiplexor as you ?
why not to use simple else clause in single if instead of multiple if , and if you want multiplexor more than for 2 signal it is better to use case.
in any case your multiplexor have the same arhitecture and you need only one definition to make instance of all others. Only section for port map should be changed.
Are you sure that 0.25 is good value for 100MHz clock???
So you need make code more readable and manageable. And calculate right value.
you can apply restructure multiplexor global assignment if it be applicable you will see in report if it takes place.
Check Analysis and Synthesis report for average and max LUT-depth keep average at 5 or below. Compare your RTL with structure your await.
--- Quote End ---
Alex96, thank you for your reply.
It is important that Fmax is changing when parallel mux blocks are added or removed. Therefore, my aim doesn't design a mux block. My aim is providing of unchanged Fmax for adding or removing of parallel operating blocks. Additionally, I havnt got a 100MHz clock. My period is 0.25. Yes, the code dont manageable, however, more readable and manageable code cant help how change Fmax. The subject isnt manageable or structure of the code, the subject is that Fmax affacts from number of the parallel architecture with same path delay. My architecture is only simple example.
Yes, I make a some mistakes, but I couldnt find the problem. I think that I make mistake usage of the tools or Tricky said: random fitter seed. If second is correct, how are there parallel architectures with fixed Fmax?