Showing results for 
Show  only  | Search instead for 
Did you mean: 
Registered: ‎03-26-2019

Maximum complexity per nonblocking assignment

Dear all,

I wonder if there is a maximum complexity for nonblocking assignments. A synthesizeable nonblocking assignment could look like this (single add):

sum <= a + b;

Probably an add+shift-assignment would be possible also?:

output <= (a + b) >> 2;

I wonder how many "instructions" could be combined in a single nonblocking assignment? Is there a rule or userguide that shows which instructions can be combined per assignment?


Thanks and best regards!

0 Kudos
1 Reply
Registered: ‎03-31-2016

FPGAs are not processors.  They do not have instructions.  They do map your description of digital logic into the flexible digital logic hardware that they are build with.

You need to understand digital logic design before trying to write your hardware description if you expect it to any good.

How much you can combine into one cycle depends on a lot of things such how fast a cycle is, how big the terms are, and what operation you are trying to perform.

Ideally you should have at least some concept of the ANDs and ORs that it will be reduced down to and the actual hardware architecture of the FPGA.  With that you can estimate the levels of logic required and thus how fast the clock can run.

Some operations are basically free such as a fixed amount of logical shift, while others such as a multiply are difficult.

If you are trying to add two 512-bit numbers at 600 MHz  you are probably going to have issues, but if you try to add eight 128-bit numbers at 60 MHz you stand a very good chance of doing that.