Title: Introduction to VLSI Programming Lecture 5: Tangram
1Introduction to VLSI Programming Lecture 5
Tangram Tools
- (course 2IN30)
- Prof. dr. ir.Kees van Berkel
2Time table 2005
date class lab subject
Aug. 30 2 0 hours intro VLSI
Sep. 6 3 0 hours handshake circuits
Sep. 13 3 0 hours handshake circuits assignment
Sep. 20 3 0 hours Tangram
Sep. 27 no lecture
Oct. 4 no lecture
Oct. 11 1 2 hours demo, fifos, registers deadline assignment
Oct. 18 1 2 hours design cases
Oct. 25 1 2 hours DLX introduction
Nov. 1 1 2 hours low-cost DLX
Nov. 8 1 2 hours high-speed DLX
Nov. 29 deadline final report
3Lecture 5
- Outline
- Recapitulation Lecture 4
- Tangram overview
- Compilation Tangram ?Handshake Circuits
- Tools
- Demonstration
- Lab work assignment fifos and registers
4Handshake signaling and data
push channel versus pull channel
request ar
5Tangram assignment x f(y,z)
Handshake circuit
6Two-place wagging buffer
byte type 0..255 wag2 main
proc(a?chan byte b!chan byte).begin x,y
var byte a?x forever do (a?y
b!x) (a?x b!y) odend
7Four 8?8 shift registers compared
8Tangram/Haste
- Purpose programming language for asynchronous
VLSI circuits. - Creator Tangram team _at_ Philips Research Labs
(proto-Tangram 1986 release 2 in 1998). - Inspiration Hoares CSP, Dijkstras GCL.
- Lectures no formal introduction manual hand-out
(learn by example, learn by doing). - Main tools compiler, analyzer, simulator, viewer.
92-place buffer
- byte type 0..255
- BUF1 proc (a?chan byte b!chan byte).begin
x var byte forever do a?x b!x od end - BUF2 main proc (a?chan byte c!chan
byte).begin b chan byte BUF1(a,b)
BUF1(b,c) end
10Median filter
- median main proc (a? chan W b! chan W).
begin x,y,z var W xy, yz, zw var bool
forever do ((zy yx) yzxy)
a?x (xy xlty zx zltx) if zxxy
then b!x or xyyz then b!y or yzzx
then b!z fi odend
11Greatest Common Divisor
- gcd main proc (ab?chan ltltbyte,bytegtgt c!chan
byte).begin x,y var byte forever do
ab?ltltx,ygtgt do xlty then y y-x or xgty
then x x-y od c!x odend
12Nacking Arbiter
- nack main proc (a?chan bool b!chan
bool).begin na,nb var bool ltltna,nbgtgt
ltlttrue,truegtgt forever do sel probe(a) then
a!nb na nanb or probe(b) then b!na
nb nbna les od end
13C Tangram ? handshake circuit
14C Tangram ? handshake circuit
15C Tangram ? handshake circuit
C (RS)
16Tangram Compilation Theorem
17VLSI programming of asynchronous circuits
behavior, area, time, energy, test coverage
Tangram program
feedback
compiler
simulator
Handshake circuit
expander
Asynchronous circuit
(netlist of gates)
18Tangram tool box
- Let Rlin4.tg be a Tangram program
- htcomp -B Rlin4
- compiles Rlin4.tg into Rlin4.hcl, a handshake
circuit - htmap Rlin4
- produces Rlin4.v files, a CMOS standard-cell
circuit - htsim Rlin4 a b
- executes Rlin4.hcl with files a, b for
input/output - htview Rlin4
- provides interactive viewing of simulation results
19Tangram program Conway
P
Q
R
a
b
c
d
- B1 type 0..1 B2 type ltltB1,B1gtgt
B3 type ltltB1,B1,B1gtgt P Q
R conway main proc (a?chan B2
d!chan B3). begin b,c chan B1 P(a,b)
Q(b,c) R(c,d) end
20Tangram program Conway
- P proc(a?chan B2 b!chan B1). begin x var
B2 forever do a?x b!x.0 b!x.1 od end - Q proc(b?chan B1 c!chan B1). begin y var
B1 forever do b?y c!y od end - R proc(c?chan B1 d!chan B3). begin x,y,z
var B1 forever do c?x c?y c?z d!ltltx,y,zgtgt
od end
21Lab work assignments 1 and 2
- Assignment 1 shift registers
- Assignment 2 fifos
- See separate handout.
22Lab-work and report
- You are allowed to team up with a colleague (Not
mandatory.) - Report more than listing of functional Tangram
programs - analyze the specifications and requirements
- present design options, alternatives, trade-offs
- motivate your design choices
- explain functional correctness of your Tangram
programs - analyze explain area, time, energy of your
programs.
23Course grading
- Your course grading is based on
- the quality of your Tangram programs 30
- your final report on the design and evaluation
of these programs (guidelines will follow)
30 - a concluding discussion with you on the programs,
the report and the lecture notes 20 - your results on an intermediate assignment.
20
24Next time lecture 6 (2005, Oct 17)
- Outline
- Tangram arithmetic resource sharing
- Lab work assignments on arithmetic resource
sharing