**Force Directed Layout Algorithm**

The force directed approach
to VLSI placement, layout and routing offers significant gains in speed for
many graph problems. A circuit is first modeled as *directed graph. *The
nodes in the graph are iteratively positioned by assigning attractive and
repellent forces with respect to the other nodes in the graph. The motion is
similar to how charged particles behave in real life physical systems. As time
progresses, the nodes reach a stabilized position and the algorithm is terminated.
Figure 1 shows a VHDL description of a logic circuit. Figure 2 shows the
stabilized position of the nodes resulting from the algorithm.

library IEEE; use IEEE.std_logic_1164.all; entity c17 is port( PI1, PI2, PI3, PI4, PI5 : in std_logic; PO1, PO2 : out std_logic); end c17; architecture Structural of c17 is component NAND2 port( E1, E2 : in std_logic; A : out std_logic); end component; signal G10, G11, G16, G19 : std_logic; begin G10_NAND2 : NAND2 port map( E1 => PI1, E2 => PI3, A => G10); G11_NAND2 : NAND2 port map( E1 => PI3, E2 => PI4, A => G11); G16_NAND2 : NAND2 port map( E1 => PI2, E2 => G11, A => G16); G19_NAND2 : NAND2 port map( E1 => G11, E2 => PI5, A => G19); G22_NAND2 : NAND2 port map( E1 => G10, E2 => G16, A => PO1); G23_NAND2 : NAND2 port map( E1 => G16, E2 => G19, A => PO2); end Structural; |

**Figure 1 – **Description of VHDL File

**Figure 2 **– Layout Obtained from Force
Directed Algorithm