SlideShare a Scribd company logo
1 of 22
Download to read offline
Workshop - Open FPGA tools
Jesús Arroyo Torrens
OurenseMakersLab
December 10, 2016
La Molinera, Ourense https://github.com/FPGAwars/workshops
https://github.com/Jesus89
Field Programmable Gate Array
Open FPGA toolchain
IceStorm Project
by Clifford Wolf
Open FPGA boards
Icestick iCE40-HX8K Breakout Board IceZUM Alhambra
Open FPGA tool stack
Open FPGA tool stack
Requirements
1. Python 2.7
Check installation: open a console and type python
Windows Users: DON’T FORGET to
select  Add python.exe to Path 
feature on the “Customize” stage
https://www.python.org
Icestudio
Experimental graphic editor for open FPGAs. Created with HTML and JS
https://github.com/FPGAwars/icestudio
1. Install
● Copy icestudio-0.2.4-dev.zip
● Unzip the file
● Execute icestudio
2. Setup
● Install toolchain
Tools > Toolchain > Install
● Install drivers
Tools > Drivers > Enable Drivers configuration requires
administrative privileges
Follow the instructions in each OS
Icestudio
3. Hello, world!
● Load example
1. Basic > 1. Led on
● Select board
Board > IceZUM
● Select I/O pin
Edit the combo
● Upload bit stream
Tools > Upload
Enter in a block and edit a I/O label by double clicking
Icestudio
4. More leds on
● Create a project
File > New project
● Add blocks
Bit > 1
Basic > Output
● Connect wires
● Upload bit stream
Tools > Upload
Multiple I/O blocks can be created, e.g. “led0, led1, led2”
Icestudio
5. Blink
● Import DIV block
File > Import block
● Add clock input
Basic > Input
● Connect wires
● Upload bit stream
Tools > Upload
Icestudio
The clock is a 12 MHz signal
6. Custom blink
● Add constant
Basic > Constant
● Insert a value
6000000
● Connect wires
● Upload bit stream
Tools > Upload
Icestudio
The clock is a 12 MHz signal
7. Counter
● Import counter block
File > Import block
● Reconnect wires
● Upload bit stream
Tools > Upload
Icestudio
8. Let’s code
● Create a project
File > New project
● Add blocks
Basic > Code
Basic > Input
Basic > Output
● Connect wires
● Verify the design
Tools > Verify
Icestudio
9. Custom block
● Load a project
File > Open project
● Save project as block
File > Export as block
Input / Output pins will become in/out block ports
Icestudio
10. Using buttons
● Create a project
File > New project
● Add blocks
Basic > Input
Basic > Output
Config > Pull up inv
● Connect wires
● Upload bit stream
Tools > Upload
Icestudio
Apio
Experimental open source ecosystem for open FPGAs. Created with Python
https://github.com/FPGAwars/apio
1. Install
● Open the console and execute
$ pip install ­U apio
● Check apio
$ apio
2. Setup
● Install toolchain
$ apio install ­­all
● Install drivers
$ apio drivers ­­enable
Drivers configuration requires
administrative privileges
Follow the instructions in each OS
Apio
3. Hello, world!
● Load example
$ apio examples ­d icezum/leds
● Move to example
$ cd icezum/leds
● Verify and simulate
$ apio verify $ apio sim
● Build and upload
$ apio build $ apio upload
● Time analysis and clean
$ apio time $ apio clean
Apio
I want more!
http://FPGAwars.github.io
Workshop - Open FPGA tools
Jesús Arroyo Torrens
OurenseMakersLab
December 10, 2016
La Molinera, Ourense https://github.com/FPGAwars/workshops
https://github.com/Jesus89

More Related Content

What's hot

20131015_demo_oshk
20131015_demo_oshk20131015_demo_oshk
20131015_demo_oshk
Jeff Yang
 
Django deployment and rpm+yum
Django deployment and rpm+yumDjango deployment and rpm+yum
Django deployment and rpm+yum
Walter Liu
 
Sockets in nach0s
Sockets in nach0sSockets in nach0s
Sockets in nach0s
naniix21_3
 

What's hot (20)

Having fun with Raspberry(s) and Apache projects
Having fun with Raspberry(s) and Apache projectsHaving fun with Raspberry(s) and Apache projects
Having fun with Raspberry(s) and Apache projects
 
Node.js Lab
Node.js LabNode.js Lab
Node.js Lab
 
Installing nagios core_from_source
Installing nagios core_from_sourceInstalling nagios core_from_source
Installing nagios core_from_source
 
Install Nagios Core On CentOS 7
Install Nagios Core On CentOS 7Install Nagios Core On CentOS 7
Install Nagios Core On CentOS 7
 
Nginx
NginxNginx
Nginx
 
node.js app deploy to heroku PaaS
node.js app deploy to heroku PaaSnode.js app deploy to heroku PaaS
node.js app deploy to heroku PaaS
 
STM32 개발 환경 셋팅
STM32 개발 환경 셋팅STM32 개발 환경 셋팅
STM32 개발 환경 셋팅
 
20131015_demo_oshk
20131015_demo_oshk20131015_demo_oshk
20131015_demo_oshk
 
Django deployment and rpm+yum
Django deployment and rpm+yumDjango deployment and rpm+yum
Django deployment and rpm+yum
 
IT Automation with Puppet Enterprise
IT Automation with Puppet EnterpriseIT Automation with Puppet Enterprise
IT Automation with Puppet Enterprise
 
Why Mac Sysadmins Love Python
Why Mac Sysadmins Love PythonWhy Mac Sysadmins Love Python
Why Mac Sysadmins Love Python
 
Python+anaconda Development Environment
Python+anaconda Development EnvironmentPython+anaconda Development Environment
Python+anaconda Development Environment
 
Making a Robust Installer for Linux Server Applications with Puppet Modules
Making a Robust Installer for Linux Server Applications with Puppet ModulesMaking a Robust Installer for Linux Server Applications with Puppet Modules
Making a Robust Installer for Linux Server Applications with Puppet Modules
 
Sockets in nach0s
Sockets in nach0sSockets in nach0s
Sockets in nach0s
 
Docker at Digital Ocean
Docker at Digital OceanDocker at Digital Ocean
Docker at Digital Ocean
 
Improving monitoring systems Interoperability with OpenMetrics
Improving monitoring systems Interoperability with OpenMetricsImproving monitoring systems Interoperability with OpenMetrics
Improving monitoring systems Interoperability with OpenMetrics
 
Log monitoring with Logstash and Icinga
Log monitoring with Logstash and IcingaLog monitoring with Logstash and Icinga
Log monitoring with Logstash and Icinga
 
Build & test Apache Hawq
Build & test Apache Hawq Build & test Apache Hawq
Build & test Apache Hawq
 
Node.js x Azure, cli usage, website deployment
Node.js x Azure, cli usage, website deploymentNode.js x Azure, cli usage, website deployment
Node.js x Azure, cli usage, website deployment
 
Learning Nagios
Learning Nagios Learning Nagios
Learning Nagios
 

Similar to 2016/12/10: Ourense MakersLab workshop

Similar to 2016/12/10: Ourense MakersLab workshop (20)

2016/10/28: Reset ETSII UPM
2016/10/28: Reset ETSII UPM2016/10/28: Reset ETSII UPM
2016/10/28: Reset ETSII UPM
 
Developing new zynq based instruments
Developing new zynq based instrumentsDeveloping new zynq based instruments
Developing new zynq based instruments
 
How to Install ESP8266 WiFi Web Server using Arduino IDE
How to Install ESP8266 WiFi Web Server using Arduino IDEHow to Install ESP8266 WiFi Web Server using Arduino IDE
How to Install ESP8266 WiFi Web Server using Arduino IDE
 
How to Connect MQTT Broker on ESP8266 WiFi
How to Connect MQTT Broker on ESP8266 WiFiHow to Connect MQTT Broker on ESP8266 WiFi
How to Connect MQTT Broker on ESP8266 WiFi
 
Python on pi
Python on piPython on pi
Python on pi
 
Mod06 new development tools
Mod06 new development toolsMod06 new development tools
Mod06 new development tools
 
智慧型機房監控系統
智慧型機房監控系統智慧型機房監控系統
智慧型機房監控系統
 
Getting started with Intel IoT Developer Kit
Getting started with Intel IoT Developer KitGetting started with Intel IoT Developer Kit
Getting started with Intel IoT Developer Kit
 
Porion a new Build Manager
Porion a new Build ManagerPorion a new Build Manager
Porion a new Build Manager
 
[CON3189] JavaOne 2016 - Introduction to Java ME development for the Raspberr...
[CON3189] JavaOne 2016 - Introduction to Java ME development for the Raspberr...[CON3189] JavaOne 2016 - Introduction to Java ME development for the Raspberr...
[CON3189] JavaOne 2016 - Introduction to Java ME development for the Raspberr...
 
Install Oracle 12c Golden Gate On Oracle Linux
Install Oracle 12c Golden Gate On Oracle LinuxInstall Oracle 12c Golden Gate On Oracle Linux
Install Oracle 12c Golden Gate On Oracle Linux
 
Git & e git beginner workshop
Git & e git beginner workshopGit & e git beginner workshop
Git & e git beginner workshop
 
Android Platform Debugging and Development
Android Platform Debugging and DevelopmentAndroid Platform Debugging and Development
Android Platform Debugging and Development
 
Android Platform Debugging and Development
Android Platform Debugging and DevelopmentAndroid Platform Debugging and Development
Android Platform Debugging and Development
 
Android Platform Debugging and Development
Android Platform Debugging and DevelopmentAndroid Platform Debugging and Development
Android Platform Debugging and Development
 
Raspberry pi and Azure
Raspberry pi and AzureRaspberry pi and Azure
Raspberry pi and Azure
 
Android Platform Debugging and Development
Android Platform Debugging and DevelopmentAndroid Platform Debugging and Development
Android Platform Debugging and Development
 
How to configure PyCharm for Odoo development in Windows?
How to configure PyCharm for Odoo development in Windows?How to configure PyCharm for Odoo development in Windows?
How to configure PyCharm for Odoo development in Windows?
 
Android Platform Debugging and Development
Android Platform Debugging and DevelopmentAndroid Platform Debugging and Development
Android Platform Debugging and Development
 
Lab Handson: Power your Creations with Intel Edison!
Lab Handson: Power your Creations with Intel Edison!Lab Handson: Power your Creations with Intel Edison!
Lab Handson: Power your Creations with Intel Edison!
 

Recently uploaded

The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptx
heathfieldcps1
 

Recently uploaded (20)

NO1 Top Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Ex...
NO1 Top Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Ex...NO1 Top Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Ex...
NO1 Top Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Ex...
 
Understanding Accommodations and Modifications
Understanding  Accommodations and ModificationsUnderstanding  Accommodations and Modifications
Understanding Accommodations and Modifications
 
The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptx
 
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdf
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdfUnit 3 Emotional Intelligence and Spiritual Intelligence.pdf
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdf
 
Jamworks pilot and AI at Jisc (20/03/2024)
Jamworks pilot and AI at Jisc (20/03/2024)Jamworks pilot and AI at Jisc (20/03/2024)
Jamworks pilot and AI at Jisc (20/03/2024)
 
Exploring_the_Narrative_Style_of_Amitav_Ghoshs_Gun_Island.pptx
Exploring_the_Narrative_Style_of_Amitav_Ghoshs_Gun_Island.pptxExploring_the_Narrative_Style_of_Amitav_Ghoshs_Gun_Island.pptx
Exploring_the_Narrative_Style_of_Amitav_Ghoshs_Gun_Island.pptx
 
On_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptx
On_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptxOn_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptx
On_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptx
 
Python Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxPython Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docx
 
Single or Multiple melodic lines structure
Single or Multiple melodic lines structureSingle or Multiple melodic lines structure
Single or Multiple melodic lines structure
 
Wellbeing inclusion and digital dystopias.pptx
Wellbeing inclusion and digital dystopias.pptxWellbeing inclusion and digital dystopias.pptx
Wellbeing inclusion and digital dystopias.pptx
 
FICTIONAL SALESMAN/SALESMAN SNSW 2024.pdf
FICTIONAL SALESMAN/SALESMAN SNSW 2024.pdfFICTIONAL SALESMAN/SALESMAN SNSW 2024.pdf
FICTIONAL SALESMAN/SALESMAN SNSW 2024.pdf
 
latest AZ-104 Exam Questions and Answers
latest AZ-104 Exam Questions and Answerslatest AZ-104 Exam Questions and Answers
latest AZ-104 Exam Questions and Answers
 
dusjagr & nano talk on open tools for agriculture research and learning
dusjagr & nano talk on open tools for agriculture research and learningdusjagr & nano talk on open tools for agriculture research and learning
dusjagr & nano talk on open tools for agriculture research and learning
 
Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)
 
Towards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptxTowards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptx
 
Food safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdfFood safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdf
 
Beyond_Borders_Understanding_Anime_and_Manga_Fandom_A_Comprehensive_Audience_...
Beyond_Borders_Understanding_Anime_and_Manga_Fandom_A_Comprehensive_Audience_...Beyond_Borders_Understanding_Anime_and_Manga_Fandom_A_Comprehensive_Audience_...
Beyond_Borders_Understanding_Anime_and_Manga_Fandom_A_Comprehensive_Audience_...
 
How to setup Pycharm environment for Odoo 17.pptx
How to setup Pycharm environment for Odoo 17.pptxHow to setup Pycharm environment for Odoo 17.pptx
How to setup Pycharm environment for Odoo 17.pptx
 
How to Add New Custom Addons Path in Odoo 17
How to Add New Custom Addons Path in Odoo 17How to Add New Custom Addons Path in Odoo 17
How to Add New Custom Addons Path in Odoo 17
 
How to Add a Tool Tip to a Field in Odoo 17
How to Add a Tool Tip to a Field in Odoo 17How to Add a Tool Tip to a Field in Odoo 17
How to Add a Tool Tip to a Field in Odoo 17
 

2016/12/10: Ourense MakersLab workshop

  • 1. Workshop - Open FPGA tools Jesús Arroyo Torrens OurenseMakersLab December 10, 2016 La Molinera, Ourense https://github.com/FPGAwars/workshops https://github.com/Jesus89
  • 3. Open FPGA toolchain IceStorm Project by Clifford Wolf
  • 4. Open FPGA boards Icestick iCE40-HX8K Breakout Board IceZUM Alhambra
  • 7. Requirements 1. Python 2.7 Check installation: open a console and type python Windows Users: DON’T FORGET to select  Add python.exe to Path  feature on the “Customize” stage https://www.python.org
  • 8. Icestudio Experimental graphic editor for open FPGAs. Created with HTML and JS https://github.com/FPGAwars/icestudio
  • 9. 1. Install ● Copy icestudio-0.2.4-dev.zip ● Unzip the file ● Execute icestudio 2. Setup ● Install toolchain Tools > Toolchain > Install ● Install drivers Tools > Drivers > Enable Drivers configuration requires administrative privileges Follow the instructions in each OS Icestudio
  • 10. 3. Hello, world! ● Load example 1. Basic > 1. Led on ● Select board Board > IceZUM ● Select I/O pin Edit the combo ● Upload bit stream Tools > Upload Enter in a block and edit a I/O label by double clicking Icestudio
  • 11. 4. More leds on ● Create a project File > New project ● Add blocks Bit > 1 Basic > Output ● Connect wires ● Upload bit stream Tools > Upload Multiple I/O blocks can be created, e.g. “led0, led1, led2” Icestudio
  • 12. 5. Blink ● Import DIV block File > Import block ● Add clock input Basic > Input ● Connect wires ● Upload bit stream Tools > Upload Icestudio The clock is a 12 MHz signal
  • 13. 6. Custom blink ● Add constant Basic > Constant ● Insert a value 6000000 ● Connect wires ● Upload bit stream Tools > Upload Icestudio The clock is a 12 MHz signal
  • 14. 7. Counter ● Import counter block File > Import block ● Reconnect wires ● Upload bit stream Tools > Upload Icestudio
  • 15. 8. Let’s code ● Create a project File > New project ● Add blocks Basic > Code Basic > Input Basic > Output ● Connect wires ● Verify the design Tools > Verify Icestudio
  • 16. 9. Custom block ● Load a project File > Open project ● Save project as block File > Export as block Input / Output pins will become in/out block ports Icestudio
  • 17. 10. Using buttons ● Create a project File > New project ● Add blocks Basic > Input Basic > Output Config > Pull up inv ● Connect wires ● Upload bit stream Tools > Upload Icestudio
  • 18. Apio Experimental open source ecosystem for open FPGAs. Created with Python https://github.com/FPGAwars/apio
  • 19. 1. Install ● Open the console and execute $ pip install ­U apio ● Check apio $ apio 2. Setup ● Install toolchain $ apio install ­­all ● Install drivers $ apio drivers ­­enable Drivers configuration requires administrative privileges Follow the instructions in each OS Apio
  • 20. 3. Hello, world! ● Load example $ apio examples ­d icezum/leds ● Move to example $ cd icezum/leds ● Verify and simulate $ apio verify $ apio sim ● Build and upload $ apio build $ apio upload ● Time analysis and clean $ apio time $ apio clean Apio
  • 22. Workshop - Open FPGA tools Jesús Arroyo Torrens OurenseMakersLab December 10, 2016 La Molinera, Ourense https://github.com/FPGAwars/workshops https://github.com/Jesus89