Top Banner
SERVICII LINUX PENTRU SISTEME RECONFIGURABILE COORDONATOR ȘTIINȚIFIC Ș.L. DR. ING. ANDREI STAN ABSOLVENT VALENTIN MIHĂLCUȚ
22

Servicii linux pentru sisteme reconfigurabile

Jun 25, 2015

Download

Engineering

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Servicii linux pentru sisteme reconfigurabile

SERVICII LINUX

PENTRU SISTEME

RECONFIGURABILE

COORDONATOR ȘTIINȚIFIC

Ș.L. DR. ING. ANDREI STAN

ABSOLVENT

VALENTIN MIHĂLCUȚ

Page 2: Servicii linux pentru sisteme reconfigurabile

2/23

ARHITECTURA SISTEMULUI

Page 3: Servicii linux pentru sisteme reconfigurabile

3/23

ARHITECTURA ZYNQ 7000

Page 4: Servicii linux pentru sisteme reconfigurabile

4/23

ARHITECTURA ZYNQ 7000

Etape în comunicarea între Sistemul de Procesare și

Logica Programabilă:

1. trimiterea unei comenzi de la Sistemul de Procesare către Logica

Programabilă (prin scrierea în memoria RAM)

2. trimiterea unei întreruperi din Logica Programabilă către Sistemul

de Procesare (când s-a finalizat execuția comenzii)

3. primirea datelor de la Logica Programabilă în Sistemul de

Procesare (prin citirea din memoria RAM)

Page 5: Servicii linux pentru sisteme reconfigurabile

5/23

ETAPE DE IMPLEMENTARE

• Sinteza modulului SPI pe FPGA

• Generarea bootloaderului

• Compilarea kernelului de Linux

• Generarea arborelui de dispozitive

• Implementarea driverului Linux

• Implementarea interfețelor de programare

• Implementarea aplicației utilizator

Page 6: Servicii linux pentru sisteme reconfigurabile

6/23

COMPONENTE HARDWARE

Page 7: Servicii linux pentru sisteme reconfigurabile

7/23

MODULUL SPI

Page 8: Servicii linux pentru sisteme reconfigurabile

8/23

SIMULAREA MODULULUI SPI

Spi Master

Spi Slave

Page 9: Servicii linux pentru sisteme reconfigurabile

9/23

SINTEZA PE FPGA

• Crearea unui nou periferic în Xilinx XPS

• Atribuirea a 8 semnale GPIO noului periferic

• Atribuirea spațiului de adrese în memoria RAM

• Configurarea direcției semnalelor de I/O

• Configurarea semnalului de întrerupere

• Editarea modulului Top Level (VHDL)

• Editarea modulului User Logic (Verilog)

• Configurarea portului extern

• Înregistrarea semnalului de întrerupere

• Sinteza propriu-zisă

Page 10: Servicii linux pentru sisteme reconfigurabile

10/23

MEMORIA EEPROM

Secvența de citire a unui octet

Secvența de scriere a unui octet

Page 11: Servicii linux pentru sisteme reconfigurabile

11/23

COMPONENTE SOFTWARE

Page 12: Servicii linux pentru sisteme reconfigurabile

12/23

KERNEL DRIVER

• Comunică direct cu perifericul

hardware

• Gestionează resursele pentru

periferic

• Implementează operațiile de acces la

fișierul virtual

• Sincronizează accesul la resurse

Page 13: Servicii linux pentru sisteme reconfigurabile

13/23

KERNEL DRIVER

Page 14: Servicii linux pentru sisteme reconfigurabile

14/23

INTERFEȚE DE PROGRAMARE

Funcții comune modurilor Master și

Slave

• setarea modului de lucru (master

sau slave)

• setarea polarității semnalului de

clock (CPOL)

• setarea frontului de clock pentru

transmisie/recepție (CPHA)

• citirea registrului de configurare

• citirea registrului de date

• citirea datelor recepționate

Funcții specifice modului Master

• setarea prescaler-ului

• transmiterea datelor

Funcții specifice modului Slave

• pornirea recepției

• oprirea recepției

Page 15: Servicii linux pentru sisteme reconfigurabile

15/23

INTERFEȚE DE PROGRAMARE

Funcții pentru recepție:

• activarea buffer-ului

• dezactivarea buffer-ului

• citirea datelor din buffer

Page 16: Servicii linux pentru sisteme reconfigurabile

16/23

INTERFEȚE DE PROGRAMARE

Funcții de acces la memoria EEPROM:

• activarea memoriei

• dezactivarea memoriei

• scrierea unui buffer de lungime fixă la

o adresă de memorie

• citirea de la o adresă de memorie

într-un buffer de lungime fixă

Page 17: Servicii linux pentru sisteme reconfigurabile

17/23

APLICAȚIA UTILIZATOR

• Realizează teste pe memoria

EEPROM, prin scrieri si citiri

succesive (256 de teste)

• Interfață grafică în mod consolă

• Înregistrează timpul fiecărui test

• Afișează rezultatele

Page 18: Servicii linux pentru sisteme reconfigurabile

19/23

FUNCȚIONAREA SISTEMULUI

Page 19: Servicii linux pentru sisteme reconfigurabile

20/23

REZULTATE EXPERIMENTALE

Testarea memoriei: • Durata unui test: 3.6s

• Durata de scriere/citire pagina: 275us

• Durata între scriere si citire: 5ms

• Durata între citire si scriere: 750us

MISO (canal 1), MOSI (canal 3), SS (canal 4), SCK (canal 2)

Page 20: Servicii linux pentru sisteme reconfigurabile

21/23

REZULTATE EXPERIMENTALE

Scrierea continuă a unui octet: • Durata de scriere: 5us

• Durata între scrieri: 90us

• Durata de transmisie a unei comenzi: 2.5us

MISO (canal 1), MOSI (canal 3), SS (canal 4), SCK (canal 2)

Page 21: Servicii linux pentru sisteme reconfigurabile

22/23

CONCLUZII

Dezavantaje:

• Dificultatea dezvoltării hardware. Uneori e mai rapidă dezvoltarea

software

• Necesitatea cunoștințelor interdisciplinare

• Soluție potrivită pentru proiecte de anvergură

• Unelte nestandardizate. Timp mare de familiarizare cu acestea

• Cost mediu spre ridicat

• Sincronizarea în spațiul nucleu prin așteptări blocante (spinlock)

Page 22: Servicii linux pentru sisteme reconfigurabile

23/23

CONCLUZII

Avantaje:

• Viteză de lucru de 100MHz a perifericului SPI, până la

viteza maximă a sistemului de 667MHz

• Viteză mare a comunicației între PL si PS, dată de bus-ul

de date AXI

• Dimensiune redusă. Grad mare de integrare

• Flexibilitate. Sistem reconfigurabil pentru orice periferic

dedicat

• Modularitate dată de bibliotecile utilizator