Presentation is loading. Please wait.

Presentation is loading. Please wait.

Introduction to VLSI Programming Lecture 5: Tangram & Tools

Similar presentations


Presentation on theme: "Introduction to VLSI Programming Lecture 5: Tangram & Tools"— Presentation transcript:

1 Introduction to VLSI Programming Lecture 5: Tangram & Tools
(course 2IN30) Prof. dr. ir.Kees van Berkel

2 Time table 2005 date class | lab subject Aug. 30 2 | 0 hours
intro; VLSI Sep. 6 3 | 0 hours handshake circuits Sep. 13 handshake circuits assignment Sep. 20 Tangram Sep. 27 no lecture Oct. 4 Oct. 11 1 | 2 hours demo, fifos, registers | deadline assignment Oct. 18 design cases; Oct. 25 DLX introduction Nov. 1 low-cost DLX Nov. 8 high-speed DLX Nov. 29 deadline final report 7/29/2019 Kees van Berkel

3 Lecture 5 Outline: Recapitulation Lecture 4 Tangram overview
Compilation: Tangram Handshake Circuits Tools Demonstration Lab work: assignment “fifos and registers” 7/29/2019 Kees van Berkel

4 Handshake signaling and data
request ar active side passive side acknowledge ak data ad push channel versus pull channel request ar active side passive side acknowledge ak data ad 7/29/2019 Kees van Berkel

5 Tangram assignment x:= f(y,z)
yw zw y f z xw0 | x xr xw1 y f z y f z | x | x Handshake circuit 7/29/2019 Kees van Berkel

6 Two-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) od end 7/29/2019 Kees van Berkel

7 Four 88 shift registers compared
7/29/2019 Kees van Berkel

8 Tangram/Haste Purpose: programming language for asynchronous VLSI circuits. Creator: Tangram Philips Research Labs (proto-Tangram 1986; release 2 in 1998). Inspiration: Hoare’s CSP, Dijkstra’s GCL. Lectures: no formal introduction; manual hand-out (learn by example, learn by doing). Main tools: compiler, analyzer, simulator, viewer. 7/29/2019 Kees van Berkel

9 2-place buffer BUF1 a b c 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 7/29/2019 Kees van Berkel

10 Median filter median: main proc (a? chan W & b! chan W). begin x,y,z: var W & xy, yz, zw: var bool | forever do ((z:=y; y:=x) || yz:=xy) ; a?x ; (xy:= x<=y || zx:= z<=x) ; if zx=xy then b!x or xy=yz then b!y or yz=zx then b!z fi od end Median a b 7/29/2019 Kees van Berkel

11 Greatest Common Divisor
gcd: main proc (ab?chan <<byte,byte>> & c!chan byte). begin x,y: var byte | forever do ab?<<x,y>> ; do x<y then y:= y-x or x>y then x:= x-y od ; c!x od end GCD ab c 7/29/2019 Kees van Berkel

12 Nacking Arbiter nack: main proc (a?chan bool & b!chan bool). begin na,nb: var bool | <<na,nb>> := <<true,true>> ; forever do sel probe(a) then a!nb || na:= na#nb or probe(b) then b!na || nb:= nb#na les od end Nacking arbiter a b 7/29/2019 Kees van Berkel

13 C : Tangram  handshake circuit
a b C(T) = ; a c S R C(R;S)= 7/29/2019 Kees van Berkel

14 C : Tangram  handshake circuit
; a c S R C(R;S)= a c S R ; C(R;S)= | b 7/29/2019 Kees van Berkel

15 C : Tangram  handshake circuit
|| o | rx i C (R||S) = 7/29/2019 Kees van Berkel

16 Tangram Compilation Theorem
Tangram program T Handshake circuit VLSI circuit C E Handshake process H ||  · H · T = || · C ·T 7/29/2019 Kees van Berkel

17 VLSI programming of asynchronous circuits
behavior, area, time, energy, test coverage Tangram program feedback compiler simulator Handshake circuit expander Asynchronous circuit (netlist of gates) 7/29/2019 Kees van Berkel

18 Tangram 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 7/29/2019 Kees van Berkel

19 Tangram program “Conway”
b Q c R d B1 = type [0..1] & B2 = type <<B1,B1>> & B3 = type <<B1,B1,B1>> & 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 7/29/2019 Kees van Berkel

20 Tangram 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!<<x,y,z>> od end 7/29/2019 Kees van Berkel

21 Lab work: assignments 1 and 2
Assignment 1: shift registers Assignment 2: fifos See separate handout. 7/29/2019 Kees van Berkel

22 Lab-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. 7/29/2019 Kees van Berkel

23 Course 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%] 7/29/2019 Kees van Berkel

24 Next time: lecture 6 (2005, Oct 17)
Outline: Tangram: arithmetic & resource sharing Lab work: assignments on arithmetic & resource sharing 7/29/2019 Kees van Berkel


Download ppt "Introduction to VLSI Programming Lecture 5: Tangram & Tools"

Similar presentations


Ads by Google