LOGIN   :::   RECOVER PASS   :::   GET ACCOUNT    
Browse
  • Projects
  • Code (CVS)
  • Forums
  • News
  • Articles
  • Polls
  •  
    OpenCores
  • FAQ
  • CVS HowTo
  • Mission
  • Media
  • Tools
  • Advertise
  • Mirrors
  • Logos
  • Contact us
  • Job Opportunity
  •  
    Tools
  • Search
      
  • Download Cores (CVSGet)
  •  
    More
  • Wishbone
  • Perlilog
  • EDA tools
  • OpenTech CD
  •  
    Navigation: All forums > Cores > Message List > Message Post

    Message

    Reply | Reply all
    Date Prev | Date Next | Thread Prev | Thread Next Date Index | Thread Index

    From: Tom Hawkins<tom@l...>
    Date: Tue May 18 14:57:42 CEST 2004
    Subject: [oc] Re: RCA project
    Top
    On Monday 17 May 2004 06:59 pm, you wrote:
    > Are you still doing anything with the RCA project on opencores? I'm
    > a software guy with an itch to learn about configurable hardware,
    > and it looked interesting. Do you have any examples of the
    > hand-implemented RCA designs you mention, such as the adder?

    Hi Phil,

    I haven't updated the core in awhile, but lately I've been considering
    what it would take to write a compiler for RCA. (I don't even know
    what the input language would be.)

    The only examples I have are hand drawn. I would recommend sitting
    down with some graph paper to sketch out a few -- I've found this to
    be an enlightening experience in architecture design.

    The architecture is fairily basic, so it's easy to get started. Each
    tile has a 3:1 LUT and a state register for each direction (north,
    south, west, and east) for a total of 4 LUTs and states regs per
    tile. The mulitplexers and the LUT functions are programmable.

    For example, an adder could look like this (Xs are tiles):

    These are the inputs:

    a3 --> X <-- b4
    a2 --> X <-- b3
    a1 --> X <-- b2
    a0 --> X <-- b0
    ^
    |
    c_in ---


    These are the outputs:

    ----> c_out
    |
    X --> x4
    X --> x3
    X --> x2
    X --> x0

    Due to the unit delays between tiles, the input data need to be skewed
    accordingly. The state register is commonly used for de-skewing the
    pipeline during data routing.


    --
    Tom Hawkins
    Launchbird Design Systems, Inc.
    Home of the Confluence Logic Design Language
    http://www.launchbird.com/



     
    Copyright (c) 1999 OPENCORES.ORG. All rights reserved.