"Clockless" computing

Discussion in 'VHDL' started by Harold Aptroot, Apr 7, 2011.

  1. This isn't really a VHDL question, but I'm not sure where else to ask it.

    I'm considering designing a system using only the following building blocks
    (and wires and memory cells):

    1:
    in || out
    c | v || x | y
    0 | 0 || 0 | 0
    0 | 1 || 0 | 0
    1 | 0 || 0 | 1
    1 | 1 || 1 | 0

    2:
    in || out
    x | y || c | v
    0 | 0 || 0 | ?
    0 | 1 || 1 | 1
    1 | 0 || 1 | 0
    1 | 1 || 0 | ?

    (? represents "don't care")

    The C is supposed to be connected to an X or Y or C, V is should be
    connected to V.
    C represents the "clock" that is explicitly passed around. X and Y encode 0
    and 1 respectively.
    The purpose of block type 1 is doing the main calculations, block 2 takes a
    result and turns it into a pair of (clock, value).
    One motivation for this system is that the block type 1 directly encodes a
    node from a (reduced) binary decision diagram, which are easy to manipulate.

    I know it's "logically complete" in the sense that I could compute anything
    with those blocks, but is it also a good way? Are there better ways?

    --
    harold
     
    Harold Aptroot, Apr 7, 2011
    #1
    1. Advertising

  2. Harold Aptroot

    backhus Guest

    On 7 Apr., 09:39, "Harold Aptroot" <> wrote:
    > This isn't really a VHDL question, but I'm not sure where else to ask it.
    >
    > I'm considering designing a system using only the following building blocks
    > (and wires and memory cells):
    >
    > 1:
    > in || out
    > c | v || x | y
    > 0 | 0 || 0 | 0
    > 0 | 1 || 0 | 0
    > 1 | 0 || 0 | 1
    > 1 | 1 || 1 | 0
    >
    > 2:
    > in || out
    > x | y || c | v
    > 0 | 0 || 0 | ?
    > 0 | 1 || 1 | 1
    > 1 | 0 || 1 | 0
    > 1 | 1 || 0 | ?
    >
    > (? represents "don't care")
    >
    > The C is supposed to be connected to an X or Y or C, V is should be
    > connected to V.
    > C represents the "clock" that is explicitly passed around. X and Y encode 0
    > and 1 respectively.
    > The purpose of block type 1 is doing the main calculations, block 2 takes a
    > result and turns it into a pair of (clock, value).
    > One motivation for this system is that the block type 1 directly encodes a
    > node from a (reduced) binary decision diagram, which are easy to manipulate.
    >
    > I know it's "logically complete" in the sense that I could compute anything
    > with those blocks, but is it also a good way? Are there better ways?
    >
    > --
    > harold


    Hi Harold,
    in this group and also in the rest of the net you find various
    informations when you look for "asynchronous logic" design.
    There are many projects and papers covering this topic.

    A starting point for your investigations may be this one, if you don't
    know it already:
    http://en.wikipedia.org/wiki/C-element

    Have a nice synthesis
    Eilert
     
    backhus, Apr 7, 2011
    #2
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Shashi

    Issues on clockless UART

    Shashi, Apr 21, 2004, in forum: VHDL
    Replies:
    3
    Views:
    702
  2. Shashi
    Replies:
    0
    Views:
    619
    Shashi
    Apr 21, 2004
  3. optical supercomputing

    Optical Computing: special issue - Natural Computing, Springer

    optical supercomputing, Dec 19, 2008, in forum: C Programming
    Replies:
    0
    Views:
    432
    optical supercomputing
    Dec 19, 2008
  4. optical supercomputing

    Optical Computing: special issue - Natural Computing, Springer

    optical supercomputing, Jan 16, 2009, in forum: C Programming
    Replies:
    0
    Views:
    457
    optical supercomputing
    Jan 16, 2009
  5. niyander
    Replies:
    2
    Views:
    697
    debayan_p
    Aug 3, 2010
Loading...

Share This Page