# Technology Mapping of FSM Oriented to LUT-Based FPGA
## 3 Indicating the Efficiency of Mapping for a Multi-Output Function  
A structure carrying out a multi-output function in FPGA structures may be characterized by existing two types of logic resources: shared and non-shared. If in a given structure there are no shared logic resources, methods from Section 2 may be used to assess the efficiency of technology mapping. Otherwise, it is necessary to take into account shared resources in the process of technology  
Figure 3: A triangle table dedicated at determining efficiency of mapping to configurable logic blocks \(LUT\_5/1\) or \(LUT\_4/2\). mapping. It is essential to determine the number of LUT blocks in the structures associated with obtained solutions. The best way to illustrate the problem is to analyze the following example. Example:  
Let us consider technology mapping for two functions \(f0\) and \(f1\) in \(LUT\_4\)/2 and \(LUT\_5\)/1. It was assumed that bound sets may have four or five elements. In both cases, it is necessary to introduce three bound functions after a decomposition. Let us presuppose that one of bound functions may be common for \(f0\) and \(f1\) (for both \(card(X_{\text{b}})=4\) as well as \(card(X_{\text{b}})=5\)). Thus, it is necessary to choose an appropriate function \(card(X_{\text{b}})\) that will provide better technology mapping. First, let us consider the situation in which a possibility of sharing resources is ignored. Two separate structures are associated with both functions. Because of the fact that sharing logic resources does not exist, a cofactor \(\delta\) may be used to estimate the efficiency of technology mapping. In order to do that, it is needed to create triangle tables for given cutting parameters shown in Figure 4a,d. Technology mappings are marked with the symbol 'o' in triangle tables and five a chance to gain the structures Figure 4c,d. For both structures, may be indicated the sum of efficiency cofactors \(\delta\) and needed number of logic blocks. In the case of Figure 4c, the sum of cofactors \(\delta\) is 1 and the sum of blocks is 4 (free blocks are not taken into consideration). In the case of Figure 4d, the sum of efficiency \(\delta\) is 2 and the sum of blocks is 6. Thus, it is obvious that a four-element bound set is a better solution. Let us consider a situation in which one of g functions is shared. A cofactor \(\delta\) cannot be used to evaluate the efficiency of mapping as a part of logic resources is common for the structures associated with separate functions. It was assumed that a logic resource usage of a 'bound structure' (a structure  
Figure 4: Triangle tables and gained structures (without considering blocks’ sharing); (**a**) a triangle table for \(card(X_{\text{b}})=4\), (**b**) a triangle table for \(card(X_{\text{b}})=5\), (**c**,**d**) gained structures. connected with bound blocks) will be a decisive criterion while choosing technology mapping. It is key to determine the number of logic bound blocks for the functions \(f0\) and \(f1\). First, it is essential to determine the number of shared LUT blocks and then the number of non-shared blocks. In order to do that, modified triangle tables may be used. There is a substantial difference between modified triangle tables and triangle tables. The first ones include the values of a cofactor \(\delta\) in their cells. The second ones include the number of LUT blocks for a given value of the number of bound functions and the number of a bound set. The usage of modified triangle tables (Figure 5a,b) determines the number of shared blocks (the symbol 'o' marked with a red color) and the number of non-shared blocks (the symbol 'o' marked with a purple color) for each function. For the function \(card(X_{\text{b}})=4\), it is necessary to use 0.5 of a block to carry out a shared part and two blocks to carry out a non-shared part of a bound structure. For the function \(card(X_{\text{b}})=5\), in order to carry out a shared part, one block is needed. In the case of a non-shared part, it is necessary to use four LUT blocks.