EE680 Project Report Final 05/05/2010 Zhou Zhao USC ID:

Size: px
Start display at page:

Download "EE680 Project Report Final 05/05/2010 Zhou Zhao USC ID:"

Transcription

1 Group Formation Group member: Zhou Zhao, Raj Shah EE680 Project Report Final 05/05/2010 Zhou Zhao USC ID: Job Assignment My job is to design a intelligent FPGA intra router, which has following objective functions. 1. Global route one FPGA to detect track congestions. 2. Suggest global and detail placement modifications to make sure routability. 3. Detail route the FPGA to assign proper configurations for each via based on the result of global router. 4. Minimize routing length of critical paths such as clock signal and control signals. Algorithm and Heuristic Description Programming IDE: NetBeans 6.8 in Mac OS X Snow Leopard Programming Language: Java SE 6 with JUNG for graph visualization General approach for global and detail routing 1. Since both global and detail routing can me modeled as undirected sparse graph, a general approach is developed to maximize code re-usability. The approach includes two phases, which are initial routing to give a quick but unoptimized solution and optimization using simulated annealing (SA). At first, the program will do weight estimation based on netlist distribution. Then, the netlist is selected and routed in random order using weighted Lee algorithm for both two and multi-terminal nets. The characteristics of weighted Lee algorithm have the capabilities to avoid congestion or most frequently routed vertices on the graph. However, the situation of overlap still exist to route all nets. In the initial stage, the situations of overlap are permitted and the number of these congested areas are counted. 2. At the second stage of optimization process, the algorithm of simulated annealing is used. The common priority for both global and detail route is to minimize congestion. In the global routing, the congestion mean that the number of routed nets through one tack is higher than the track's maximum capacity. For the detail routing, only one net can go through one wire. In addition, the via at the cross-point of two wires is occupied, once the detail routing change from vertical to horizontal direction or vice versa. If the via is occupied, other net can not use the via. Therefore, the via violation is also considered in detail routing. The objective functions of global and detail routing are shown below,, in which Tov is the number of tracks which are congested. Tpl is the total path length of routed netlist and Tv is the number of used vias. Note than, there is an additional term Tf in the objective function of detail routing, which stands for the number of violated vias. The flowchart of intra routing is shown below,

2 In the global initial routing, the program will generate a first solution which permit congestion, then simulated annealing will minimize the number of congested tracks. If there is at least one congested track after optimization, the global router will feedback only the nets which are related to congested track to placement module. The process of global routing is quick in evaluating whether the placement can be routed and needs less memory resource without concerning FPGA details. However, there is possibility that the detail router will fail, though the global routing is successful. Therefore, the program will conduct detail routing based on the results of global routing. Between the processes of global and detail routing, the netlist will be assigned randomly along global routed paths. Note that, since there is no vias between adjacent switch-boxes. The assignment module will make sure net is at the same row or column between adjacent switch-boxes, but dog-legs are injected randomly. In the detail routing of each switch-boxes, the process is similar to the global routing, but the optimization process will minimize both wire and via congestions. Features of program 1. Regular expression is used for importing netlist. If the format of netlist is not consistent, the program can still import the netlist. 2. Recursive functions are constructed in back trace process of Lee algorithm and vertical constraint graph of leftedge algorithm. 3. Rip-up and re-route process employ weighted Lee algorithm to accelerate finding routing solution without congestion. The difference between initial weight estimation and re-route is that initial route is using rectangle to estimate congestion before netlist is routed. However, in the process of rip-up and re-route, the netlist has already been routed. Therefore, the weight is along each paths. Once one net is re-routed with different path, the distribution of weight is different, therefore other routing paths have probability to have different paths. Both process of simulated annealing and weighted Lee algorithm is to minimize congestion. Before showing the program output, the coordinates of vertices and edges used in graph model are described. For instance, a FPGA of 4*4 CLB array can be modeled by a simple graph shown below. For simplicity of explanation, the top-left and bottom-right vertices can be represented by Vx[0,0] and Vx[8,8], respectively. The x is the ID of vertices. The edge between vertices is represented by Ey[1,0] between V0[0,0] and V1[1,0]. Since some vertices are null, the annotation is only used for description, which is not consistent with practical data structure in programming. Otherwise, the memory resources are wasted.

3 The standard test case is shown below, with FPGA configuration file of LICOUNT=6, SICOUNT=4, LI_CLB_NUM_P1=5, LI_IO_PIN_NUM=3, LI_T1_TRACK_NUM=4, LI_T2_TRACK_NUM=3, LI_T3_TRACK_NUM=4, LI_T4_TRACK_NUM=3 INPUT_SIGNAL(G1) 26; INPUT_SIGNAL(G2) 34; INPUT_SIGNAL(G3) 42; INPUT_SIGNAL(G4) 18; INPUT_SIGNAL(G5) 40; OUTPUT_SIGNAL(G16) 24; OUTPUT_SIGNAL(G17) 23; G8 = NAND2(G1, G3) 1 1; G9 = NAND2(G3, G4) 1 2; G12 = NAND2(G2, G9) 2 2; G15 = NAND2(G9, G5) 2 3; G16 = NAND2(G8, G12) 3 1; G17 = NAND2(G12, G15) 4 3; The imported netlist will be processed into corresponding vertices in the graph model. For instance, net 1 has a input pin at 26 and is also a input signal of NAND gate at coordinates of 1,1. The corresponding vertices which need to be connected are V9(0,1) and V79(7,8) shown in bold below. {17=[V69(6,7), V71(8,7)], 16=[V47(2,5), V71(8,7)], 1=[V9(0,1), V79(7,8)], 2=[V73(1,8), V29(2,3)], 3=[V9(0,1), V45(0,5), V11(2,1)], 4=[V35(8,3), V11(2,1)], 5=[V31(4,3), V45(0,5)], 8=[V45(0,5), V11(2,1)], 9=[V31(4,3), V29(2,3), V13(4,1)], 12=[V31(4,3), V67(4,7), V45(0,5)], 15=[V67(4,7), V33(6,3)]} Th process of wave propagation and back track in Lee algorithm is shown below. For signal 8 which need to connect vertices V45(0,5) and V11(2,1) will greedily choose minimum weight from the target vertex back to source vertex. The vertices and edges along the path will be constructed on the return of each recursive call. The path of net 8 is V45(0,5), V36(0,4), V38(2,4), V29(2,3), V20(2,2), V11(2,1)], which is equivalent to [E153(0,9), E138(2,8), E123(4,7), E89(4,5), E55(4,3)]

4 The output of program during the process of Lee algorithm is shown below. Initial routing is starting... 2 node signal 17 is routed globally [V69(6,7), V60(6,6), V62(8,6), V71(8,7)] [E233(12,13), E218(14,12), E237(16,13)] 2 node signal 16 is routed globally [V47(2,5), V56(2,6), V58(4,6), V60(6,6), V62(8,6), V71(8,7)] [E191(4,11), E210(6,12), E214(10,12), E218(14,12), E237(16,13)] 2 node signal 1 is routed globally [V9(0,1), V18(0,2), V20(2,2), V22(4,2), V24(6,2), V26(8,2), V35(8,3), V44(8,4), V53(8,5), V62(8,6), V71(8,7), V80(8,8), V79(7,8)] [E51(0,3), E70(2,4), E74(6,4), E78(10,4), E82(14,4), E101(16,5), E135(16,7), E169(16,9), E203(16,11), E237(16,13), E271(16,15), E287(15,16)] 2 node signal 2 is routed globally [V73(1,8), V72(0,8), V63(0,7), V54(0,6), V45(0,5), V36(0,4), V38(2,4), V29(2,3)] [E273(1,16), E255(0,15), E221(0,13), E187(0,11), E153(0,9), E138(2,8), E123(4,7)] [V31(4,3), V40(4,4), V49(4,5), V58(4,6), V67(4,7), V38(2,4), V36(0,4), V45(0,5)] 2 node signal 15 is routed globally [V67(4,7), V58(4,6), V60(6,6), V51(6,5), V42(6,4), V33(6,3)] [E229(8,13), E214(10,12), E199(12,11), E165(12,9), E131(12,7)] After initial routing, the number of congested track = 1 In the end of global initial routing, the number of congested track is one, which is highlighted in ellipse. Its capacity is four according to T1 track, but there are five nets routed through it.

5 After optimization in global routing, random selected nets are rip-up and re-routed. The congestion is minimized with nets are assigned to each sides of switch-boxes for detail routing as shown below. N, S, E, W, stands for north, south, east, and west, respectively.

6 The results of global routing is shown below. {17=[V69(6,7), V78(6,8), V79(7,8), V80(8,8), V71(8,7)], 1=[V9(0,1), V18(0,2), V20(2,2), V22(4,2), V24(6,2), V33(6,3), V42(6,4), V51(6,5), V60(6,6), V69(6,7), V78(6,8), V79(7,8)], 16=[V71(8,7), V62(8,6), V60(6,6), V58(4,6), V56(2,6), V47(2,5)], 2=[V29(2,3), V38(2,4), V47(2,5), V56(2,6), V65(2,7), V74(2,8), V73(1,8)], 3=[V45(0,5), V36(0,4), V27(0,3), V18(0,2), V9(0,1), V20(2,2), V11(2,1)], 4=[V35(8,3), V26(8,2), V24(6,2), V22(4,2), V20(2,2), V11(2,1)], 5=[V31(4,3), V40(4,4), V38(2,4), V36(0,4), V45(0,5)], 8=[V45(0,5), V36(0,4), V27(0,3), V18(0,2), V20(2,2), V11(2,1)], 9=[V31(4,3), V22(4,2), V13(4,1), V40(4,4), V38(2,4), V29(2,3)], 12=[V31(4,3), V40(4,4), V49(4,5), V58(4,6), V67(4,7), V56(2,6), V54(0,6), V45(0,5)], 15=[V33(6,3), V42(6,4), V51(6,5), V60(6,6), V58(4,6), V67(4,7)]} The detail routing is split into two situations. Regularly, if switch-box has assigned signal on any sides, it will be routed in detail. If there is no net assigned to east and west sides of switch-box, I define this switch-box as channel. The situation of normal switch-box is shown below. The nets are North = 1, 0, 2, 0; South = 0, 3, 1, 0; East = 0, 2, 0, 0; West = 0, 0, 3, 0; {1=[Via0(0,0), Via14(2,3)], 2=[Via2(2,0), Via7(3,1)], 3=[Via8(0,2), Via13(1,3)]} The detail routing result in this switch-box is {1=[Via0(0,0), Via1(1,0), Via5(1,1), Via6(2,1), Via10(2,2), Via14(2,3)], 2=[Via2(2,0), Via3(3,0), Via7(3,1)], 3=[Via8(0,2), Via9(1,2), Via13(1,3)]} The example of channel routing is shown above with nets North=0, 1, 0, 4, 1, 0, 5, 3; South = 2, 4, 0, 2, 0, 3, 0, 5; The constructed interval is {1=[1, 4], 2=[0, 3], 3=[5, 7], 4=[1, 3], 5=[6, 7]} with nets = {1=[Via1(1,0), Via4(4,0)], 2=[Via32(0,4), Via35(3,4)], 3=[Via37(5,4), Via7(7,0)], 4=[Via33(1,4), Via3(3,0)], 5=[Via6(6,0), Via39(7,4)]} The result is {1=[Via1(1,0), Via9(1,1), Via10(2,1), Via11(3,1), Via12(4,1), Via4(4,0)], 2=[Via32(0,4), Via24(0,3), Via25(1,3), Via26(2,3), Via27(3,3), Via35(3,4)], 3=[Via37(5,4), Via29(5,3), Via21(5,2), Via13(5,1), Via14(6,1), Via15(7,1), Via7(7,0)], 4=[Via33(1,4), Via25(1,3), Via17(1,2), Via18(2,2), Via19(3,2), Via11(3,1), Via3(3,0)], 5=[Via6(6,0), Via14(6,1), Via22(6,2), Via23(7,2), Via31(7,3), Via39(7,4)]}

Unit 7: Maze (Area) and Global Routing

Unit 7: Maze (Area) and Global Routing Unit 7: Maze (Area) and Global Routing Course contents Routing basics Maze (area) routing Global routing Readings Chapters 9.1, 9.2, 9.5 Filling Unit 7 1 Routing Unit 7 2 Routing Constraints 100% routing

More information

Basic Idea. The routing problem is typically solved using a twostep

Basic Idea. The routing problem is typically solved using a twostep Global Routing Basic Idea The routing problem is typically solved using a twostep approach: Global Routing Define the routing regions. Generate a tentative route for each net. Each net is assigned to a

More information

Graph Models for Global Routing: Grid Graph

Graph Models for Global Routing: Grid Graph Graph Models for Global Routing: Grid Graph Each cell is represented by a vertex. Two vertices are joined by an edge if the corresponding cells are adjacent to each other. The occupied cells are represented

More information

CAD Algorithms. Placement and Floorplanning

CAD Algorithms. Placement and Floorplanning CAD Algorithms Placement Mohammad Tehranipoor ECE Department 4 November 2008 1 Placement and Floorplanning Layout maps the structural representation of circuit into a physical representation Physical representation:

More information

Routing. Robust Channel Router. Figures taken from S. Gerez, Algorithms for VLSI Design Automation, Wiley, 1998

Routing. Robust Channel Router. Figures taken from S. Gerez, Algorithms for VLSI Design Automation, Wiley, 1998 Routing Robust Channel Router Figures taken from S. Gerez, Algorithms for VLSI Design Automation, Wiley, 1998 Channel Routing Algorithms Previous algorithms we considered only work when one of the types

More information

Fault Grading FPGA Interconnect Test Configurations

Fault Grading FPGA Interconnect Test Configurations * Fault Grading FPGA Interconnect Test Configurations Mehdi Baradaran Tahoori Subhasish Mitra* Shahin Toutounchi Edward J. McCluskey Center for Reliable Computing Stanford University http://crc.stanford.edu

More information

What is Xilinx Design Language?

What is Xilinx Design Language? Bill Jason P. Tomas University of Nevada Las Vegas Dept. of Electrical and Computer Engineering What is Xilinx Design Language? XDL is a human readable ASCII format compatible with the more widely used

More information

Placement Algorithm for FPGA Circuits

Placement Algorithm for FPGA Circuits Placement Algorithm for FPGA Circuits ZOLTAN BARUCH, OCTAVIAN CREŢ, KALMAN PUSZTAI Computer Science Department, Technical University of Cluj-Napoca, 26, Bariţiu St., 3400 Cluj-Napoca, Romania {Zoltan.Baruch,

More information

Place and Route for FPGAs

Place and Route for FPGAs Place and Route for FPGAs 1 FPGA CAD Flow Circuit description (VHDL, schematic,...) Synthesize to logic blocks Place logic blocks in FPGA Physical design Route connections between logic blocks FPGA programming

More information

Layout DA (Physical Design)

Layout DA (Physical Design) Layout DA (Physical Design) n Floor Planning n Placement and Partitioning n Global Routing n Routing n Layout Compaction 1 Routing n Types of Local Routing Problems n Area Routing u Lee s Algorithm n Channel

More information

Introduction. A very important step in physical design cycle. It is the process of arranging a set of modules on the layout surface.

Introduction. A very important step in physical design cycle. It is the process of arranging a set of modules on the layout surface. Placement Introduction A very important step in physical design cycle. A poor placement requires larger area. Also results in performance degradation. It is the process of arranging a set of modules on

More information

Very Large Scale Integration (VLSI)

Very Large Scale Integration (VLSI) Very Large Scale Integration (VLSI) Lecture 6 Dr. Ahmed H. Madian Ah_madian@hotmail.com Dr. Ahmed H. Madian-VLSI 1 Contents FPGA Technology Programmable logic Cell (PLC) Mux-based cells Look up table PLA

More information

JRoute: A Run-Time Routing API for FPGA Hardware

JRoute: A Run-Time Routing API for FPGA Hardware JRoute: A Run-Time Routing API for FPGA Hardware Eric Keller Xilinx Inc. 2300 55 th Street Boulder, CO 80301 Eric.Keller@xilinx.com Abstract. JRoute is a set of Java classes that provide an application

More information

GENETIC ALGORITHM BASED FPGA PLACEMENT ON GPU SUNDAR SRINIVASAN SENTHILKUMAR T. R.

GENETIC ALGORITHM BASED FPGA PLACEMENT ON GPU SUNDAR SRINIVASAN SENTHILKUMAR T. R. GENETIC ALGORITHM BASED FPGA PLACEMENT ON GPU SUNDAR SRINIVASAN SENTHILKUMAR T R FPGA PLACEMENT PROBLEM Input A technology mapped netlist of Configurable Logic Blocks (CLB) realizing a given circuit Output

More information

Introduction VLSI PHYSICAL DESIGN AUTOMATION

Introduction VLSI PHYSICAL DESIGN AUTOMATION VLSI PHYSICAL DESIGN AUTOMATION PROF. INDRANIL SENGUPTA DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING Introduction Main steps in VLSI physical design 1. Partitioning and Floorplanning l 2. Placement 3.

More information

access-list permit deny no access-list access-list permit deny 213

access-list permit deny no access-list access-list permit deny 213 DECnet Commands This section describes the function and displays the syntax of each DECnet command. For more information about defaults and usage guidelines, see the corresponding chapter of the Router

More information

Estimation of Wirelength

Estimation of Wirelength Placement The process of arranging the circuit components on a layout surface. Inputs: A set of fixed modules, a netlist. Goal: Find the best position for each module on the chip according to appropriate

More information

VLSI Physical Design: From Graph Partitioning to Timing Closure

VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5 Global Routing Original uthors: ndrew. Kahng, Jens, Igor L. Markov, Jin Hu Chapter 5 Global Routing 5. Introduction 5.2 Terminology and Definitions 5.3 Optimization Goals 5. Representations of

More information

Wire Type Assignment for FPGA Routing

Wire Type Assignment for FPGA Routing Wire Type Assignment for FPGA Routing Seokjin Lee Department of Electrical and Computer Engineering The University of Texas at Austin Austin, TX 78712 seokjin@cs.utexas.edu Hua Xiang, D. F. Wong Department

More information

Introduction of ISPD18 Contest Problem

Introduction of ISPD18 Contest Problem Introduction of ISPD18 Contest Problem Detailed routing can be divided into two steps. First, an initial detailed routing step is used to generate a detailed routing solution while handling the major design

More information

Prog. Logic Devices Schematic-Based Design Flows CMPE 415. Designer could access symbols for logic gates and functions from a library.

Prog. Logic Devices Schematic-Based Design Flows CMPE 415. Designer could access symbols for logic gates and functions from a library. Schematic-Based Design Flows Early schematic-driven ASIC flow Designer could access symbols for logic gates and functions from a library. Simulator would use a corresponding library with logic functionality

More information

Prerequisites for Rou4ng

Prerequisites for Rou4ng Basic Zroute Flow Prerequisites for Rou4ng Library requirements Zroute gets all of the design rule informa4on from the technology file; therefore, you must ensure that all design rules are defined in the

More information

L14 - Placement and Routing

L14 - Placement and Routing L14 - Placement and Routing Ajay Joshi Massachusetts Institute of Technology RTL design flow HDL RTL Synthesis manual design Library/ module generators netlist Logic optimization a b 0 1 s d clk q netlist

More information

VLSI Physical Design: From Graph Partitioning to Timing Closure

VLSI Physical Design: From Graph Partitioning to Timing Closure VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 5 Global Routing Original uthors: ndrew. Kahng, Jens, Igor L. Markov, Jin Hu VLSI Physical Design: From Graph Partitioning to Timing

More information

ECE260B CSE241A Winter Routing

ECE260B CSE241A Winter Routing ECE260B CSE241A Winter 2005 Routing Website: / courses/ ece260bw05 ECE 260B CSE 241A Routing 1 Slides courtesy of Prof. Andrew B. Kahng Physical Design Flow Input Floorplanning Read Netlist Floorplanning

More information

An Introduction to FPGA Placement. Yonghong Xu Supervisor: Dr. Khalid

An Introduction to FPGA Placement. Yonghong Xu Supervisor: Dr. Khalid RESEARCH CENTRE FOR INTEGRATED MICROSYSTEMS UNIVERSITY OF WINDSOR An Introduction to FPGA Placement Yonghong Xu Supervisor: Dr. Khalid RESEARCH CENTRE FOR INTEGRATED MICROSYSTEMS UNIVERSITY OF WINDSOR

More information

ICS 252 Introduction to Computer Design

ICS 252 Introduction to Computer Design ICS 252 Introduction to Computer Design Lecture 16 Eli Bozorgzadeh Computer Science Department-UCI References and Copyright Textbooks referred (none required) [Mic94] G. De Micheli Synthesis and Optimization

More information

Chapter 5 Global Routing

Chapter 5 Global Routing Chapter 5 Global Routing 5. Introduction 5.2 Terminology and Definitions 5.3 Optimization Goals 5. Representations of Routing Regions 5.5 The Global Routing Flow 5.6 Single-Net Routing 5.6. Rectilinear

More information

Double Patterning-Aware Detailed Routing with Mask Usage Balancing

Double Patterning-Aware Detailed Routing with Mask Usage Balancing Double Patterning-Aware Detailed Routing with Mask Usage Balancing Seong-I Lei Department of Computer Science National Tsing Hua University HsinChu, Taiwan Email: d9762804@oz.nthu.edu.tw Chris Chu Department

More information

Reference. Wayne Wolf, FPGA-Based System Design Pearson Education, N Krishna Prakash,, Amrita School of Engineering

Reference. Wayne Wolf, FPGA-Based System Design Pearson Education, N Krishna Prakash,, Amrita School of Engineering FPGA Fabrics Reference Wayne Wolf, FPGA-Based System Design Pearson Education, 2004 Logic Design Process Combinational logic networks Functionality. Other requirements: Size. Power. Primary inputs Performance.

More information

METHODS TO LOCALIZE SHORTS BETWEEN POWER AND GROUND CIRCUITS

METHODS TO LOCALIZE SHORTS BETWEEN POWER AND GROUND CIRCUITS CANADIAN APPLIED MATHEMATICS QUARTERLY Volume 12, Number 1, Spring 2004 METHODS TO LOCALIZE SHORTS BETWEEN POWER AND GROUND CIRCUITS MARK BRAVERMAN, SHENGYUAN CHEN, MARCIO GAMEIRO, NADINE GÄRTNER, YASONG

More information

ESE 570 Cadence Lab Assignment 2: Introduction to Spectre, Manual Layout Drawing and Post Layout Simulation (PLS)

ESE 570 Cadence Lab Assignment 2: Introduction to Spectre, Manual Layout Drawing and Post Layout Simulation (PLS) ESE 570 Cadence Lab Assignment 2: Introduction to Spectre, Manual Layout Drawing and Post Layout Simulation (PLS) Objective Part A: To become acquainted with Spectre (or HSpice) by simulating an inverter,

More information

Enhanced EDF Scheduling Algorithms for Orchestrating Network-wide wide Active Measurements

Enhanced EDF Scheduling Algorithms for Orchestrating Network-wide wide Active Measurements Enhanced EDF Scheduling Algorithms for Orchestrating Network-wide wide Active Measurements Prasad Calyam,, Chang-Gun Lee Phani Kumar Arava, Dima Krymskiy OARnet,, The Ohio State University IEEE RTSS, Miami,

More information

Reducing Power in an FPGA via Computer-Aided Design

Reducing Power in an FPGA via Computer-Aided Design Reducing Power in an FPGA via Computer-Aided Design Steve Wilton University of British Columbia Power Reduction via CAD How to reduce power dissipation in an FPGA: - Create power-aware CAD tools - Create

More information

Academic Clustering and Placement Tools for Modern Field-Programmable Gate Array Architectures

Academic Clustering and Placement Tools for Modern Field-Programmable Gate Array Architectures Academic Clustering and Placement Tools for Modern Field-Programmable Gate Array Architectures by Daniele G Paladino A thesis submitted in conformity with the requirements for the degree of Master of Applied

More information

Chapter 6 Detailed Routing

Chapter 6 Detailed Routing hapter 6 Detailed Routing 6.1 Terminology 6.2 Horizontal and Vertical onstraint Graphs 6.2.1 Horizontal onstraint Graphs 6.2.2 Vertical onstraint Graphs 6.3 hannel Routing lgorithms 6.3.1 Left-Edge lgorithm

More information

Fast and Memory-Efficient Routing Algorithms for Field Programmable Gate Arrays with Sparse Intra-cluster Routing Crossbars

Fast and Memory-Efficient Routing Algorithms for Field Programmable Gate Arrays with Sparse Intra-cluster Routing Crossbars > REPLACE THIS LINE WITH YOUR PAPER IDENTIFICATION NUMBER (DOUBLE-CLICK HERE TO EDIT) < 1 Fast and Memory-Efficient Routing Algorithms for Field Programmable Gate Arrays with Sparse Intra-cluster Routing

More information

Digital VLSI Design. Lecture 7: Placement

Digital VLSI Design. Lecture 7: Placement Digital VLSI Design Lecture 7: Placement Semester A, 2016-17 Lecturer: Dr. Adam Teman 29 December 2016 Disclaimer: This course was prepared, in its entirety, by Adam Teman. Many materials were copied from

More information

Physical Design of Digital Integrated Circuits (EN0291 S40) Sherief Reda Division of Engineering, Brown University Fall 2006

Physical Design of Digital Integrated Circuits (EN0291 S40) Sherief Reda Division of Engineering, Brown University Fall 2006 Physical Design of Digital Integrated Circuits (EN029 S40) Sherief Reda Division of Engineering, Brown University Fall 2006 Lecture 09: Routing Introduction to Routing Global Routing Detailed Routing 2

More information

ICS 252 Introduction to Computer Design

ICS 252 Introduction to Computer Design ICS 252 Introduction to Computer Design Placement Fall 2007 Eli Bozorgzadeh Computer Science Department-UCI References and Copyright Textbooks referred (none required) [Mic94] G. De Micheli Synthesis and

More information

4. If you are prompted to enable hardware acceleration to improve performance, click

4. If you are prompted to enable hardware acceleration to improve performance, click Exercise 1a: Creating new points ArcGIS 10 Complexity: Beginner Data Requirement: ArcGIS Tutorial Data Setup About creating new points In this exercise, you will use an aerial photograph to create a new

More information

Fishbone: A Block-Level Placement and Routing Scheme

Fishbone: A Block-Level Placement and Routing Scheme Fishbone: Block-Level Placement and Routing Scheme Fan Mo EECS, UC Berkeley Robert K. Brayton EECS, UC Berkeley Cory Hall, UC Berkeley 57 Cory Hall, UC Berkeley Berkeley, C97 Berkeley, C97-5-6-6 -5-6-98

More information

EE582 Physical Design Automation of VLSI Circuits and Systems

EE582 Physical Design Automation of VLSI Circuits and Systems EE582 Prof. Dae Hyun Kim School of Electrical Engineering and Computer Science Washington State University Preliminaries Table of Contents Semiconductor manufacturing Problems to solve Algorithm complexity

More information

A Path Based Algorithm for Timing Driven. Logic Replication in FPGA

A Path Based Algorithm for Timing Driven. Logic Replication in FPGA A Path Based Algorithm for Timing Driven Logic Replication in FPGA By Giancarlo Beraudo B.S., Politecnico di Torino, Torino, 2001 THESIS Submitted as partial fulfillment of the requirements for the degree

More information

AN 567: Quartus II Design Separation Flow

AN 567: Quartus II Design Separation Flow AN 567: Quartus II Design Separation Flow June 2009 AN-567-1.0 Introduction This application note assumes familiarity with the Quartus II incremental compilation flow and floorplanning with the LogicLock

More information

AN ACCELERATOR FOR FPGA PLACEMENT

AN ACCELERATOR FOR FPGA PLACEMENT AN ACCELERATOR FOR FPGA PLACEMENT Pritha Banerjee and Susmita Sur-Kolay * Abstract In this paper, we propose a constructive heuristic for initial placement of a given netlist of CLBs on a FPGA, in order

More information

EECS150, Fall 2004, Midterm 1, Prof. Culler. Problem 1 (15 points) 1.a. Circle the gate-level circuits that DO NOT implement a Boolean AND function.

EECS150, Fall 2004, Midterm 1, Prof. Culler. Problem 1 (15 points) 1.a. Circle the gate-level circuits that DO NOT implement a Boolean AND function. Problem 1 (15 points) 1.a. Circle the gate-level circuits that DO NOT implement a Boolean AND function. 1.b. Show that a 2-to-1 MUX is universal (i.e. that any Boolean expression can be implemented with

More information

IEEE TRANSACTIONS ON VERY LARGE SCALE INTEGRATION (VLSI) SYSTEMS 1

IEEE TRANSACTIONS ON VERY LARGE SCALE INTEGRATION (VLSI) SYSTEMS 1 IEEE TRANSACTIONS ON VERY LARGE SCALE INTEGRATION (VLSI) SYSTEMS 1 RegularRoute: An Efficient Detailed Router Applying Regular Routing Patterns Yanheng Zhang and Chris Chu Abstract In this paper, we propose

More information

CS612 Algorithms for Electronic Design Automation

CS612 Algorithms for Electronic Design Automation CS612 Algorithms for Electronic Design Automation Lecture 8 Network Flow Based Modeling 1 Flow Network Definition Given a directed graph G = (V, E): Each edge (u, v) has capacity c(u,v) 0 Each edge (u,

More information

Pseudopin Assignment with Crosstalk Noise Control

Pseudopin Assignment with Crosstalk Noise Control 598 IEEE TRANSACTIONS ON COMPUTER-AIDED DESIGN OF INTEGRATED CIRCUITS AND SYSTEMS, VOL. 20, NO. 5, MAY 2001 Pseudopin Assignment with Crosstalk Noise Control Chin-Chih Chang and Jason Cong, Fellow, IEEE

More information

ELGIN ACADEMY Mathematics Department Evaluation Booklet (Main) Name Reg

ELGIN ACADEMY Mathematics Department Evaluation Booklet (Main) Name Reg ELGIN ACADEMY Mathematics Department Evaluation Booklet (Main) Name Reg CfEM You should be able to use this evaluation booklet to help chart your progress in the Maths department from August in S1 until

More information

Hardware describing languages, high level tools and Synthesis

Hardware describing languages, high level tools and Synthesis Hardware describing languages, high level tools and Synthesis Hardware describing languages (HDL) Compiled/Interpreted Compiled: Description compiled into C and then into binary or directly into binary

More information

CS612 Algorithms for Electronic Design Automation. Global Routing

CS612 Algorithms for Electronic Design Automation. Global Routing CS612 Algorithms for Electronic Design Automation Global Routing Mustafa Ozdal CS 612 Lecture 7 Mustafa Ozdal Computer Engineering Department, Bilkent University 1 MOST SLIDES ARE FROM THE BOOK: MODIFICATIONS

More information

VLSI Design Automation Final Project Due: June 26 th, Project: A Router

VLSI Design Automation Final Project Due: June 26 th, Project: A Router Project: A Router In lecture, we described how to use the maze routing method to route the wires in a large ASIC, using a 3-dimensional stack of routing grids. In this project assignment, you get to build

More information

Intrusive Routing for Improved Standard Cell Pin Access

Intrusive Routing for Improved Standard Cell Pin Access Intrusive Routing for Improved Standard Cell Pin Access Vishesh Dokania Prof. Puneet Gupta NanoCAD Lab Department of Electrical Engineering, UCLA MS Project Presentation March 10, 2017 Motivation Standard-cell

More information

Fault-Tolerant Wormhole Routing Algorithms in Meshes in the Presence of Concave Faults

Fault-Tolerant Wormhole Routing Algorithms in Meshes in the Presence of Concave Faults Fault-Tolerant Wormhole Routing Algorithms in Meshes in the Presence of Concave Faults Seungjin Park Jong-Hoon Youn Bella Bose Dept. of Computer Science Dept. of Computer Science Dept. of Computer Science

More information

TROUTE: A Reconfigurability-aware FPGA Router

TROUTE: A Reconfigurability-aware FPGA Router TROUTE: A Reconfigurability-aware FPGA Router Karel Bruneel and Dirk Stroobandt Hardware and Embedded Systems Group, ELIS Dept., Ghent University, Sint-Pietersnieuwstraat 4, B-9000 Gent, Belgium {karel.bruneel;dirk.stroobandt}@ugent.be

More information

Problem Formulation. Specialized algorithms are required for clock (and power nets) due to strict specifications for routing such nets.

Problem Formulation. Specialized algorithms are required for clock (and power nets) due to strict specifications for routing such nets. Clock Routing Problem Formulation Specialized algorithms are required for clock (and power nets) due to strict specifications for routing such nets. Better to develop specialized routers for these nets.

More information

Genetic Algorithm for Circuit Partitioning

Genetic Algorithm for Circuit Partitioning Genetic Algorithm for Circuit Partitioning ZOLTAN BARUCH, OCTAVIAN CREŢ, KALMAN PUSZTAI Computer Science Department, Technical University of Cluj-Napoca, 26, Bariţiu St., 3400 Cluj-Napoca, Romania {Zoltan.Baruch,

More information

On the Complexity of the Channel Routing Problem in the Dogleg-free Multilayer Manhattan Model

On the Complexity of the Channel Routing Problem in the Dogleg-free Multilayer Manhattan Model On the Complexity of the Channel Routing Problem in the Dogleg-free Multilayer Manhattan Model Kornélia Ambrus Somogyi Budapest Tech, email: ambrusne.somogyi.kornelia@nik.bmf.hu András Recski 1 Budapest

More information

Lesson 2: First Java Programs

Lesson 2: First Java Programs Lesson 2: First Java Programs Lesson 2: First Java Programs Objectives: Discuss why Java is an important programming language. Explain the Java virtual machine and byte code. Choose a user interface style.

More information

Temperature-Aware Routing in 3D ICs

Temperature-Aware Routing in 3D ICs Temperature-Aware Routing in 3D ICs Tianpei Zhang, Yong Zhan and Sachin S. Sapatnekar Department of Electrical and Computer Engineering University of Minnesota 1 Outline Temperature-aware 3D global routing

More information

CAD Flow for FPGAs Introduction

CAD Flow for FPGAs Introduction CAD Flow for FPGAs Introduction What is EDA? o EDA Electronic Design Automation or (CAD) o Methodologies, algorithms and tools, which assist and automatethe design, verification, and testing of electronic

More information

Karthik Narayanan, Santosh Madiraju EEL Embedded Systems Seminar 1/41 1

Karthik Narayanan, Santosh Madiraju EEL Embedded Systems Seminar 1/41 1 Karthik Narayanan, Santosh Madiraju EEL6935 - Embedded Systems Seminar 1/41 1 Efficient Search Space Exploration for HW-SW Partitioning Hardware/Software Codesign and System Synthesis, 2004. CODES + ISSS

More information

DECnet Commands. Not all Cisco access servers support DECnet. For more information, refer to the release notes for the current Cisco IOS release.

DECnet Commands. Not all Cisco access servers support DECnet. For more information, refer to the release notes for the current Cisco IOS release. Digital Equipment Corporation developed the DECnet protocol to provide a way for its computers to communicate with one another. Currently in its fifth major product release, DECnet Phase V is a superset

More information

OPTIMIZATION OF TRANSISTOR-LEVEL FLOORPLANS FOR FIELD-PROGRAMMABLE GATE ARRAYS. Ryan Fung. Supervisor: Jonathan Rose. April 2002

OPTIMIZATION OF TRANSISTOR-LEVEL FLOORPLANS FOR FIELD-PROGRAMMABLE GATE ARRAYS. Ryan Fung. Supervisor: Jonathan Rose. April 2002 OPTIMIZATION OF TRANSISTOR-LEVEL FLOORPLANS FOR FIELD-PROGRAMMABLE GATE ARRAYS by Ryan Fung Supervisor: Jonathan Rose April 2002 OPTIMIZATION OF TRANSISTOR-LEVEL FLOORPLANS FOR FIELD-PROGRAMMABLE GATE

More information

Real Time Operating System

Real Time Operating System Chapter 11 Real Time Operating System Lesson 06 Case Study of Traffic Light for use of RTOS 51 in Design Assumptions When a vehicle coming from north, Left turn (north to west) allowed directly Left-lane

More information

Animation of VLSI CAD Algorithms A Case Study

Animation of VLSI CAD Algorithms A Case Study Session 2220 Animation of VLSI CAD Algorithms A Case Study John A. Nestor Department of Electrical and Computer Engineering Lafayette College Abstract The design of modern VLSI chips requires the extensive

More information

How Much Logic Should Go in an FPGA Logic Block?

How Much Logic Should Go in an FPGA Logic Block? How Much Logic Should Go in an FPGA Logic Block? Vaughn Betz and Jonathan Rose Department of Electrical and Computer Engineering, University of Toronto Toronto, Ontario, Canada M5S 3G4 {vaughn, jayar}@eecgutorontoca

More information

Placement ABOUT THIS CHAPTER 11.1 INTRODUCTION CHAPTER. Chris Chu Iowa State University, Ames, Iowa

Placement ABOUT THIS CHAPTER 11.1 INTRODUCTION CHAPTER. Chris Chu Iowa State University, Ames, Iowa CHAPTER Placement 11 Chris Chu Iowa State University, Ames, Iowa ABOUT THIS CHAPTER Placement is the process of determining the locations of circuit devices on a die surface. It is an important stage in

More information

Genetic Algorithm for FPGA Placement

Genetic Algorithm for FPGA Placement Genetic Algorithm for FPGA Placement Zoltan Baruch, Octavian Creţ, and Horia Giurgiu Computer Science Department, Technical University of Cluj-Napoca, 26, Bariţiu St., 3400 Cluj-Napoca, Romania {Zoltan.Baruch,

More information

Segmented Routing for Speed-Performance and Routability in Field-Programmable Gate Arrays

Segmented Routing for Speed-Performance and Routability in Field-Programmable Gate Arrays Segmented Routing for Speed-Performance and Routability in Field-Programmable Gate Arrays Stephen Brown, Muhammad Khellah, and Guy emieux Department of Electrical and omputer Engineering University of

More information

FPGA BASED ADAPTIVE RESOURCE EFFICIENT ERROR CONTROL METHODOLOGY FOR NETWORK ON CHIP

FPGA BASED ADAPTIVE RESOURCE EFFICIENT ERROR CONTROL METHODOLOGY FOR NETWORK ON CHIP FPGA BASED ADAPTIVE RESOURCE EFFICIENT ERROR CONTROL METHODOLOGY FOR NETWORK ON CHIP 1 M.DEIVAKANI, 2 D.SHANTHI 1 Associate Professor, Department of Electronics and Communication Engineering PSNA College

More information

Niyati Shah Department of ECE University of Toronto

Niyati Shah Department of ECE University of Toronto Niyati Shah Department of ECE University of Toronto shahniya@eecg.utoronto.ca Jonathan Rose Department of ECE University of Toronto jayar@eecg.utoronto.ca 1 Involves connecting output pins of logic blocks

More information

Prepared by Dr. Ulkuhan Guler GT-Bionics Lab Georgia Institute of Technology

Prepared by Dr. Ulkuhan Guler GT-Bionics Lab Georgia Institute of Technology Prepared by Dr. Ulkuhan Guler GT-Bionics Lab Georgia Institute of Technology OUTLINE Introduction Mapping for Schematic and Layout Connectivity Generate Layout from Schematic Connectivity Some Useful Features

More information

Laboratory 6. - Using Encounter for Automatic Place and Route. By Mulong Li, 2013

Laboratory 6. - Using Encounter for Automatic Place and Route. By Mulong Li, 2013 CME 342 (VLSI Circuit Design) Laboratory 6 - Using Encounter for Automatic Place and Route By Mulong Li, 2013 Reference: Digital VLSI Chip Design with Cadence and Synopsys CAD Tools, Erik Brunvand Background

More information

EE 1315: DIGITAL LOGIC LAB EE Dept, UMD

EE 1315: DIGITAL LOGIC LAB EE Dept, UMD EXPERIMENT # 7: Basic Latches EE 1315: DIGITAL LOGIC LAB EE Dept, UMD Latches are primitive memory elements of sequential circuits that are used in building simple noise filtering circuits and flip-flops.

More information

CS2303 Systems Programming Concepts

CS2303 Systems Programming Concepts Program 5 64 Points Due: February 27, 2008 at 11:59 p.m. {modified February 15, 2008} A Simulation of MANET Source Routing in C++ Note: There is NO late period partial credit points for this assignment!!!

More information

Solutions to Problem 1 of Homework 3 (10 (+6) Points)

Solutions to Problem 1 of Homework 3 (10 (+6) Points) Solutions to Problem 1 of Homework 3 (10 (+6) Points) Sometimes, computing extra information can lead to more efficient divide-and-conquer algorithms. As an example, we will improve on the solution to

More information

Enabling DECnet Routing, page 2 (required) Enabling Concurrent Routing and Bridging, page 5 (optional)

Enabling DECnet Routing, page 2 (required) Enabling Concurrent Routing and Bridging, page 5 (optional) Configuring First Published: December 15, 1997 Last Updated: December 14, 2011 The Configuring module describes how to configure the Cisco implementation of the routing protocol. Finding Feature Information

More information

Using the Routing Demo program

Using the Routing Demo program This program is intended to demonstrate the audio routing capability of the Eventide H8000 family Harmonizer brand effects processors. In the following text, these will be referred to as H8000, though

More information

Synthesis of VHDL Code for FPGA Design Flow Using Xilinx PlanAhead Tool

Synthesis of VHDL Code for FPGA Design Flow Using Xilinx PlanAhead Tool Synthesis of VHDL Code for FPGA Design Flow Using Xilinx PlanAhead Tool Md. Abdul Latif Sarker, Moon Ho Lee Division of Electronics & Information Engineering Chonbuk National University 664-14 1GA Dekjin-Dong

More information

SYNTHETIC CIRCUIT GENERATION USING CLUSTERING AND ITERATION

SYNTHETIC CIRCUIT GENERATION USING CLUSTERING AND ITERATION SYNTHETIC CIRCUIT GENERATION USING CLUSTERING AND ITERATION Paul D. Kundarewich and Jonathan Rose Department of Electrical and Computer Engineering, University of Toronto Toronto, ON, M5S G4, Canada {kundarew,

More information

c 2011 Yun Wei Chang

c 2011 Yun Wei Chang c 2011 Yun Wei Chang SINGLE-LAYER BUS ROUTING FOR HIGH-SPEED BOARDS BY YUN WEI CHANG THESIS Submitted in partial fulfillment of the requirements for the degree of Master of Science in Electrical and Computer

More information

Lecture 3: Art Gallery Problems and Polygon Triangulation

Lecture 3: Art Gallery Problems and Polygon Triangulation EECS 396/496: Computational Geometry Fall 2017 Lecture 3: Art Gallery Problems and Polygon Triangulation Lecturer: Huck Bennett In this lecture, we study the problem of guarding an art gallery (specified

More information

Lesson 13: Other Tools in OrCAD Capture

Lesson 13: Other Tools in OrCAD Capture Lesson 13: Other Tools in OrCAD Capture Lesson Objectives After you complete this lesson you will be able to: Add inter-sheet signal references Create a cross reference report (Optional) Generate a Bill

More information

RUN-TIME RECONFIGURABLE IMPLEMENTATION OF DSP ALGORITHMS USING DISTRIBUTED ARITHMETIC. Zoltan Baruch

RUN-TIME RECONFIGURABLE IMPLEMENTATION OF DSP ALGORITHMS USING DISTRIBUTED ARITHMETIC. Zoltan Baruch RUN-TIME RECONFIGURABLE IMPLEMENTATION OF DSP ALGORITHMS USING DISTRIBUTED ARITHMETIC Zoltan Baruch Computer Science Department, Technical University of Cluj-Napoca, 26-28, Bariţiu St., 3400 Cluj-Napoca,

More information

5. Quartus II Design Separation Flow

5. Quartus II Design Separation Flow 5. Quartus II Design Separation Flow June 2012 QII51019-12.0.0 QII51019-12.0.0 This chapter contains rules and guidelines for creating a floorplan with the design separation flow, and assumes familiarity

More information

A Process Model suitable for defining and programming MpSoCs

A Process Model suitable for defining and programming MpSoCs A Process Model suitable for defining and programming MpSoCs MpSoC-Workshop at Rheinfels, 29-30.6.2010 F. Mayer-Lindenberg, TU Hamburg-Harburg 1. Motivation 2. The Process Model 3. Mapping to MpSoC 4.

More information

Homework #6 (Constraint Satisfaction, Non-Deterministic Uncertainty and Adversarial Search) Out: 2/21/11 Due: 2/29/11 (at noon)

Homework #6 (Constraint Satisfaction, Non-Deterministic Uncertainty and Adversarial Search) Out: 2/21/11 Due: 2/29/11 (at noon) CS121 Introduction to Artificial Intelligence Winter 2011 Homework #6 (Constraint Satisfaction, Non-Deterministic Uncertainty and Adversarial Search) Out: 2/21/11 Due: 2/29/11 (at noon) How to complete

More information

Efficient Multilayer Routing Based on Obstacle-Avoiding Preferred Direction Steiner Tree

Efficient Multilayer Routing Based on Obstacle-Avoiding Preferred Direction Steiner Tree Efficient Multilayer Routing Based on Obstacle-Avoiding Preferred Direction Steiner Tree Ching-Hung Liu, Yao-Hsin Chou, Shin-Yi Yuan, and Sy-Yen Kuo National Taiwan University 1 Outline 2 Outline 3 The

More information

1 Introduction and Examples

1 Introduction and Examples 1 Introduction and Examples Sequencing Problems Definition A sequencing problem is one that involves finding a sequence of steps that transforms an initial system state to a pre-defined goal state for

More information

Lecture 3: Tilings and undecidability

Lecture 3: Tilings and undecidability Lecture : Tilings and undecidability Wang tiles and the tiling problem A (relatively) small aperiodic tile set Undecidability of the tiling problem Wang tiles and decidability questions Suppose we are

More information

Study of GALS based FPGA Architecture Using CAD Tool

Study of GALS based FPGA Architecture Using CAD Tool Study of GALS based FPGA Architecture Using CAD Tool Savitha Devaraj Department of Electronics Engineering Lokmanya Tilak College of Engineering, Navi Mumbai, Maharashtra, India Neeta Gargote Department

More information

Lesson 6 Programming Arduino Example 9.7. Chapter-9 L06: "Internet of Things ", Raj Kamal, Publs.: McGraw-Hill Education

Lesson 6 Programming Arduino Example 9.7. Chapter-9 L06: Internet of Things , Raj Kamal, Publs.: McGraw-Hill Education Lesson 6 Programming Arduino Example 9.7 1 Multitasking Environment A multitasking environment consists of multiple processes, tasks or threads. Consider Example 9.1. A set of Functions void north_south_green

More information

A Re-router for Reducing Wire Length in Multi- Layer No-Dogleg Channel Routing Swagata Saha Sau a*, Rajat Kumar Pal a

A Re-router for Reducing Wire Length in Multi- Layer No-Dogleg Channel Routing Swagata Saha Sau a*, Rajat Kumar Pal a A Re-router Reducing Wire Length in Multi- Layer No-Dogleg Routing Swagata Saha Sau a*, Rajat Kumar Pal a a Department of Computer Science and Engineering, University of Calcutta, JD - 2, Sector-III, Salt

More information

Lecture 26, March 16, Chapter 35, Polarization

Lecture 26, March 16, Chapter 35, Polarization Physics 5B Lecture 26, March 16, 2012 Chapter 35, Polarization Simple Spectrometer d sin m Resolving power, to separate two lines closely spaced in wavelength by : R mn Resolving Power Two lines not resolved.

More information

The Xilinx XC6200 chip, the software tools and the board development tools

The Xilinx XC6200 chip, the software tools and the board development tools The Xilinx XC6200 chip, the software tools and the board development tools What is an FPGA? Field Programmable Gate Array Fully programmable alternative to a customized chip Used to implement functions

More information

Spiral 2-8. Cell Layout

Spiral 2-8. Cell Layout 2-8.1 Spiral 2-8 Cell Layout 2-8.2 Learning Outcomes I understand how a digital circuit is composed of layers of materials forming transistors and wires I understand how each layer is expressed as geometric

More information

Topics. ! PLAs.! Memories: ! Datapaths.! Floor Planning ! ROM;! SRAM;! DRAM. Modern VLSI Design 2e: Chapter 6. Copyright 1994, 1998 Prentice Hall

Topics. ! PLAs.! Memories: ! Datapaths.! Floor Planning ! ROM;! SRAM;! DRAM. Modern VLSI Design 2e: Chapter 6. Copyright 1994, 1998 Prentice Hall Topics! PLAs.! Memories:! ROM;! SRAM;! DRAM.! Datapaths.! Floor Planning Programmable logic array (PLA)! Used to implement specialized logic functions.! A PLA decodes only some addresses (input values);

More information