Forum Discussion
An encoder is a logic structure constructed from LUTs (look up tables). They are not a different type of resource in the device. What you are thinking of in your second paragraph are the registers that are part of the LABs (logic array blocks) to store data.
So your question really is whether to implement your design as either a pure combinational logic structure (composed of just LUTs) or a synchronous design where outputs, generated from LUT logic, are stored in registers.
So the answer really depends on what you need. If your outputs are constantly monitored by whatever they are being fed to and whatever that is can process constantly changing inputs to your design (like just simple LEDs), the design can be purely combinational. In other words, your design is purely "sensitive" to the inputs because the outputs will immediately (after a logic gate delay) change if there is a change to the inputs. If you want to store the results of your design to prevent changes to them if there is a change or glitch on the inputs, you would need to have a synchronous design.
Neither solution is really a way of "reducing processing time" because the same logic is required to implement whatever function you create and the delay through that logic would be the same. The only difference is the outputs being available "immediately" or at the next clock edge. The "safer" solution is to register the outputs, creating a synchronous design.
Hope that helps.
#iwork4intel
Thank you for your reply.
I am actually designing an asynchronous circuit, in which the clock signal would be replaced by handshaking (REQUEST and ACKNOWLEDGEMENT) signals. Therefore the processing time of the asynchronous circuit depends upon the input unlike the synchronous design, in which the time period is calculated based on the worst-case or critical path delay. The no of clock cycles required by a given data is fixed, and that data can be either stored in an LUT or it can be designed using an encoder. The encoder would convert the input in no of cycle required or the same can be stored in LUT, and I need to choose the option which takes less processing time. What do you suggest?