Hardware Open Source per sistemi embedded Leandro Fiorin OSLab ALaRI, Facoltà di Informatica Università della Svizzera italiana fiorin@alari.ch
Outline Introduzione Hardware open source Licenze per Hardware OS HW OS vs SW OS Risorse Esempi 10/02/2011 Leandro Fiorin - Hardware OS per sistemi embedded 2/14
Definizione Il termine Open Source Hardware si riferisce ad artefatti tecnologici hardware progettati con la stessa politica del software libero ed open source (FOSS). Il termine viene principalmente usato per esprimere la libera divulgazione di informazioni riguardanti il progetto stesso dell'hardware, comprendente gli schemi, la lista dei materiali, il layout dei dati del circuito stampato, solitamente insieme al FOSS per far girare l'hardware Adattato da wikipedia 10/02/2011 Leandro Fiorin - Hardware OS per sistemi embedded 3/14
Hardware open source Due aspetti principali: Condivisione elementi del progetto fisico Condivisione codice progetti elettronica digitale 10/02/2011 Leandro Fiorin - Hardware OS per sistemi embedded 4/14
Elementi del progetto fisico schemi lista dei materiali PCB software 10/02/2011 Leandro Fiorin - Hardware OS per sistemi embedded 5/14
Codice elettronica digitale La condivisione di progetti di elettronica digitale rappresenta un'ulteriore forma di OS hardware Moduli implementati usando un Hardware Description Language (HDL) possono essere condivisi tra sviluppatori HDL usati in embedded systems per implementare System-on-Chips come combinazione di blocchi predefiniti (IP Cores) 10/02/2011 Leandro Fiorin - Hardware OS per sistemi embedded 6/14
Codice elettronica digitale Descrizione HDL Controllo sintassi Design Selezione modello top Analizza, sintetizza, ottimizza Sintesi Mappa su tecnologia Place & route Implementazione 10/02/2011 Leandro Fiorin - Hardware OS per sistemi embedded 7/14
Esempio di codice architecture archi of counter is signal tmp: std_logic_vector(3 downto 0); begin process (C, ALOAD, D) begin if (ALOAD='1') then tmp = D; elsif (C'event and C='1') then tmp = tmp + 1; end if; end process; Q = tmp; end archi; 10/02/2011 Leandro Fiorin - Hardware OS per sistemi embedded 8/14
Licenze I progetti hardware OS adottano principalmente licenze simili a quelle per il software OS Altre licenze sono state proposte per specifiche caratteristiche dei progetti hardware Es: LGPL, GPL, copyleft, etc. Le licenze per HW comunque basate piu' sulle leggi sui brevetti che su quelle sul copyright 10/02/2011 Leandro Fiorin - Hardware OS per sistemi embedded 9/14
HW OS vs SW OS Concetto OS simile Riuso e distribuzione progetti sviluppati Possibilità di modificare liberamente i progetti per i propri scopi Principale differenze: Il risultato di progetti hardware open source sono prodotti tangibili, la cui produzione costa (anche se meno...)! Libero, ma non gratis... 10/02/2011 Leandro Fiorin - Hardware OS per sistemi embedded 10/14
Risorse Esempio: www.opencores.org Arithmetic cores Processors Prototype boards Crypto cores Memory cores ECC cores DSP cores etc... Video controllers 10/02/2011 Leandro Fiorin - Hardware OS per sistemi embedded 11/14
Risorse Idea: Piccoli design team non possono pagare il prezzo di cores proprietari, spesso difficili da integrare con altri progetti Mettere a disposizione sotto LGPL moduli open source HW Facilitare lo sviluppo di nuovi moduli e piattaforme Create tools e metodi di sviluppo open source Documentazione 10/02/2011 Leandro Fiorin - Hardware OS per sistemi embedded 12/14
Risorse Tools Descrizione HDL Text editors: EMACS, SciTE, etc Controllo sintassi Design Sintassi: GHDL, Icarus Simulazione: GHDL, Icarus Selezione modello top Analizza, sintetizza, ottimizza Sintesi Sintesi: Icarus Mappa su tecnologia Place & route Implementazione??? 10/02/2011 Leandro Fiorin - Hardware OS per sistemi embedded 13/14
Esempi di HW OS Arduino Pandora Elphel Leon OpenRISC OpenMoko 10/02/2011 Leandro Fiorin - Hardware OS per sistemi embedded 14/14