Thread View: comp.lang.functional
2 messages
2 total messages
Started by Dimitris Phoukas
Thu, 21 Mar 1991 06:21
Digital Circuit simulator using Lazy Fuctional languages
Author: Dimitris Phoukas
Date: Thu, 21 Mar 1991 06:21
Date: Thu, 21 Mar 1991 06:21
27 lines
1587 bytes
1587 bytes
Are there any pointers to implementations of digital circuit simulators using Lazy-Functional techniques? The simulator should at least be able to model the 'transport' and 'inertial' type delays found in discrete-event systems. Here, at the VLSI Research Group, we "feel" that two particular properties of laziness, namely 'recursive' traversal of data structures using the Attribute Grammar idiom and lazy-memo tables for caching values calculated through circular data definitions have great potential... Could someone give us some additional "confidence" in our belief? Partial evaluation techniques could also be also applied to 'compile' test-vectors with specific models. You could also mention that in yours responses. If the number of respones is satisfactory, I promise to redistribute the list in some format appropriate for inclusion in publications (bibTeX?) Thanks for your co-operation. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Dimitris Phoukas School of Computer Science, University of Windsor Ontario, CANADA N9B 3P4 E-mail : dimitris@cs.uwindsor.ca FAX : (519) 973 7093
Re: Digital Circuit simulator using Lazy Fuctional languages
Author: Thomas Johnsson
Date: Fri, 22 Mar 1991 11:00
Date: Fri, 22 Mar 1991 11:00
30 lines
1874 bytes
1874 bytes
In article <403@schoenfinkel.CS.UWindsor.Ca> dimitris@CS.UWindsor.Ca (Dimitris Phoukas) writes: > >Are there any pointers to implementations of digital circuit simulators >using Lazy-Functional techniques? The simulator should at least be able >to model the 'transport' and 'inertial' type delays found in >discrete-event systems. [.........] I don't know what transport and inertial delays are, but if you are content with quantized time, it is extremely easy to do digital circuit simulation using streams. a NAND gate, for example, is simulated with a function taking two streams of booleans as arguments and returns a stream of booleans as the result. The simulated circuit is hooked up in a letrec expression. For example, simulating an oscillator made up of an inverter (with a time delay of two time units) can be done as follows (using Lazy ML): let rec inv s = False.False.map (\x.~x) s in -- The inverter definition let rec x = inv x in -- The circuit x -- Look at x The value of the program is the infinite list False.False.True.True.False.False. .... -- Thomas Johnsson Thomas Johnsson (johnsson@cs.chalmers.se) Dept. of CS, Chalmers University of Technology, S-412 96 Goteborg, Sweden phone: dept: +46 (0)31 721088.
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads