SlideShare une entreprise Scribd logo
1  sur  52
 
 
[object Object],Model to pewne uproszczenie rzeczywistości. Konstruujemy modele, aby lepiej zrozumieć system, który tworzymy. –  w wizualizacji systemu (jakim jest/jakim ma być) –  w specyfikacji struktury lub zachowania systemu –  służy jako wzorzec podczas konstruowania –  dokumentuje wyniki prowadzonych prac
Modeling Moduły, interfejsy: programista Implementacja Realizacja funkcjonalności Logika Fizyczny podział elementów Wdrożenie Procesy, jednostki wykonawcze Procesy Funkcje użytkownika  Przypadki użycia
Modeling
Modeling – podsumowanie Zbudowanie  opisowego  modelu  będącego hipotezą co do sposobu  działania i budowania systemów  sprzętowych  zorientowanych obiektowo . Na podstawie tego modelu można  wnioskować  teoretycznie (matematycznie, optymalizacje) oraz  badać empirycznie  (implementacje modelu) różne aspekty przydatności (symulacje), zastosowania...
[object Object],OOP  = { JAVA, C++, Ruby, C#, …} OOP  = { JAVA, …} +  …  Object-Oriented Analysis and Design OOA/D
[object Object],Projektowanie zorientowane obiektowo polega na zbudowaniu w projekcie modeli obiektów ze świata rzeczywistego. Raz zapisany kod może zostać  wielokrotnie wykorzystany . Wprowadzenie nowych obiektów nie wymaga modyfikowania fragmentów kodu już istniejącego.
[object Object]
[object Object]
[object Object]
[object Object]
[object Object],[object Object],[object Object],long   long  ago ;   // in a galaxy  far  far  away
- Integrated Circuits & Controllers - PLC - Microcontrollers & Microprocessors Hardware - Field Programmable Gateway Arrays
Hardware - obsługa
Hardware - obsługa library ieee; use ieee.std_logic_1164.all; use ieee.numeric_std.all; entity test_add is generic ( width : integer := 17 ); port ( clk  : in  std_ulogic; reset  : in  std_ulogic; enable  : in  std_ulogic; inp1, inp2 : in  std_logic_vector ( width downto 0); sum  : out std_logic_vector ( (width + 1) downto 0) ); end test_add; ------------------------------------------------------------------------------- --  RTL description.  Adds two inputs together (unsigned) into an integer --  of &quot;width + 1&quot; in lenght. ------------------------------------------------------------------------------- architecture rtl of test_add is constant terminal_count  : integer := 2**( sum'high + 1 ) - 1; subtype  adder_range is integer range 0 to terminal_count; signal  sumx, inp1x, inp2x : adder_range; begin  --  rtl sum  <= std_logic_vector( to_unsigned ( sumx, width + 2 )); inp1x <= to_integer ( unsigned ( inp1 ) ); inp2x <= to_integer ( unsigned ( inp2 ) ); adder : process ( clk, reset ) begin if reset = '0' then sumx <= 0; elsif rising_edge (clk) then if enable = '1' then sumx <= inp1x + inp2x; end if; end if; end process adder; end rtl; class AdderDemo { public static void main(String[] args) { int valA = 0x000F; int valB = 0x2222; System.out.println(valA & valB);  } }
Hardware - konstrukcja
Sofware ? Hardware  Wniosek:  Obiekt sprzętowy posiada odpowiednik w oprogramowaniu i implementuje podobne zachowania
Płaszczyzny
Rozwiązania kompleksowe
Rozwiązania kompleksowe
Język ‘ e ’ Specyfikacja Weryfikacja Synteza e   (HDL) eSS Verilog Inne Behavioral Desing Technologia FPGA ASIC Specman Testy w e (testbench) H V L Symulator VHDL C/C++ itp.
Język ‘ e ’ – Object Oriented Synthesis Pozwala syntezować obiektowo zorientowany HDL Umożliwia korzystanie z  dziedziczenia ,  polimorfizmu  i  referencji  do obiektów. Jest częścią procesu OOAS. Tworzy obiekt  Control Flow Graph  (CFG), który stanowi mapowanie obiektów na konkretne dane, przeszukuje typy dla kontekstu danego typu generycznego
Język ‘ e ’ - Eksperyment Wyspecyfikowano w Java kilka „obwodów elektronicznych”: kodek JPEG, fuzzy controller i kodek rozmów GSM.  Kod został przeprocesowany przez OOAS.  Zaobserwowano  15%  wzrost szybkości w porównaniu z komercyjnie dostępnymi układami.   „ Object Oriented Hardware Synthesis and Verification ”, 2001
PODs - Physical Object Devices
PODs - Dziedziczenie Dodanie do obecnego obiektu dodatkowej funkcjonalności, obiektów. Zaimplementowane przez  komponowanie wielu  PODs. Wynika z hierarchii interfejsów. Zawiera modelowy aspekt (software’owy) niż sprzętowy.
PODs - Eksperyment Przeprowadzono badania nad budową systemu według modelu PODs. Stworzono obiekt termometra, wyświetlacza, a następnie przetestowano utworzony  dziedziczący   obiekt  Termostatu. Nie tylko sprawdzono tezy modelu, ale wykazano relatywnie szybsze działanie takiego termostatu niż zmontowanego z ASIC.   „   Inheritance Models in Object-Oriented Hardware Using Physical Object Devices ”,  Department of Computer Science Brigham Young University ,  March 2004
OOPic  -  Object-Oriented Programmable Integrated Circuit
Phidgets
Lego MindStorms
EIB BUS
Plik definicji  – generowanie struktur systemu Plik definicji FPGA Oprogramowanie Komunikacja 1 2 3 3 4 ,[object Object],[object Object],[object Object]
CII plik konfigura- cyjny V H D L C++ JAVA Matlab CII – Component Internal Interface komunikacja
CII – Koncepcja KLASA KLASA MODUŁ MODUŁ sprzęt szyna CII program
CII – Generowanie struktur Aplikacja n Aplikacja 1 Aplikacja 4 V H D L  cntr: process(clk, load) variable counter : std_logic_vector(left  downto 0); variable carry  : std_logic; -- internal variable tcarry  : std_logic; -- internal begin if load='1' then counter := in_load; output <= in_load; HDL Sprzęt implementacja Program implementacja Języki  programowania Warstwa komunikacyjna Moduł  1 Moduł  4 Moduł  n KOMUNIKACYJNA C, C++, JAVA  public class Genre { private int acc1; private IItype X,y; public String accesO(){ String ret= ” retrive ” ;  OtrherAcc(ret); if (X instanceof II) { … .  PLIK DEFINICJI Metoda sparametryzowanego adresowania pamięci -  CII SZYNA
CII – Struktury
CII – Struktury
Software ? Zapewnienie integracji środowiska oprogramowania z modułami systemów elektronicznych.
Software - Koncepcja H ardware- L ibrary  A ccess F unctional- L ibrary  A ccess G raphic- L ibrary  A ccess dostęp niskopoziomowy  –  wykorzystanie metod zapisu i odczytu rejestrów dost ę p funkcjonalny   –   korzystani e  z operacji i algorytmów, które stanowi ą  funkcj ę  komponentu CII dost ę p aplikacyjny   –   korzysta nie  z gotowych aplikacji ,  budowanie w ł asnych aplikacji z elementów biblioteki Konfiguracja .cii JAVA VHDL HLA FLA GLA … … …
Architektura według modelu GFC & A Funkcje dzielone : arytmetyka akumulacja danych itd. ,[object Object],Funkcje komponentu : - autodiagnostyka automatyka (kalibracja,itp.) współoddziaływanie itd. Struktura podstawowa : interfejs parametr itd. ,[object Object],Struktura komponentu : nazwa -rejestrA rejestrB komponent nadrzędny itd. Elementy GUI : panel interfejsu wykres, tabela itd ,[object Object],GUI komponentu  -  przycisk akcji A sterowanie opóźnieniem diody informacyjne itd. LOGIKA Implementacja funkcjonalności AGENCI IDE
[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object]
GLA FLA HLA Konfiguracja .cii CII_IDENTYFICATOR
GLA FLA HLA  IDENTIFICATOR
Open BUS Components Interface (CI) Obiektowo zorientowany element fizyczny - topologia Control Unit (CU) Device functions (DF) Driver
GENERATOR COMP_DAQ CII_TRANSCIEVER SEND REC  CCII_IDENTIFICATOR CCII_TIMER
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Możliwości
Poszukiwania
Zastosowania
Literatura    P K Drabik, “Obiektowe środowisko programowania wspierające systemy rekonfigurowalne, implementowane w  układach FPGA”, 2008    P K Drabik, K T Poźniak, “Maintaining complex and distributed measurement systems with Component Internal Interface Framework”,  2009    P K Drabik, K T Poźniak, “FPGA Control utility in Java”,  2007    „ Object Oriented Hardware Synthesis and Verification”, 2001    „ S oftware Design Patterns Applied to Physical Object Devices ”, 2003    „ Java Based Object Oriented Hardware Specification and Synthesis ”, 2000

Contenu connexe

En vedette

Pronunciation - E Sounds
Pronunciation - E SoundsPronunciation - E Sounds
Pronunciation - E SoundsJessica Moreno
 
12 activities to integrate pronunciation
12 activities to integrate pronunciation12 activities to integrate pronunciation
12 activities to integrate pronunciationPaul Emmerson
 
Easy Ways To Teach Pronunciation
Easy Ways To Teach PronunciationEasy Ways To Teach Pronunciation
Easy Ways To Teach PronunciationErin Lowry
 
Effetti tat-Temp Estrem fuq il-Paesagg
Effetti tat-Temp Estrem fuq il-PaesaggEffetti tat-Temp Estrem fuq il-Paesagg
Effetti tat-Temp Estrem fuq il-Paesaggguestbc5c05
 
Corso di formazione Be Community Manager a Torino novembre 2011
Corso di formazione Be Community Manager a Torino novembre 2011Corso di formazione Be Community Manager a Torino novembre 2011
Corso di formazione Be Community Manager a Torino novembre 2011FTourism & Marketing
 
There, Their, and They're
There, Their, and They'reThere, Their, and They're
There, Their, and They'reincometz
 
Creşterea păsărilor exotice – O afacere profitabilă şi în România
Creşterea păsărilor exotice – O afacere profitabilă şi în RomâniaCreşterea păsărilor exotice – O afacere profitabilă şi în România
Creşterea păsărilor exotice – O afacere profitabilă şi în RomâniaeComunitate.ro
 
Its and It's
Its and It'sIts and It's
Its and It'sincometz
 
Traffic Jan 2010 - Epik.com - Acquire - Development - Monetize - Exit
Traffic Jan 2010   - Epik.com  -  Acquire - Development - Monetize - ExitTraffic Jan 2010   - Epik.com  -  Acquire - Development - Monetize - Exit
Traffic Jan 2010 - Epik.com - Acquire - Development - Monetize - ExitDigitalTown, Inc
 
HistòRia Acrosport
HistòRia AcrosportHistòRia Acrosport
HistòRia AcrosportMariona
 
[Www.indowebster.com] buku kasus--_pria_merangkak
[Www.indowebster.com] buku kasus--_pria_merangkak[Www.indowebster.com] buku kasus--_pria_merangkak
[Www.indowebster.com] buku kasus--_pria_merangkakPT. GuBuk (Gudang Buku)
 
Problem Words Rules and Guildlines
Problem Words Rules and GuildlinesProblem Words Rules and Guildlines
Problem Words Rules and Guildlinesincometz
 
Drj Presentation
Drj PresentationDrj Presentation
Drj Presentationdrjcatering
 
Identificarea furnizorilor si a partenerilor de afaceri
Identificarea furnizorilor si a partenerilor de afaceriIdentificarea furnizorilor si a partenerilor de afaceri
Identificarea furnizorilor si a partenerilor de afacerieComunitate.ro
 
Czech Hockey
Czech HockeyCzech Hockey
Czech HockeyMary Legg
 

En vedette (20)

Pronunciation - E Sounds
Pronunciation - E SoundsPronunciation - E Sounds
Pronunciation - E Sounds
 
12 activities to integrate pronunciation
12 activities to integrate pronunciation12 activities to integrate pronunciation
12 activities to integrate pronunciation
 
Easy Ways To Teach Pronunciation
Easy Ways To Teach PronunciationEasy Ways To Teach Pronunciation
Easy Ways To Teach Pronunciation
 
社群行銷
社群行銷社群行銷
社群行銷
 
Effetti tat-Temp Estrem fuq il-Paesagg
Effetti tat-Temp Estrem fuq il-PaesaggEffetti tat-Temp Estrem fuq il-Paesagg
Effetti tat-Temp Estrem fuq il-Paesagg
 
Corso di formazione Be Community Manager a Torino novembre 2011
Corso di formazione Be Community Manager a Torino novembre 2011Corso di formazione Be Community Manager a Torino novembre 2011
Corso di formazione Be Community Manager a Torino novembre 2011
 
There, Their, and They're
There, Their, and They'reThere, Their, and They're
There, Their, and They're
 
Creşterea păsărilor exotice – O afacere profitabilă şi în România
Creşterea păsărilor exotice – O afacere profitabilă şi în RomâniaCreşterea păsărilor exotice – O afacere profitabilă şi în România
Creşterea păsărilor exotice – O afacere profitabilă şi în România
 
Corelasi Rini
Corelasi RiniCorelasi Rini
Corelasi Rini
 
EXCEL
EXCELEXCEL
EXCEL
 
Its and It's
Its and It'sIts and It's
Its and It's
 
5 reapertura de_periodos
5 reapertura de_periodos5 reapertura de_periodos
5 reapertura de_periodos
 
Traffic Jan 2010 - Epik.com - Acquire - Development - Monetize - Exit
Traffic Jan 2010   - Epik.com  -  Acquire - Development - Monetize - ExitTraffic Jan 2010   - Epik.com  -  Acquire - Development - Monetize - Exit
Traffic Jan 2010 - Epik.com - Acquire - Development - Monetize - Exit
 
HistòRia Acrosport
HistòRia AcrosportHistòRia Acrosport
HistòRia Acrosport
 
[Www.indowebster.com] buku kasus--_pria_merangkak
[Www.indowebster.com] buku kasus--_pria_merangkak[Www.indowebster.com] buku kasus--_pria_merangkak
[Www.indowebster.com] buku kasus--_pria_merangkak
 
Problem Words Rules and Guildlines
Problem Words Rules and GuildlinesProblem Words Rules and Guildlines
Problem Words Rules and Guildlines
 
Suffixes
SuffixesSuffixes
Suffixes
 
Drj Presentation
Drj PresentationDrj Presentation
Drj Presentation
 
Identificarea furnizorilor si a partenerilor de afaceri
Identificarea furnizorilor si a partenerilor de afaceriIdentificarea furnizorilor si a partenerilor de afaceri
Identificarea furnizorilor si a partenerilor de afaceri
 
Czech Hockey
Czech HockeyCzech Hockey
Czech Hockey
 

Similaire à Isyp07

Tomasz Kopacz MTS 2012 Wind RT w Windows 8 i tzw aplikacje lob (line of busin...
Tomasz Kopacz MTS 2012 Wind RT w Windows 8 i tzw aplikacje lob (line of busin...Tomasz Kopacz MTS 2012 Wind RT w Windows 8 i tzw aplikacje lob (line of busin...
Tomasz Kopacz MTS 2012 Wind RT w Windows 8 i tzw aplikacje lob (line of busin...Tomasz Kopacz
 
Seminarium .Net CF 2004
Seminarium .Net CF 2004Seminarium .Net CF 2004
Seminarium .Net CF 2004Tomasz Cieplak
 
PLNOG16: Praktyczne zastosowania technologii SDN w  6 4 2 0 Kolumna 1 Kolumn...
PLNOG16: Praktyczne zastosowania technologii SDN w  6 4 2 0 Kolumna 1 Kolumn...PLNOG16: Praktyczne zastosowania technologii SDN w  6 4 2 0 Kolumna 1 Kolumn...
PLNOG16: Praktyczne zastosowania technologii SDN w  6 4 2 0 Kolumna 1 Kolumn...PROIDEA
 
Programowanie Komponentowe: #C Wprowadzenie do OSGi
Programowanie Komponentowe: #C Wprowadzenie do OSGiProgramowanie Komponentowe: #C Wprowadzenie do OSGi
Programowanie Komponentowe: #C Wprowadzenie do OSGiMikołaj Olszewski
 
Poland- Smart Client Technology - MTS 2005
Poland- Smart Client Technology - MTS 2005Poland- Smart Client Technology - MTS 2005
Poland- Smart Client Technology - MTS 2005Tomasz Cieplak
 
Jak stworzyć udany system informatyczny
Jak stworzyć udany system informatycznyJak stworzyć udany system informatyczny
Jak stworzyć udany system informatycznyqbeuek
 
Michał Dec - Quality in Clouds
Michał Dec - Quality in CloudsMichał Dec - Quality in Clouds
Michał Dec - Quality in Cloudskraqa
 
C++Builder 2006. Ćwiczenia praktyczne
C++Builder 2006. Ćwiczenia praktyczneC++Builder 2006. Ćwiczenia praktyczne
C++Builder 2006. Ćwiczenia praktyczneWydawnictwo Helion
 
ConnectorIO Prezentacja platformy IoT, Cloud BMS 2019.12
ConnectorIO Prezentacja platformy IoT, Cloud BMS 2019.12ConnectorIO Prezentacja platformy IoT, Cloud BMS 2019.12
ConnectorIO Prezentacja platformy IoT, Cloud BMS 2019.12Connectorio
 
Wprowadzenie do implementacji architektur plug-in w PHP
Wprowadzenie do implementacji architektur plug-in w PHPWprowadzenie do implementacji architektur plug-in w PHP
Wprowadzenie do implementacji architektur plug-in w PHPPHPCon Poland
 
Programowanie Komponentowe: #5 Wprowadzenie do środowiska .NET
Programowanie Komponentowe: #5 Wprowadzenie do środowiska .NETProgramowanie Komponentowe: #5 Wprowadzenie do środowiska .NET
Programowanie Komponentowe: #5 Wprowadzenie do środowiska .NETMikołaj Olszewski
 
Mts 2013 tomasz kopacz - wydajność aplikacji dla windows 8 - jak ją mierzyć...
Mts 2013   tomasz kopacz - wydajność aplikacji dla windows 8 - jak ją mierzyć...Mts 2013   tomasz kopacz - wydajność aplikacji dla windows 8 - jak ją mierzyć...
Mts 2013 tomasz kopacz - wydajność aplikacji dla windows 8 - jak ją mierzyć...Tomasz Kopacz
 
Skazani na firmware. Serwer na ARM64? Tak, to możliwe! S07E03
Skazani na firmware. Serwer na ARM64? Tak, to możliwe! S07E03Skazani na firmware. Serwer na ARM64? Tak, to możliwe! S07E03
Skazani na firmware. Serwer na ARM64? Tak, to możliwe! S07E03Semihalf
 
Angular 4 pragmatycznie
Angular 4 pragmatycznieAngular 4 pragmatycznie
Angular 4 pragmatycznieSages
 

Similaire à Isyp07 (20)

Tomasz Kopacz MTS 2012 Wind RT w Windows 8 i tzw aplikacje lob (line of busin...
Tomasz Kopacz MTS 2012 Wind RT w Windows 8 i tzw aplikacje lob (line of busin...Tomasz Kopacz MTS 2012 Wind RT w Windows 8 i tzw aplikacje lob (line of busin...
Tomasz Kopacz MTS 2012 Wind RT w Windows 8 i tzw aplikacje lob (line of busin...
 
Seminarium .Net CF 2004
Seminarium .Net CF 2004Seminarium .Net CF 2004
Seminarium .Net CF 2004
 
PLNOG16: Praktyczne zastosowania technologii SDN w  6 4 2 0 Kolumna 1 Kolumn...
PLNOG16: Praktyczne zastosowania technologii SDN w  6 4 2 0 Kolumna 1 Kolumn...PLNOG16: Praktyczne zastosowania technologii SDN w  6 4 2 0 Kolumna 1 Kolumn...
PLNOG16: Praktyczne zastosowania technologii SDN w  6 4 2 0 Kolumna 1 Kolumn...
 
Programowanie Komponentowe: #C Wprowadzenie do OSGi
Programowanie Komponentowe: #C Wprowadzenie do OSGiProgramowanie Komponentowe: #C Wprowadzenie do OSGi
Programowanie Komponentowe: #C Wprowadzenie do OSGi
 
Poland- Smart Client Technology - MTS 2005
Poland- Smart Client Technology - MTS 2005Poland- Smart Client Technology - MTS 2005
Poland- Smart Client Technology - MTS 2005
 
Sterowniki PLC
Sterowniki PLC Sterowniki PLC
Sterowniki PLC
 
Jak stworzyć udany system informatyczny
Jak stworzyć udany system informatycznyJak stworzyć udany system informatyczny
Jak stworzyć udany system informatyczny
 
Michał Dec - Quality in Clouds
Michał Dec - Quality in CloudsMichał Dec - Quality in Clouds
Michał Dec - Quality in Clouds
 
Praca Dyplomowa
Praca DyplomowaPraca Dyplomowa
Praca Dyplomowa
 
Praca Dyplomowa
Praca DyplomowaPraca Dyplomowa
Praca Dyplomowa
 
C++Builder 2006. Ćwiczenia praktyczne
C++Builder 2006. Ćwiczenia praktyczneC++Builder 2006. Ćwiczenia praktyczne
C++Builder 2006. Ćwiczenia praktyczne
 
Ext js
Ext jsExt js
Ext js
 
ConnectorIO Prezentacja platformy IoT, Cloud BMS 2019.12
ConnectorIO Prezentacja platformy IoT, Cloud BMS 2019.12ConnectorIO Prezentacja platformy IoT, Cloud BMS 2019.12
ConnectorIO Prezentacja platformy IoT, Cloud BMS 2019.12
 
Wprowadzenie do implementacji architektur plug-in w PHP
Wprowadzenie do implementacji architektur plug-in w PHPWprowadzenie do implementacji architektur plug-in w PHP
Wprowadzenie do implementacji architektur plug-in w PHP
 
Programowanie Komponentowe: #5 Wprowadzenie do środowiska .NET
Programowanie Komponentowe: #5 Wprowadzenie do środowiska .NETProgramowanie Komponentowe: #5 Wprowadzenie do środowiska .NET
Programowanie Komponentowe: #5 Wprowadzenie do środowiska .NET
 
university day 1
university day 1university day 1
university day 1
 
Symfony2 showcase
Symfony2 showcaseSymfony2 showcase
Symfony2 showcase
 
Mts 2013 tomasz kopacz - wydajność aplikacji dla windows 8 - jak ją mierzyć...
Mts 2013   tomasz kopacz - wydajność aplikacji dla windows 8 - jak ją mierzyć...Mts 2013   tomasz kopacz - wydajność aplikacji dla windows 8 - jak ją mierzyć...
Mts 2013 tomasz kopacz - wydajność aplikacji dla windows 8 - jak ją mierzyć...
 
Skazani na firmware. Serwer na ARM64? Tak, to możliwe! S07E03
Skazani na firmware. Serwer na ARM64? Tak, to możliwe! S07E03Skazani na firmware. Serwer na ARM64? Tak, to możliwe! S07E03
Skazani na firmware. Serwer na ARM64? Tak, to możliwe! S07E03
 
Angular 4 pragmatycznie
Angular 4 pragmatycznieAngular 4 pragmatycznie
Angular 4 pragmatycznie
 

Isyp07

  • 1.  
  • 2.  
  • 3.
  • 4. Modeling Moduły, interfejsy: programista Implementacja Realizacja funkcjonalności Logika Fizyczny podział elementów Wdrożenie Procesy, jednostki wykonawcze Procesy Funkcje użytkownika Przypadki użycia
  • 6. Modeling – podsumowanie Zbudowanie opisowego modelu będącego hipotezą co do sposobu działania i budowania systemów sprzętowych zorientowanych obiektowo . Na podstawie tego modelu można wnioskować teoretycznie (matematycznie, optymalizacje) oraz badać empirycznie (implementacje modelu) różne aspekty przydatności (symulacje), zastosowania...
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14. - Integrated Circuits & Controllers - PLC - Microcontrollers & Microprocessors Hardware - Field Programmable Gateway Arrays
  • 16. Hardware - obsługa library ieee; use ieee.std_logic_1164.all; use ieee.numeric_std.all; entity test_add is generic ( width : integer := 17 ); port ( clk : in std_ulogic; reset : in std_ulogic; enable : in std_ulogic; inp1, inp2 : in std_logic_vector ( width downto 0); sum : out std_logic_vector ( (width + 1) downto 0) ); end test_add; ------------------------------------------------------------------------------- -- RTL description. Adds two inputs together (unsigned) into an integer -- of &quot;width + 1&quot; in lenght. ------------------------------------------------------------------------------- architecture rtl of test_add is constant terminal_count : integer := 2**( sum'high + 1 ) - 1; subtype adder_range is integer range 0 to terminal_count; signal sumx, inp1x, inp2x : adder_range; begin -- rtl sum <= std_logic_vector( to_unsigned ( sumx, width + 2 )); inp1x <= to_integer ( unsigned ( inp1 ) ); inp2x <= to_integer ( unsigned ( inp2 ) ); adder : process ( clk, reset ) begin if reset = '0' then sumx <= 0; elsif rising_edge (clk) then if enable = '1' then sumx <= inp1x + inp2x; end if; end if; end process adder; end rtl; class AdderDemo { public static void main(String[] args) { int valA = 0x000F; int valB = 0x2222; System.out.println(valA & valB); } }
  • 18. Sofware ? Hardware Wniosek: Obiekt sprzętowy posiada odpowiednik w oprogramowaniu i implementuje podobne zachowania
  • 22. Język ‘ e ’ Specyfikacja Weryfikacja Synteza e (HDL) eSS Verilog Inne Behavioral Desing Technologia FPGA ASIC Specman Testy w e (testbench) H V L Symulator VHDL C/C++ itp.
  • 23. Język ‘ e ’ – Object Oriented Synthesis Pozwala syntezować obiektowo zorientowany HDL Umożliwia korzystanie z dziedziczenia , polimorfizmu i referencji do obiektów. Jest częścią procesu OOAS. Tworzy obiekt Control Flow Graph (CFG), który stanowi mapowanie obiektów na konkretne dane, przeszukuje typy dla kontekstu danego typu generycznego
  • 24. Język ‘ e ’ - Eksperyment Wyspecyfikowano w Java kilka „obwodów elektronicznych”: kodek JPEG, fuzzy controller i kodek rozmów GSM. Kod został przeprocesowany przez OOAS. Zaobserwowano 15% wzrost szybkości w porównaniu z komercyjnie dostępnymi układami.  „ Object Oriented Hardware Synthesis and Verification ”, 2001
  • 25. PODs - Physical Object Devices
  • 26. PODs - Dziedziczenie Dodanie do obecnego obiektu dodatkowej funkcjonalności, obiektów. Zaimplementowane przez komponowanie wielu PODs. Wynika z hierarchii interfejsów. Zawiera modelowy aspekt (software’owy) niż sprzętowy.
  • 27. PODs - Eksperyment Przeprowadzono badania nad budową systemu według modelu PODs. Stworzono obiekt termometra, wyświetlacza, a następnie przetestowano utworzony dziedziczący obiekt Termostatu. Nie tylko sprawdzono tezy modelu, ale wykazano relatywnie szybsze działanie takiego termostatu niż zmontowanego z ASIC.  „ Inheritance Models in Object-Oriented Hardware Using Physical Object Devices ”, Department of Computer Science Brigham Young University , March 2004
  • 28. OOPic - Object-Oriented Programmable Integrated Circuit
  • 32.
  • 33. CII plik konfigura- cyjny V H D L C++ JAVA Matlab CII – Component Internal Interface komunikacja
  • 34. CII – Koncepcja KLASA KLASA MODUŁ MODUŁ sprzęt szyna CII program
  • 35. CII – Generowanie struktur Aplikacja n Aplikacja 1 Aplikacja 4 V H D L cntr: process(clk, load) variable counter : std_logic_vector(left downto 0); variable carry : std_logic; -- internal variable tcarry : std_logic; -- internal begin if load='1' then counter := in_load; output <= in_load; HDL Sprzęt implementacja Program implementacja Języki programowania Warstwa komunikacyjna Moduł 1 Moduł 4 Moduł n KOMUNIKACYJNA C, C++, JAVA public class Genre { private int acc1; private IItype X,y; public String accesO(){ String ret= ” retrive ” ; OtrherAcc(ret); if (X instanceof II) { … . PLIK DEFINICJI Metoda sparametryzowanego adresowania pamięci - CII SZYNA
  • 38. Software ? Zapewnienie integracji środowiska oprogramowania z modułami systemów elektronicznych.
  • 39. Software - Koncepcja H ardware- L ibrary A ccess F unctional- L ibrary A ccess G raphic- L ibrary A ccess dostęp niskopoziomowy – wykorzystanie metod zapisu i odczytu rejestrów dost ę p funkcjonalny – korzystani e z operacji i algorytmów, które stanowi ą funkcj ę komponentu CII dost ę p aplikacyjny – korzysta nie z gotowych aplikacji , budowanie w ł asnych aplikacji z elementów biblioteki Konfiguracja .cii JAVA VHDL HLA FLA GLA … … …
  • 40.
  • 41.
  • 42.
  • 43.
  • 44. GLA FLA HLA Konfiguracja .cii CII_IDENTYFICATOR
  • 45. GLA FLA HLA  IDENTIFICATOR
  • 46. Open BUS Components Interface (CI) Obiektowo zorientowany element fizyczny - topologia Control Unit (CU) Device functions (DF) Driver
  • 47. GENERATOR COMP_DAQ CII_TRANSCIEVER SEND REC  CCII_IDENTIFICATOR CCII_TIMER
  • 48.
  • 52. Literatura  P K Drabik, “Obiektowe środowisko programowania wspierające systemy rekonfigurowalne, implementowane w układach FPGA”, 2008  P K Drabik, K T Poźniak, “Maintaining complex and distributed measurement systems with Component Internal Interface Framework”, 2009  P K Drabik, K T Poźniak, “FPGA Control utility in Java”, 2007  „ Object Oriented Hardware Synthesis and Verification”, 2001  „ S oftware Design Patterns Applied to Physical Object Devices ”, 2003  „ Java Based Object Oriented Hardware Specification and Synthesis ”, 2000

Notes de l'éditeur

  1. 1. Określenie tła zagadnienia i wprowadzenie w tematykę 2. Badania – aktualne próby zmagania się z tematyką 3. Opracowywany model 4. Przykład 5. Podsumowanie…
  2. Co to jest model? Model to pewne uproszczenie rzeczywistoci. - dzięki modelowi można wyodrębnić interesujące elementy problemu i zorganizować je w uporządkowany sposób (np. routery, połączenia sieciowe, itp.) • Dlaczego modelujemy? Konstruujemy modele, aby lepiej zrozumie system, który tworzymy. • W czym nam pomaga modelowanie: – w wizualizacji systemu takim jakim jest, bd takim jakim powinien by, – w specyfikacji struktury lub zachowania systemu, – słuy jako wzorzec podczas konstruowania aplikacji, – dokumentuje wyniki prowadzonych prac. • Dlaczego potrzebujemy modeli formalnych (sformalizowanych)? Zunifikowany jzyk ułatwi komunikacj oraz pozwoli opisywac tworzony model w jednorodny sposób .
  3. Modelowanie złożonych systemów jest zadaniem trudnym i angażuje wiele osób o różnym sposobie postrzegania systemu. Usprawniając cały proces wyszczególniono 5 perspektyw modelowania. Oisują wewnętrzną strukturę programu na różnych poziomach abstrakcji i szczegółowości oraz opisuje funkcjonalność systemu widzianą przez jego użytkowników. • Perspektywa przypadków uzycia – opisuje funkcjonalność, jaką powinien dostarczać system, widzianą przez jego uzytkowników. • Perspektywa logiczna – zawiera sposób realizacji funkcjonalności, strukturę systemu widzianą przez projektanta • Perspektywa implementacyjna – opisuje poszczególne moduły i ich interfejsy wraz z zaleŜnościami; perspektywa ta jest przeznaczona dla programisty • Perspektywa procesowa – zawiera podział systemu na procesy (czynności) i procesory (jednostki wykonawcze); opisuje właściwości pozafunkcjonalne systemu i słuŜy przede takŜe programistom i integratorom • Perspektywa wdrozenia – definiuje fizyczny podział elementów systemu i ich rozmieszczenie w infrastrukturze; perspektywa taka słuzy integratorom i instalatorom systemu
  4. W UML zdefiniowano 13 rodzajów diagramów podzielonych na dwie główne grupy: opisujących strukturę systemu i opisujących zachowanie
  5. W kolejnej części wstepu będzie mowa o paradygmacie projektowania zorientowane obiekt. W kontekscie programowania – gdyz jest to najwierniejszy i najszerzej znane medium tego paradygmatu… Poznanie składni jzyka nie jest wystarczajce, aby skutecznie programowa przy pomocy jzyków zorientowanych obiektowo (C++, Java, C#) - „Posiadanie młotka nie czyni z nas od razu architekta”. • Programowanie w tych jzykach staje si efektywne w przypadku poprawnego „mylenia obiektowego”. Std konieczne jest przed przystpieniem do programowania przeprowadzenie analizy i projektowania obiektowego (object-oriented analysis and design – OOA/D). Myslenie obiektowe – w tym hasle chodzi o to że: - Przed przystąpieniem do projektowanie o-o należy przeprowadzić analize projektowania , • Krytycznym i podstawow umiejtnoci OOA/D jest umiejtno przypisywania odpowiedzialnoci (ang. responsability) poszczególnym obiektom, rozstrzyganie w jaki sposób obiekty powinny pozostawa w interakcji midzy sob, okrelanie co poszczególne klasy powinny realizowa. Umiejętność wyodrębniania obiektow, przypisywania im odpowiedzilnosci, wzajemnych relacji i zależności. Wyłuskiwanie funkcjonalności, budowanie abstrakcji i generalnych cech, które można będzie roznorodnie specyfikować
  6. Umiejtność przypisywania odpowiedzialnoci (ang. responsability) poszczególnym obiektom, rozstrzyganie w jaki sposób obiekty powinny pozostawa w interakcji midzy sob, okrelanie co poszczególne klasy powinny realizować Modelowanie wiata rzeczywistego Programowanie zorientowane obiektowo polega na zbudowaniu w programie modeli obiektów ze wiata rzeczywistego. Praca programisty polega na ożywieniu tych obiektów oraz sprawieniu aby zaczeły ze soba współpracowac. • Powtórne uycie kodu (ang. reusablity) Kod raz zapisany moe zostac wykorzystany wielokrotnie. Realizowane jest to dziki dziedziczeniu (metody z nadklasy s dostpne w klasach pochodnych). • Rozszerzalno (ang. extensibility) Dziki polimorfizmowi wprowadzenie nowych klas nie wymaga modyfikowania fragmentów kodu ju raz zapisanego. Metody polimorficzne s odpowiedzialne za wykonywanie czynnoci zwizanych z dan klas. W przypadku wprowadzenia nowych klas wprowadzone zostan odpowiednie metody polimorficzne.
  7. Sterowanie dostepem: Sterowanie dostępem pozwala programiście na ukrycie części typu abstrakcyjnego przed klientem poprzez zadeklarowanie pewnych bytów jako publiczne (public), a innych jako prywatne (private). Weryfikacja typow – zapobiega niebezpiecznym technikom (rzutowania, itp.) kapsulkuje projekt w obiekty uscislajac jakie typy posiadaja jakie metody.
  8. • Wzorce projektowe to zapisany zbiór doswiadczen zaawansowanych projektantów programów zorientowanych obiektowo. • Wzorce projektowe sa zapisany w skodyfikowany sposób pozwalajcy na opisanie pewnego problemu programistycznego i jego rozwizania. Jest algorytmem rozwiazania problemow projektowych. • Najbardziej znane wzorce projektowe (23 wzorce) zostały opracowane przez tzw. Gang Czterech (Gamma, Helm, Johnson i Vlissides): – Adapter, – Factory, – Singleton, – Strategy, – DAO, … “ Structural patterns are concerned with how classes and objects are composed to form larger structures” [GHJV95]. Structural patterns such as the Adapter, Facade, and Decorator enhance object communication and functionality. The Adapter allows a foreign interface to be mapped to the interface used by the system. A Facade provides a common object through which other objects can communicate with a group of related objects managed by the Facade. A Decorator wraps an existing object to add functionality and responsibilities to it without modifying its external interface. “ Behavioral patterns are concerned with algorithms and the [communication and] assignment of responsibilities between objects” [GHJV95]. The Strategy pattern uses objects of a common base class to carry out a specific task in a variety of ways, such as text layout, memory allocation, and integrated circuit routing algorithms. Signals and Slots are used to provide a powerful and flexible event handling system, signals are emitted by an object when an event occurs and each slot pertaining to that signal is executed. Slots are often bound to methods of other objects.[Gre03] “ Creational patterns abstract the instantiation process” [GHJV95]. A common example of a creational pattern is the Singleton class. A Singleton class creates an instance of itself at the first request for instantiation and returns a pointer to it for each subsequent request, sharing the same instance with all objects.
  9. • Wzorce projektowe to zapisany zbiór doswiadczen zaawansowanych projektantów programów zorientowanych obiektowo. • Wzorce projektowe sa zapisany w skodyfikowany sposób pozwalajcy na opisanie pewnego problemu programistycznego i jego rozwizania. Jest algorytmem rozwiazania problemow projektowych. • Najbardziej znane wzorce projektowe (23 wzorce) zostały opracowane przez tzw. Gang Czterech (Gamma, Helm, Johnson i Vlissides): – Adapter, – Factory, – Singleton, – Strategy, – DAO, …
  10. Hardware – na początku był sprzęt. * Historycznie, nauka komputerowa rozpoczeła się od teorii liczenia. By wydajnie i efektywnie liczyc inzynierowie skupili swoja uwage na wytworzeniu urzadzen do przeprowadzania tych operacji. Komputery I, II, III-generacji to urządzenia, których uzytkownik miał duza wiedze z dziedziny elektroniki. *Pozniejsze wprowadzenie mikroprocesorow, mikrokotrolerow zrewolucjonizowało ten porządek rzeczy. Skupiono się na oprogramowaniu. Z wielu racji – chocby wygodzie i szybkosci i latwosci dostepnosci (nie potrzeba znac się na elektronice – wystarczy skladnia jezyka). Wtedy inzynierowie stali się programistami. *Wszystko szło dobrze i wtedy pojawił się problem. Oprogramowanie zaczynało osiągac szczyty wydajności. Obok widziano mikrokontrolery radzące sobie ze skomplikowanymi operacjami wieloktrotnie lepiej. * Programiści osiągają potrzebe interakcji ze sprzętem – bez pośredniczenia systemów operacyjnych. Pojawia się specjalizowany sprzęt – różnych dostawców; różne sterowniki, protokoły, co wybierać, normalizacja standaryzacja… Jedno jest pewne, gdy przechodzimy z oprogramowania do sprzetu tracimy wiele z poziomu abstrakcji jaki uwydatnia programowanie.
  11. ICCs – to zminiaturyzowane układy elektroniczne polaczone w system jedną strukturą np. polprzewodnika. + A pplication S pecific I ntegrated C ircuit) – typ elektronicznych układów scalonych zaprojektowanych do realizacji z góry ściśle określonego zadania Zrewolucjonizowaly swiat (elektroniki). Zostaly odkryte eksperymentalnie. Wielka liczba laczonych tranzystorków osiagała wysoką wydajność niż tyle samo układów składanych ręcznie. Stanowią urządzenia dedykowane przeznaczone do konkretnego celu – lub grupy celów. Controllers – umowżliwiają sterowanie przepływem danych, przez co odpowiednim ich modyfikowaniem. Wymyślone ponad 30 lat temu przemieniły się ze małych rozdystrybuowanych urządzeń (US fabryki samochodów – General Motors) w zintegorwane platformy (ówcześnie sieci czujnikowe, inteligente domy, itp). Microcontr. i –cessors to urządzenia wyposarzne w urządzenia dostarczające dane programu (pamięci, stosy, itd.). Przez co są otwarte na kreaowanie różnej logiki działania (w pewnym zakresie). FPGAs – bezpośrednio programowana macierz bramek wysoce elastyczne w projektowaniu, implementowaniu różnej funkcjonalności. Uzywane używane są w cyfrowym przetwarzaniu sygnałów, lotnictwie i wojsku, jako prototypy układow ASIC. Ostatnio nasi naukowcy i wojskowi zaprojektowali i buduja precyzyjny sprzęt do kompensowania zakłuceń dla robionych zdjęć z samolotów wysokopułapowych. Nowoczesne układy FPGA mają możliwość przeprogramowania &apos;w locie‘
  12. W pierwszym przypadku chodzi o projekty systemów wbudowanych, rozproszonych. Dzięki powiązaniu pewnych danych z reakcjami urządzeń można modelować logikę całego systemu. (Automaty, IC, ASIC, itp., embeded devices) Jezyki opisu sprzętu (HDL) Verilog, VHDL… są głównie wykorzystywane do definiowania specyfikacji i fizycznych aplikacji Są one dedykowane do specyfikacji na poziomie operacji synchronicznych obwodów cyfrowych (register-transfer level – RTL [4]) oraz poziomie portów I/O. Jednak są słabo dostosowane do wykorzystania na płaszczyźnie algorytmicznej. Poprzez brak czytelności w swoich gramatykach utrudniają weryfikację. Warto zauważyć ze, jako języki opisu sprzętu (Hardware Description Language – HDL), odstają od wzorców i metod stosowanych w językach programowania Języki programowania nie są w stanie sprostać wymaganiom domeny weryfikacji. Języki weryfikacji (Hardware Verification Language – HVL) są przeznaczone do monitorowania poprawności projektu układów elektronicznych. Monitorowanie to polega na przekazywaniu wyników inspekcji w formie raportów (do weryfikacji) na konsole użytkownika. Rolą HVL jest także przekazywanie wyników inspekcji jako sygnałów (do testowania) [11]. Zaawansowanie języków programowania, nakład obliczeniowy jaki towarzyszy tworzeniu oraz operacji na strukturach danych, sprawia że są one często niewydajne dla modeli języków weryfikacji sprzętu. Dlatego dobrymi językami HVL są języki zbliżone do HDL. Należą do nich: OpenVera , e , SystemC , SystemVerilog .
  13. Przykład zbudowania addera w VHDL (po lewej) oraz w Java po prawej  Poprzez brak czytelności w swoich gramatykach utrudniają weryfikację.
  14. Techniki konstruowania systemów w dziedzinie obiektowo zorientowanego sprzętu [1 3 ] uwzględniają wymagania dla 4 domen: specyfikacji (definicji), weryfikacji (testowania), syntezy i utrzymania (software)
  15. Należy rozpoczac od poszukiwań cech wspolnych z paradygmatem softwarowym (jest znany). Porownan softu z hard. Podobnymi cechami do ob. softwareowych musi być adaptacja i zdolnosc do wprowadzania wzorcow, dziedziczenie, enkapsulacja, polimorfizm, itp…
  16. Biorąc te porownania pod uwagę badacze rozpoczeli prace nad zorientowaniem obiektowo sprzetu… W rozwoju tematu można wyroznic pewne nurty, plaszczyzny w których rozwijają się dotychczasowe pomysły. Synteza.. Chodzi tu o metody syntezy sprzętu – kod jest bardzo często zbudowany z prostych (list) struktur, istnieje postęp w postaci Object Oriented Hardware Synthesis and Verification – o-o analisys system (OOAS). HDL – jezyk definicji sprzetu w kilku przypadkach spotyka się już zorientowany obiektowo – język ‘e’, w pewnym stopniu - VHDL Hardware Description and Verification Language – HDVL- SystemVerilog potrafi laczyc te plaszczyzny Kompleksowo – są to podejścia zarówno dedykowane sprzętowo jak i modelowo. Sprzętowo – tzn urzadzenia które są wytwarzane w modelu O-O. Modelowo – to projekty aranżujące opis sprzetu, weryfikacji, syntezy w sposób O-O. Poszczególnie te składowe mogą nie być O-O, ale całościowo mają zawierać cechy tego paradygmatu.
  17. Obecnie dostępne są narzędzia łączące syntezę układów, zwłaszcza FPGA, przy pomocy języków programowania. Przykładem może być Java Optimised Procesor (JOP) [6], który pozwala na asemblację maszyny wirtualnej Java i średnio zaawansowanych programów w układzie FPGA. Ponadto istnieją rozwiązania udostępniające rekonfigurację aplikacji w sprzęcie w czasie rzeczywistym (Runtime Reconfiguration – RTR [7-9]). Implementacją tego zagadnienia w języku Java jest środowisko JBits [10].
  18. Pośrednim rozwiązaniem implementacji są parsery języka VHDL w Java [5] – JHDL
  19. Wymogi dla każdej z domen spełnia język e [13], który łączy w sobie specyfikacje, weryfikację oraz syntezę układów. Jest to język zorientowany obiektowo, zaprojektowany w stylu języka Java i rozwinięty o konstrukcje i koncepcje języka weryfikacji HVL. Koncepcje te są wspierane przez dedykowane środowisko Specman  [14]. Dzięki temu, język e oferuje projektantom weryfikacyjną platformę projektowania sprzętu, umożliwiającą korzystanie z technik wysokopoziomowego programowania obiektowego. Język e używa metod konstrukcyjnych układów RTL. Dzięki czemu jest wykwalifikowanym językiem do syntezy sprzętu. Proces rozpoczyna się od zdefiniowania jego struktur lub algorytmiczności w specyfikacji napisanej w języku e . Jest ona weryfikowana przez środowisko Specman . Dzięki temu można od razu zbudować warstwę testów (testbench), która również jest napisana w języku e . Może być modyfikowana w dowolnym czasie (np.: zmiana scenariusza testów), a poszczególne struktury mogą być wielokrotnie użyte. Specyfikacja jest dalej procesowana przez „ e Synthesis System” ( eSS ). Wynikiem tego procesu jest plik z prostymi strukturami (już nie obiektowymi), który może być dalej procesowany przez standardowe narzędzia syntezy sprzętu (np.: Verilog). Kod Verilog jest zróżnicowany w zależności od specyfikacji systemu. Jeśli definiowano algorytmy w pliku specyfikacji, zostaje utworzony opis behawioralny układów. W innym przypadku, utworzony opis jest zgodny z HDL na poziomie RTL. Dodatkowo eSS generuje kod Verilog, który wspiera pracę symulatora weryfikacji i testów. Opisy w innych językach programowania, takich jak VHDL lub C/C++, mogą być również wygenerowane przez eSS .
  20. The analysis determines a set of possible objects for each variable within the scope of a statement. Each node of the CFG has one scope table, where all variables in the scope of the node are stored together with a set of objects that may be referenced by this variable. The scope tables are built together with the whole CFG. When a new node is created, the scope table of the parent node is cloned and the set of references (‘reference set’) of each variable changed by the statement is updated. The control data flow analysis applies techniques known from software compiler design [9] to the synthesis of hardware. After the lexical and semantical analysis done by the scanner and parser fore, a static control and data flow analysis is performed on the set of syntax trees for each e object. The result of the analysis is a control flow graph (CFG) where the data flow information is stored in a scope table within each node of the graph. Because of the combination of data and control flow information, no separate data flow graph has to be generated and the analysis traverses the syntax tree only once. The CFG has two different types of nodes. The control flow nodes divide the CFG in multiple sub-trees if a node has multiple children. This is the case for nodes representing, e.g., while loops or if statements. The second type of nodes in the CFG are the data flow nodes, which do not change the control flow, like arithmetic operations or assignments. The main problem of the transformation is the usage of references. Deciding which object is accessed when a method is called on a variable can only be done at runtime. Objects may have several references, or aliases at the same time, so it is hard to tell which statements affect which object.
  21. We’ve specified several circuits in Java (e.g. JPEG codec, fuzzy controler, GSM speech transcodec, etc.). They were processed and transformed to VHDL with the system mentioned above. The results of the high level synthesis showed that the area of the circuits increases by approximately 5% compared to hand written VHDL code. The delay estimated by a commercial register transfer and logic level system increases by approximately 15%.
  22. PODs to jeden z przykładów szukania softwareowego intrefesu do sprzętu, który umozliwia podejscie abstrakcyjne i pozwala go traktowac jako obiekty z oprogramowania. Trwają prace nad uzdolnieniem do dziedziczenia…. Interface h. - jest roznorodnosc POD, dzieki hierarchi – laczenie roznych POD będzie możliwe i kompatybilne Do pracy potrzebna jest komunikacja, zorientowane obiektowo sprzet powinien moc adaptowac wszelkie możliwe warunki pracy – rozne magistrale komunikacyjne -&gt; tu funkcjonuje Driver. Manager – organizuje strukture urzadzen w postaci drzewa, umożliwia komunikacje
  23. The new composite object would have all the members and methods of the base class as well as added functionality from the new members and methods. The advantages of inheritance in hardware are similar to the advantages of inheritance in software. They include: 1. Encapsulation/protection of member PODs 2. Virtual functions to modify subclass POD behavior 3. Better bandwidth usage for inter-member communication Implements… Dzieki niemu strukturyzujemy system, generalizujemy jego funkcje co umozliwia latwe rozbudowanie i modyfikowanie.
  24. Pewna grupa badaczy na uni w Brigham wykonuje dużo badan nad tym modelem. Testowali termometry, wyświetlacze, przekazniki, przełączniki, itp. Obiekty POD. Pracują nad tym od ok. 2003.
  25. Kolejni badacze podchodzili do tematu… OOPic (Object-Oriented Programmable Integrated Circuit) is another set of devices that are meant to allow object-oriented programming with hardware (OOPic, 2001). They are able to network together using I2C and access functions that wrap hardware. (odpowiednik hierarchii interfejsow w POD) However, the only facet of object-oriented programming they offer is encapsulation. They encapsulate all the hardware functions into an object and abstract the details away from the user. This is useful, but again, it lacks in some of the more powerful constructs of object-oriented design
  26. Phidgets (Greenberg, Fitchett, 2001) are another available hardware/software interface. Much like PODs, Phidgets have a software programmable hardware interface. Most of their work has been in applying the ideas of a GUI to hardware. They have met their goal of abstracting the hardware controls into objects a software program can use. Teraz robia samą elektronie i szybkie porty USB.
  27. Lego MindStorms offer another simple solution to the hardware problem. All the parts snap together for simple electrical connections. The interface to the sensors and motors is essentially part of the programming language (it is almost entirely visual, using icons and flow charts to create program control.) As evidence of the simplicity of this solution, MindStorms are designed for ages 12 and up.
  28. Eib – delegacje 
  29. Doświadczenia ze stosowania języka e pokazały, że sparametryzowane biblioteki definicji używane do wygenerowania szerokiej gamy implementacji modułów . Taka biblioteka wspiera wiele różnych architektur systemu, poprzez dowolne generowanie konfiguracji układów FPGA. Sparametryzowane definicje modułów w FPGA umożliwiają wykorzystanie tych układów w sposób zorientowany na zastosowania systemu . Projektanci systemów mogą osiągać optymalną wydajność i zajętość zasobów układów, przy małym nakładzie optymalizacji [15]. - &gt; plik definicji Zawartość tego pliku odwzorowuje moduły sprzętowe poprzez listę ich * parametrów i * interfejsów. Na podstawie pliku definicji generowany jest odpowiedni plik konfiguracyjny do syntezy sprzętu, np. w języku VHDL Na bazie tego samego pliku definicji generowane są struktury w warstwie programistycznej, relewantne do struktur sprzętowych Plik definicji określa moduły sprzętowe (1) w systemie, a tym samym zostają określone ich klasy w oprogramowaniu (4). Poprzez interfejs komunikacyjny (2) (np.: Ethernet, VME, itp.), obiekty tych klas mogą się bezpośrednio komunikować (3) z ich sprzętowymi odpowiednikami. W ten sposób zapewniono sterowanie poszczególnymi modułami sprzętowymi poprzez obsługę ich obiektowych odpowiedników w oprogramowaniu Sparametryzowany opis sprzętu jest wydajnym podejściem do zagadnienia obiektowo zorientowanego sprzętu. Prawidłowo zaprojektowane środowisko, bazujące na tym modelu, jest w stanie wspierać : -opis struktur sprzętu, -weryfikacje projektu, -syntezę układów w FPGA (czego przykładem jest język e), -a nawet środowisko oprogramowania tego systemu.
  30. Cii to jeden z przykładów zastosowania sparametryzowanej definicji sprzętu…, umie łączyć często zmieniającą się strukturę FPGA z oprogramowaniem komputerowym.. Idea dzialania component ii. bazuje na wspolnym pliku konfi. Detrminuje strukture sprz. Zrealizowaną W vhdl, a z drugiej stron. umoz skorelowana obsluge tego sprztu realizowaną w jezykach … Dzieki temu powstaja moduly sprzetowe w ukladach fpga, a po stronie oprogramowani obiektty – ich odpowiedniki W ten sposób zapewnia poprawna komuniakcje miedzy sprz. A oprogr..
  31. Przedstawia koncepcję zagadnianie połączenia softu z hardw. Powstają definicje typów komponentów, które wraz z ich wzajemnymi relacjami kreują zastosowania systemu pomiarowego. Pomiędzy fizyczną, a programistyczną warstwą zostaje zapewniona bezpieczna komunikacja – wynika ze spojnego procesu generownia opsiow …
  32. Proces generowania opisów został przedstawiony na tym rysunku… CII zapewnia strukturyzację portów jako logicznej całości
  33. Komponent to struktura portów zamknięta w logicznej całości Posiada interfejsy – rejestry – środki I/O Oraz parametry – cechy (rozróżniające instancje komponentów) (parametr krotności.. Oznacza to, że definiując krotność równą zero , fizycznie usuwa się komponent z systemu, jednak jego formalna definicja pozostaje. Ta cecha pozwala na szybką i efektywną rekonfigurację logiki systemu ) Hierarchiczna struktura i generowanie definicji sprawia że jednokrotna definicja komp. może być wiele razy użyta (instancjowana) dla różnych parametrów wywołania. Dzięki opisanemu podejściu, przykładowe dodanie nowego interfejsu do jednego z modułów, sprowadzi się w praktyce do dodania treści jedynie w definicji komponentu. Zmiany zostaną uwzględnione generycznie, w każdym miejscu, gdzie ten komponent został użyty (instancjowany).
  34. Dostęp do rejestrów w sprzęcie jest zróżnicowany. Klasa CCII_ACCESS_INTERF stanowi nadrzędny typ hierarchii klas dostępowych. Zawiera metody przeznaczone do współpracy z rejestrami FPGA - funkcje odczytu/zapisu. Pobierają one adres rejestru jako jeden z parametrów. Ta klasa jest dziedziczona przez wyspecjalizowane klasy dostępu: CCII_ACCESS_RO, CCII_ACCESS_RW, CCII_ACCESS_RC, CCII_ACCESS_IR, CCII_ACCESS_WO, które oznaczają kolejno: read-only (tylko odczyt), read-write (odczyt i zapis), read-constant (odczyt stałej), read-inner register (odczyt i zapis wewnętrznego rejestru) , write-only (tylko zapis) fizycznych rejestrów. Na schemacie uwidoczniono klasy komponentów wchodzących w skład systemu (CCII_TIMER, CCII_IDENTIFICATOR, CCII_DPM_DAQ, itd.) oraz strukturę definicji systemu CCII_OPTO_cfg_tab
  35. Najczesciej architektura Rozproszonych systemów, rozproszonej funkcjonalności Oparte na układach programowalnych np. FPGA Interakcja użytwkonika Praca z takim systemem wymaga sterowania z poziomu aplikacji komputerowych Zaistniała potrzeba opracowania modelu środowiska oprogramowania, umożliwiającego budowanie oprogramowania zintegrowanego z warstwą sprzętową..
  36. . Plik Konfig systemu dostarcza struktur do podstawowej integracji z zasobami w sprzęcie, Na ich bazie został opracowny model srodowiska zlozony z trzech warstw, którego schemat jest tu pokazany… Dost. Niskopoziom. HLA ma wszystkie procedury które umieją się zintegrować z plikiem konfiguracyjnym – podstawowe procedury połączeniowe, z pliku definicji czerpie podstawowe informacje (takie jak zakres bazowy, szerokosc magistral, itd) . Są to biblioteki podstawowe dostępu do portów I/O sprzętu oraz biblioteki systemów CII składających się z komponentów (odpowiedników modułów w sprzęcie) Dostep funkcjonalny… Dostęp funkcjonalny polega na zautomatyzowanej obsłudze czynności podstawowych, jakimi są akcje I/O, wykonywanymi na rejestrach komponentów CII. Celem tej biblioteki jest dostarczenie operacji i algorytmów pracy dla zapewniania funkcjonalności systemu Dostep aplik... Warstwa GLA to zespół aplikacji graficznych opartych na funkcjonalności (FLA) i charakterystyce (HLA) systemów CII. Są to aplikacje mające na celu zakrywanie informacji o elementarnych strukturach systemu, a uwydatnianie jego ścisłych funkcji Dynamika = Architektura zależności pokazuje, iż każdy system zawiera jedną definicję podstawowych bibliotek komponentów CII, które mogą zapewniać szereg różnych funkcjonalności, a każdą z nich można zaprezentować w aplikacjach użytkownika w dowolny sposób.
  37. Poprzez struktury biblioteki HLA uzytwkonik ma dostęp do interfejsów sprzętowych CII zawartych w strukturach komponentów, ktrore są dostarczane w proecesie generacji. Uzytkownik pracuje z systemem kodując operacje na podstawie obiektow z biblioteki: instancjuje komponenty i wykonuje na nich wlasne funkcje… Jest to niski poziom dostępu i wymaga: Wiedzy o systemie…. … …
  38. Dostęp funkcjonalny polega na zautomatyzowanej obsłudze czynności podstawowych, jakimi są akcje zapisu/odczytu z HLA. Tutaj widzimy przykład pracy z biblioteką: używając FLA uzytkownik nie korzysta z metod HLA tylko z funkcji o charakterze logicznym… Nie pracujemy na poziomie rejestrów i pamięci, ale na poziomie umiejętności tych komponentów.. - Zaleta jest taka, ze nawet kiedy komponent zostanie zmodyfikowany wewnętrznie, ale nie zmieni swojej funkcjonalnosci, na tym poziomie będzie to ukryte i przezroczyste dla uzytkownika Celem tej biblioteki jest dostarczenie operacji i algorytmów pracy dla zapewniania funkcjonalności systemu. Znajomosc logiki – oznacza ze wymagana jest nie tylko wiedza o funkji komponentu, ale również o jego zastosowaniu w calym systemie CII.
  39. Warstwa GLA to zespół aplikacji graficznych opartych na funkcjonalności (FLA) i charakterystyce (HLA) systemów CII. Stanowi struktury do budowy aplikacji mających na celu zakrywanie informacji o elementarnych strukturach systemu, a uwydatnianie jego ścisłych funkcji (nie potrzebna jest wiedza o rejestrach, rodzajach pamięci, a kładzie się nacisk na zastosowanie komponentów systemu). GLA daje możliwości pracy w trybach: deweloperskim – poprzez kodowanie własnych programów graficznych, opartych o struktury biblioteki GLA, aplikacyjnym – wykorzystanie gotowych aplikacji GUI do pracy z komponentami i systemem CII 28:40
  40. Realizacja poszczególnych warstw modeu ilustruje przykład bardzo prostego komponentu CII – identyfikator, jest to komponent autodiagnostyczny - do testowania komunikacji ze sprzętem -Przedstwiono jakie są dostępne rejestry jakie są widzoczne/dostępne w bibliotetece HLA -Tutaj przedstawiono uzyteczne funkcje do obslugi tego komponentu w bibliotece FLA -Następnie pokazano powstale elementy graficzne jakie pozwalają zbudować aplikacje komponentu, pokazano wykorzystanie funkcjonalnosci z FLA.
  41. Z poziomu GLA mamy panel graficzny, w którym widzimy elementy funkcyjne komponentu. Uzytkownik przez ten panel otrzymuje dostęp do poszczególnych interfejsów, może również wykonać zespoloną akcję, która całkowicie sprawdza działanie tego komponentu. Przykład wykorzystania struktury generycznych… GLA zawiera pakiet typów generycznych stanowiących podstawowe komórki w budowie klas graficznych komponentów CII
  42. what is object oriented hardware element ? -control unit (processor core) - receiving, processing object-oriented programing objectcs (like PODs manager) -universal input/output interface - to interact with field element -open bus - to enable processor to communicate with control network Device functions - definable and/or be modeled by executable programing code is an inteligent piece of hardware that may be modeled by software -&gt; hardware container for software objects
  43. Jest to schemat systemu pomiarowego zbudowanego w FPGA płyty Simcon… tutaj w laboratorium.. Schemat jest zbudowany w oparciu o komponenty systemu CII nazwanego : CII_OPTO Są nimi CII_TRANSCIEVER, zlozony z komponentu nadajnika i odbiornika, zamknietymi we wspolny komponent przekaznika Komponent COMP_DAQ, służacy do akumulacji i reprezentacji danych Przedstawiony poprzednio komponnet identyfikatora Oraz komponent timer ? Komponent generator- to wewnetrzna struktura w module FPGA, która generuje sygnał piloksztaltny
  44. Dla przedstawionego schematu przeprowadzono badania podejmując nastepujace kroki: 1 autodiagnoza – w celu sprawdzenia poprawnosci komunikacji i pracy z systemem uzytko CII_IDENTYFIKATOR 2 konfiguracja przekaznika – w ukladzie wystepują opoznienia zwiazane z technicznymi uwarunkowaniami (rodzaje polaczen, dlugosc kabla = latencja), Komponent transciever’a posiada opracowaną funkcje autokalibracji, która porownuje wartosc odbierana z nadawaną dla pewnego zakresu wartosci interfejsu BITS_DATA_DELAY, odpowiedzialnego za synchronizację latencji (wspominac o trybach testu?) 3 wyzwalania zapisu, polega na ustawineiu rejestrowi … wartosci jeden, wtedy dane trafiają do pamiecie comp_dpm_daq 4. Wyzwalanie odczytu, polega na przestawiniu wartosci rejestru … na 0, co umozliwia odczyt pamieci przez intefejsc CII 5. Prezentacja danych, w komponencie COMP_DAQ opracowano strukture danych, wyswietlajaca zawartosc pamieci na wykresie… Zostala odczytane naraztajace zbocze Generowany przebieg piloksztaltnego
  45. A hierarchical, structural decomposition of the design problem reduces the complexity by isolating subproblems and hence makes the global design problem accessible for a solution ziki zwizaniu metod z obiektami nie s moliwe błdy niepoprawnego wywołania funkcji z nieuprawnionymi argumentami (metody operuj na danych zwizanych z obiektem). Minimalizowana jest wic ilo błdów niepoprawnego uycia funkcji. Uzytkownikiem również kontroler – sprzęt = łatwosc rozszerzania, migraci, itp…
  46. Number of different protocols for the control of home digital devices Mobility of the control devices Possibility of the remote control of devices via Internet Possibilities of connecting and disconnecting devices without interrupting and changing system architecture Personalized services access Cheap end-user terminal solutions