Make Based Flow Engineering - A Customizable Flow Generator
Transcript of Make Based Flow Engineering - A Customizable Flow Generator
![Page 1: Make Based Flow Engineering - A Customizable Flow Generator](https://reader031.fdocuments.in/reader031/viewer/2022012023/6169cfc611a7b741a34ba1da/html5/thumbnails/1.jpg)
Make BasedFlow
Engineering
Lijun Li
Introduction
Make
What is “make”
In the context offlow
Showcase
Cadence lowpower flow(frontend)
“Mickey-Mouse”flow generator
Summary
Make Based Flow EngineeringA Customizable Flow Generator
Lijun Li
ECE DepartmentUniversity of Virginia
May 7, 2010
![Page 2: Make Based Flow Engineering - A Customizable Flow Generator](https://reader031.fdocuments.in/reader031/viewer/2022012023/6169cfc611a7b741a34ba1da/html5/thumbnails/2.jpg)
Make BasedFlow
Engineering
Lijun Li
Introduction
Make
What is “make”
In the context offlow
Showcase
Cadence lowpower flow(frontend)
“Mickey-Mouse”flow generator
Summary
Outline
1 Flows Are Complicated
2 MakeWhat is “make”In the context of flow
3 ShowcaseCadence low power flow (frontend)“Mickey-Mouse” flow generator
4 Summary
![Page 3: Make Based Flow Engineering - A Customizable Flow Generator](https://reader031.fdocuments.in/reader031/viewer/2022012023/6169cfc611a7b741a34ba1da/html5/thumbnails/3.jpg)
Make BasedFlow
Engineering
Lijun Li
Introduction
Make
What is “make”
In the context offlow
Showcase
Cadence lowpower flow(frontend)
“Mickey-Mouse”flow generator
Summary
Flows Are Complicated
Complex Procedure
Multiple Tools
Cadence tools, Synopsys tools, etc.Tool versions“All tools suck”.
–Steve Golson & Pete Churchill
Different Technologies
Different Platform
Path difference, shell difference, etc.
![Page 4: Make Based Flow Engineering - A Customizable Flow Generator](https://reader031.fdocuments.in/reader031/viewer/2022012023/6169cfc611a7b741a34ba1da/html5/thumbnails/4.jpg)
Make BasedFlow
Engineering
Lijun Li
Introduction
Make
What is “make”
In the context offlow
Showcase
Cadence lowpower flow(frontend)
“Mickey-Mouse”flow generator
Summary
What Is Make
A tool widely used in software compilation
Dependency analyzer; history tracker”Makefile” as the headquarter
Makefile Syntax
$(target): $(objects)command1command2
Example: compile f1.out from f2.oand f3.o that are dependent on f4.cand f5.c with compiler gcc.
f1.out:f2.o f3.ogcc -o f1.out f2.o f3.o
f2.o: f4.cgcc -c f4.c -o f2.o
f3.o: f5.cgcc -c f5.c -o f3.o
Procedure centric VS dependency centric
![Page 5: Make Based Flow Engineering - A Customizable Flow Generator](https://reader031.fdocuments.in/reader031/viewer/2022012023/6169cfc611a7b741a34ba1da/html5/thumbnails/5.jpg)
Make BasedFlow
Engineering
Lijun Li
Introduction
Make
What is “make”
In the context offlow
Showcase
Cadence lowpower flow(frontend)
“Mickey-Mouse”flow generator
Summary
In the Context of Flow
How does “make” fit into flow engineering
Flow scripts have dependencies
e.g. the backend needs netlist generated from the frontend.
Flow needs to invoke different tools in a proper order
“Make” can figure out the sequence of invoking differenttools based on their dependencies
![Page 6: Make Based Flow Engineering - A Customizable Flow Generator](https://reader031.fdocuments.in/reader031/viewer/2022012023/6169cfc611a7b741a34ba1da/html5/thumbnails/6.jpg)
Make BasedFlow
Engineering
Lijun Li
Introduction
Make
What is “make”
In the context offlow
Showcase
Cadence lowpower flow(frontend)
“Mickey-Mouse”flow generator
Summary
What Makes A Flow Generator
A makefile generator
An abundant script library (plugins)
Users can pick the functionalities they want to make acustomized flow
A user interface (CLI/GUI)
More user friendly than pure scriptsFuture placeholders (e.g., interactive debugging)
![Page 7: Make Based Flow Engineering - A Customizable Flow Generator](https://reader031.fdocuments.in/reader031/viewer/2022012023/6169cfc611a7b741a34ba1da/html5/thumbnails/7.jpg)
Make BasedFlow
Engineering
Lijun Li
Introduction
Make
What is “make”
In the context offlow
Showcase
Cadence lowpower flow(frontend)
“Mickey-Mouse”flow generator
Summary
What Makes A Flow Generator
![Page 8: Make Based Flow Engineering - A Customizable Flow Generator](https://reader031.fdocuments.in/reader031/viewer/2022012023/6169cfc611a7b741a34ba1da/html5/thumbnails/8.jpg)
Make BasedFlow
Engineering
Lijun Li
Introduction
Make
What is “make”
In the context offlow
Showcase
Cadence lowpower flow(frontend)
“Mickey-Mouse”flow generator
Summary
Cadence Low Power Flow(Frontend)How “make” automates a flow
IBM-Chartered 90nm CMS9FLP Process
Multi-Vt, multiple voltage islands, DFT
![Page 9: Make Based Flow Engineering - A Customizable Flow Generator](https://reader031.fdocuments.in/reader031/viewer/2022012023/6169cfc611a7b741a34ba1da/html5/thumbnails/9.jpg)
Make BasedFlow
Engineering
Lijun Li
Introduction
Make
What is “make”
In the context offlow
Showcase
Cadence lowpower flow(frontend)
“Mickey-Mouse”flow generator
Summary
Cadence Low Power Flow(Frontend)How “make” automates a flow
![Page 10: Make Based Flow Engineering - A Customizable Flow Generator](https://reader031.fdocuments.in/reader031/viewer/2022012023/6169cfc611a7b741a34ba1da/html5/thumbnails/10.jpg)
Make BasedFlow
Engineering
Lijun Li
Introduction
Make
What is “make”
In the context offlow
Showcase
Cadence lowpower flow(frontend)
“Mickey-Mouse”flow generator
Summary
Cadence Low Power Flow(Frontend)How “make” automates a flow
Dependency tree analysis
Writing init.sh that generates makefile
Invoking “make” with “--keep-going” (ignore Cadencewarnings)
Taking more than 10 hours on hazeltop
![Page 11: Make Based Flow Engineering - A Customizable Flow Generator](https://reader031.fdocuments.in/reader031/viewer/2022012023/6169cfc611a7b741a34ba1da/html5/thumbnails/11.jpg)
Make BasedFlow
Engineering
Lijun Li
Introduction
Make
What is “make”
In the context offlow
Showcase
Cadence lowpower flow(frontend)
“Mickey-Mouse”flow generator
Summary
Cadence Low Power Flow(Frontend)How “make” automates a flow
Makefile screenshot
![Page 12: Make Based Flow Engineering - A Customizable Flow Generator](https://reader031.fdocuments.in/reader031/viewer/2022012023/6169cfc611a7b741a34ba1da/html5/thumbnails/12.jpg)
Make BasedFlow
Engineering
Lijun Li
Introduction
Make
What is “make”
In the context offlow
Showcase
Cadence lowpower flow(frontend)
“Mickey-Mouse”flow generator
Summary
“Mickey-Mouse” Flow GeneratorA minimalist flow generator
Source file structure
./init.sh: an interactive bash script
./params.cfg: a configure file containing flow parameters
./src: directory for script library, frontend input, backendinput and other utilities./exe: directory for customized flow scripts generated byusers./dump: directory for results
![Page 13: Make Based Flow Engineering - A Customizable Flow Generator](https://reader031.fdocuments.in/reader031/viewer/2022012023/6169cfc611a7b741a34ba1da/html5/thumbnails/13.jpg)
Make BasedFlow
Engineering
Lijun Li
Introduction
Make
What is “make”
In the context offlow
Showcase
Cadence lowpower flow(frontend)
“Mickey-Mouse”flow generator
Summary
“Mickey-Mouse” Flow GeneratorA minimalist flow
Flow
Set up Cadence environment, and copy HDL source to./src/hdlStart with script “init.sh”, and specify language type
![Page 14: Make Based Flow Engineering - A Customizable Flow Generator](https://reader031.fdocuments.in/reader031/viewer/2022012023/6169cfc611a7b741a34ba1da/html5/thumbnails/14.jpg)
Make BasedFlow
Engineering
Lijun Li
Introduction
Make
What is “make”
In the context offlow
Showcase
Cadence lowpower flow(frontend)
“Mickey-Mouse”flow generator
Summary
“Mickey-Mouse” Flow GeneratorA minimalist flow
Flow (Cont’d)Specify topmodule defined in HDL source
Specify the path of backend input files
Customized scripts (including makefile) generated
![Page 15: Make Based Flow Engineering - A Customizable Flow Generator](https://reader031.fdocuments.in/reader031/viewer/2022012023/6169cfc611a7b741a34ba1da/html5/thumbnails/15.jpg)
Make BasedFlow
Engineering
Lijun Li
Introduction
Make
What is “make”
In the context offlow
Showcase
Cadence lowpower flow(frontend)
“Mickey-Mouse”flow generator
Summary
Summary
The idea of automating flow with “make”Demo
The power of “make” in a complex flowThe interface of a minimalist flow generator
From this project...
The idea of “make”Subtleties and complexities in circuit design