Browse Source

Update readme

master
parent
commit
4136cb0e54
5 changed files with 38 additions and 7 deletions
  1. +34
    -6
      README.md
  2. BIN
      images/logic_element.png
  3. +3
    -0
      images/logic_element.svg
  4. BIN
      images/logic_tile.png
  5. +1
    -1
      images/logic_tile.svg

+ 34
- 6
README.md View File

@ -2,20 +2,48 @@
[![Build Status](https://jenkins.slaanesh.org/job/open-fpga-platform/job/kfpga/badge/icon)](https://jenkins.slaanesh.org/job/open-fpga-platform/job/kfpga/)
An opensource FPGA architecture and tools needed for implementing the cores and program them.
An open-source FPGA architecture and the tools needed for programming it.
## Architecture
Currently, the architecture of kFPGA core is very simple: only LUTs and interconnect.
### Generation 1
![Architecture](images/kfpga_architecture.png) ![Logic tile](images/logic_tile.png)
This first iteration of the architecture is very simple. More functionalities are
planned to be implemented in the next generations (see next title).
The following functionalities are planned:
The architecture is composed of __logic tiles__ of __I/O adapters__ connecting the
outer I/O pads of the FPGA to the routing network. Each FPGA has one clock signal and
one reset signal.
![Architecture overview](images/kfpga_architecture.png)
Each __logic tile__ is composed of a __switch box__ used for doing the routing and
one or more __logic element__
![Logic tile overview](images/logic_tile.png)
Each __logic element__ is composed of a __LUT__ followed by a by-passable __DFF__.
![Logic element overview](images/logic_element.png)
All the __LUT__ of a FPGA are the same size.
The DFF are asynchronously resettables on positive edge. They don't support synchronous
reset, set functionality or enable signal.
### The future
The following functionalities are planned to be implemented in the next generations of
the architecture :
* multiple external clock signals
* multiple external set/reset signals
* multiple external enable signals
* DFF with set and reset functionality which can be synchronously or asynchronously
asserted, an enable functionality
* better logic elements with more functionality (like full-adder)
* DSP blocks
* memory blocks
* advanced lut blocks with full-adder and other stuff
* carry chain
* support for generated clock, set, reset and enable signals
## Tools


BIN
images/logic_element.png View File

Before After
Width: 176  |  Height: 81  |  Size: 3.3 KiB

+ 3
- 0
images/logic_element.svg View File

@ -0,0 +1,3 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="176px" height="81px" viewBox="-0.5 -0.5 176 81" content="&lt;mxfile host=&quot;www.draw.io&quot; modified=&quot;2020-01-10T15:27:09.990Z&quot; agent=&quot;Mozilla/5.0 (X11; Linux x86_64; rv:72.0) Gecko/20100101 Firefox/72.0&quot; etag=&quot;uWzt-byPyf6Zupvm46Df&quot; version=&quot;12.5.1&quot; type=&quot;device&quot;&gt;&lt;diagram id=&quot;aLz9aqrDLMKRIlkwJiXq&quot; name=&quot;Page-1&quot;&gt;7VdNc5swEP01HN1BYGr3GNtxOtP0Y5p2kvamog2oFcgjyzHur+9iJEBgj+3UrXvohdE+aVertw+xeOE0K24UXaRvJQPhBT4rvHDmBUE48vFZAhsDhKQCEsVZBbWAO/4TDGj8khVnsHQWaimF5gsXjGWeQ6wdjCol1+6yRyncXRc0gR5wF1PRR+8502mFjiO/wV8DT1K7M/HNTEbtYgMsU8rkugWF1144VVLqapQVUxAld5aXym++Z7ZOTEGuj3H4+i1bzXJy836SvZt+Jx8XozeDgaX5iYqVObHJVm8sBUqucgZlFN8LJ+uUa7hb0LicXWPNEUt1JtAiODThQGko9iZK6uOjbEBmoNUGl1jNmJyMYobGXDf0k5cGS1vUW4yaiid14IYUHBheTuGI9Di6/fzp4jRFLk1R1KMp2sFS+MdYCnoszebzi7NEgn+MpvDwCwc5uyqvLrRiQZdLHru0QMH1Q2v8pWTzRWSsWWHI3Roba+SY/UPbaHmVZuO2taxflRyw3i3ZKQAeQK5UDEe8R5qqBPRBKfVLeqBmFlMgqOZPbsK7Cml2+CA5HqVWzOCVq5g6rg1RHdR4tS/cbqBhJ5DfCVQR0Qu01VV97N+Q2vAMUrOyIafJ5jkSPafUgmOl5nsXlFrnCiejZyqtbjpsoOAvKy06o9JOvKCs0vwLKc0/Vml7vlP/lXaS0sY9pd3KBLWE5RSQgdm1LTzsHbQrtaVW8gdMpZAKkVzmuHLyyIXoQFTwJC/1imEB8UnZiXD8N7gyExlnrNxmZx/jdjpnaGVG3c9Jr5MZ7xBQt0BHdDJoNr8lVeWaf7vw+hc=&lt;/diagram&gt;&lt;/mxfile&gt;"><defs/><g><rect x="7" y="20" width="160" height="60" fill="#ffffff" stroke="#000000" pointer-events="all"/><rect x="27" y="35" width="50" height="30" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 46px; height: 1px; padding-top: 50px; margin-left: 29px;"><div style="box-sizing: border-box; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">LUT</div></div></div></foreignObject><text x="52" y="54" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">LUT</text></switch></g><rect x="97" y="35" width="50" height="30" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 46px; height: 1px; padding-top: 50px; margin-left: 99px;"><div style="box-sizing: border-box; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">DFF</div></div></div></foreignObject><text x="122" y="54" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">DFF</text></switch></g><path d="M 77 50 L 90.63 50" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 95.88 50 L 88.88 53.5 L 90.63 50 L 88.88 46.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 147 50 L 160.63 50" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 165.88 50 L 158.88 53.5 L 160.63 50 L 158.88 46.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 7 50 L 20.63 50" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 25.88 50 L 18.88 53.5 L 20.63 50 L 18.88 46.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="47" y="0" width="80" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 76px; height: 1px; padding-top: 10px; margin-left: 49px;"><div style="box-sizing: border-box; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Logic element</div></div></div></foreignObject><text x="87" y="14" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Logic element</text></switch></g></g></svg>

BIN
images/logic_tile.png View File

Before After
Width: 318  |  Height: 342  |  Size: 11 KiB Width: 318  |  Height: 342  |  Size: 13 KiB

+ 1
- 1
images/logic_tile.svg
File diff suppressed because it is too large
View File


Loading…
Cancel
Save