Difference between revisions of "Programmable Logic Lessons"

From Hackerspace.gr
Jump to: navigation, search
(Description)
Line 1: Line 1:
 
=== Description ===
 
=== Description ===
Basic introduction into fpgas and stuff (still thinking on the actual content, we'll start from the very very very basics). This will have a lot of new stuff if you are a total begginer, you'll have to study abit to keep up :)
+
Basic introduction into fpgas and stuff. This will have a lot of new stuff if you are a total begginer, you'll have to study abit to keep up :)
  
 
The plan is to have 3 introductory sessions, and then get into more hands on stuff. Hopefully we'll have our own (tiny and minimal) working cpu by the end of this !
 
The plan is to have 3 introductory sessions, and then get into more hands on stuff. Hopefully we'll have our own (tiny and minimal) working cpu by the end of this !
Line 9: Line 9:
 
* Github account (We'll host our stuff there)
 
* Github account (We'll host our stuff there)
 
* A laptop (We do some some spare computers in hackerspace, but you'll need to work on your own at home)
 
* A laptop (We do some some spare computers in hackerspace, but you'll need to work on your own at home)
 +
  
 
=== Doodle pool for date selection ===
 
=== Doodle pool for date selection ===
 
http://www.doodle.com/yp99tnvzvq7ygwmy#table -> Begining Tuesday, May 28, 2013 7:00 PM - 9:00 PM, and generally Tuesdays 7 - 9
 
http://www.doodle.com/yp99tnvzvq7ygwmy#table -> Begining Tuesday, May 28, 2013 7:00 PM - 9:00 PM, and generally Tuesdays 7 - 9
  
=== Hardware ===
 
Papilio One - 500K - https://www.sparkfun.com/products/11158
 
* Xilinx Spartan 3E/500K gates
 
 
Atlys - Spartan6 - http://www.digilentinc.com/Products/Detail.cfm?NavPath=2,400,836&Prod=ATLYS&CFID=1733993&CFTOKEN=46850973
 
* has cute hdmi output
 
  
 
=== Schedule ===
 
=== Schedule ===
Line 31: Line 26:
 
** What for, how do they work, etc -- http://en.wikipedia.org/wiki/Programmable_logic_device, http://en.wikipedia.org/wiki/Field-programmable_gate_array
 
** What for, how do they work, etc -- http://en.wikipedia.org/wiki/Programmable_logic_device, http://en.wikipedia.org/wiki/Field-programmable_gate_array
 
** Typical design workflow
 
** Typical design workflow
 +
 +
 +
  
 
==== Tooling, VHDL/Verilog basics ====  
 
==== Tooling, VHDL/Verilog basics ====  
Line 39: Line 37:
 
* Verilog syntax & examples
 
* Verilog syntax & examples
 
** We'll do some hands on basic stuff on our h/w !
 
** We'll do some hands on basic stuff on our h/w !
 +
 +
  
 
==== More complicated structures ====
 
==== More complicated structures ====
Line 45: Line 45:
 
** Clock domains, etc
 
** Clock domains, etc
 
** Buffers, fifo, pipelines, etc
 
** Buffers, fifo, pipelines, etc
** (more stuff)
 
 
** We'll Implement something relevant to avoid too much boring theory
 
** We'll Implement something relevant to avoid too much boring theory
  
Line 69: Line 68:
 
* General talk about sharing/working with open source hardware
 
* General talk about sharing/working with open source hardware
 
** http://opencores.org/, etc
 
** http://opencores.org/, etc
 +
 +
 +
 +
=== Hardware ===
 +
Papilio One - 500K - https://www.sparkfun.com/products/11158
 +
* Xilinx Spartan 3E/500K gates
 +
 +
Atlys - Spartan6 - http://www.digilentinc.com/Products/Detail.cfm?NavPath=2,400,836&Prod=ATLYS&CFID=1733993&CFTOKEN=46850973
 +
* has cute hdmi output
  
 
=== Related material ===
 
=== Related material ===

Revision as of 22:57, 23 May 2013

Description

Basic introduction into fpgas and stuff. This will have a lot of new stuff if you are a total begginer, you'll have to study abit to keep up :)

The plan is to have 3 introductory sessions, and then get into more hands on stuff. Hopefully we'll have our own (tiny and minimal) working cpu by the end of this !

Prerequisite knowledge and skills

  • Basic understanding of programming
  • Basic knowledge of git (http://githowto.com/ can help you, we'll use git for examples and collaborating)
  • Github account (We'll host our stuff there)
  • A laptop (We do some some spare computers in hackerspace, but you'll need to work on your own at home)


Doodle pool for date selection

http://www.doodle.com/yp99tnvzvq7ygwmy#table -> Begining Tuesday, May 28, 2013 7:00 PM - 9:00 PM, and generally Tuesdays 7 - 9


Schedule

Digital electronics recap - Tuesday, May 28, 2013 7:00 PM - 9:00 PM



Tooling, VHDL/Verilog basics


More complicated structures

  • More digital design stuff
    • Clocked vs clockless/asynchronous design
    • Clock domains, etc
    • Buffers, fifo, pipelines, etc
    • We'll Implement something relevant to avoid too much boring theory

Computer architecture

  • Basic stuff
    • Buses/Protocols, basic design ideas
    • how is cpu design done
    • What are SoCs
    • Emulation/simulation
  • Think together a custom, minimal SoC
    • We'll actually implement this later on :)

Computer architecture, part 2

  • More work on the design we'll have
    • Implement it in software, see what tools are needed etc
    • Break it in blocks so we can work on the verilog part

Computer architecture, part 3

  • Implement the design in verilog
  • Explore perfomance/cost/etc
    • Let's make something fun with it -- perhaps a tiny brix clone or smth ?
  • General info about more complex cpu designs (closer to the curren generation of cpus) and about gpu/stream processing
  • General talk about sharing/working with open source hardware


Hardware

Papilio One - 500K - https://www.sparkfun.com/products/11158

  • Xilinx Spartan 3E/500K gates

Atlys - Spartan6 - http://www.digilentinc.com/Products/Detail.cfm?NavPath=2,400,836&Prod=ATLYS&CFID=1733993&CFTOKEN=46850973

  • has cute hdmi output

Related material

Useful Links

Contact

Μέσω της λίστας γενική συζήτησης βάζοντας το label [PLD-Lessons] στην αρχή του subject.