Documente Academic
Documente Profesional
Documente Cultură
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
IP Core IP = Intellectual Property Modul hardware sau componenta
CPU, Ethernet MAC, controller memorie, DSP, etc in interiorul FPGA
“Soft”
•IP core implementat cu ajutorul resurselor logice FPGA.
•Se pot crea oricate instante (in functie de capacitatea FPGA)
•Se pot parametriza in momentul procesului de sinteza din cadrul
fluxului de proiectare specific FPGA
“Hard”
IP core implement in circuitul integrat. Se conecteaza la resursele FPGA
prin intermediul resurselor de rutare standard. Implica implementarea la
nivel silicon-level circuit in aria reconfigurabila FPGA ( terminologie
utilizata FPGA fabric).
Configuratia este predeterminata de fabricantul FPGA, este mai ieftin
si mai eficient dar mai putin flexibil.
Exemple:
PowerPC 405/440 CPU in Xilinx FX
Multichannel SDRAM / DDR controllers in Spartan6
DSP blocks in toate circuitele moderne Xilinx FPGA
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Limbajele de descriere hardware (HDL) permit implementarea
unitatilor Intellectual Property (IP) = IP cores = componente
reutilizabile care descriu si implementeaza functionalitati
hardware.
Firm IP cores
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Tehnologia System-on-a-chip(SoC) reprezintă încapsularea într-un singur
circuit integrat a a tuturor circuitelor electronice necesare pentru funcţionarea
unui sistem (cum ar fi o camera digitală sau un telefon mobil).
De exemplu
• include memorii RAM şi ROM, microprocesor, diferite tipuri de interfeţe pentru
periferice, convertoare de date, logică de control, funcţii logice şi analogice,
precum şi alte componente care alcatuiesc un sistem informatic complex.
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
O definiţie foarte generală pentru un embedded systems
orice dispozitiv care include un computer programabil, dar fără a
fi însă un computer de uz general. Mai mult, calculatoarele
personale sunt folosite în mod uzual pentru a construi un sistem
integrat.
Orice sistem care este realizat folosind un microprocesor este
un embedded computing systems, ceea ce conduce la faptul că
există numeroare produse în care se aplică acest tip de proiectare,
cum ar fi automobile, telefoane mobile până la aparatura
electrocasnică.
Proiectantul va gândi o platformă hardware şi va implementa partea
de software care va realiza funcţia dorită.
Tot în procesul de proiectare vor trebui rezolvate problemele legate
de resursele optime de care avem nevoie, eficientizarea consumului
de putere, posibilitatea de upgradare a sistemului etc. Un
embedded system nu va fi proiectat de sine stătător, el va
implica spre exemplu şi parte mecanică sau analogică.
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Proiectarea de embedded systems folosind
componentele de tip FPGA prezintă numeroase avantaje.
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Platforma FPGA
Specifica un circuit care include suficiente resurse şi
funcţionalitate pentru a permite definirea şi implementarea unui
sistem complex folosind un singur circuit.
Pâna de curând un circuit FPGA era privit ca o componentă
folosită pentru a implementa circuite periferice.
O platformă FPGA este definită ca având un rol central într-un
sistem de calcul. Un astfel de exemplu este platforma Zynq- de
la firma Xilinx
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Procesoare integrate în circuite de tip FPGA
În acest domeniu se remarcă două tipuri de abordări:
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Granularity – granularitatea Termenul se refera la data path
width . Pentru FPGA folosirea unui element de procesare de 1
bit in cazul CLB configurable logic blocks = fine-grained
computing or fine-grained reconfigurability.
In cazul in care se folosesc resurse de 32 bits microprocessor
CPUs sau data-stream-driven data path units (DPU) in rDPU =
coarse-grained computing coarse-grained reconfigurability.
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Implementarea SoC folosind procesoare soft în circuite de tip
FPGA.
Studii de caz: familiile de circuite FPGA de la Xilinx, Altera si Lattice.
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Selectarea unui procesor de tip soft core pentru implementarea
intr-un
FPGA tine cont de:
•costul implementarii
•Performantele de operatii
•Puterea consumata
•Design-ul si uneltele de dezvoltare
•Considerente referitoare la sistemul de operare
•Optiuni de debug si capabilitati
Costul tipic este unul dintre factorii cei mai importanti in proiecte. Este o
combinatie intre costul hardware-ului si cel al dezvoltarii. Conteaza:
reutilizarea, flexibilitatea, portabilitatea, rezistenta la invechire, efortul
depus la implementare si durata de invatare.
Procesul de debug
•Simularea (behavioral si timing)
•Analiza de timp
•Analiza logicii integrate
•Simularea software
•Debugger software in timp real
•Controlul porturilor de intrare/iesire
•Interfata standardizata JTAG
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Exemple de procesoare soft în varianta open-source
•S1 Core
Resursele pentru acest procesor se găsesc la http://www.srisc.com/
Reprezintă o implementare simplificată a arhitecturii SPARCv9 şi este
un procesor pe 64 de biţi.
•Leon4, Leon3 şi Leon2
Este o implementare a arhitecturii SPAECv8 pe 32 de biţi. Descrierea
completă a resurselor se regăşeste la http://www.gaisler.com/
•OpenRisc1200
Procesor pe 32 de biţi cu arhitectura de tip OpenRISC 1000 dezvoltat
de comunitatea OpenCores.org
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Fluxul de proiectare constă din:
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Studiu de caz: procesorul soft PicoBlaze
dezvoltat de Ken Chapman, Xilinx
•PicoBlaze este descris în limbaj de descriere hardware, respectiv în
limbajul VHDL sau Verilog.
De pe site-ul firmei (după ce există un cont utilizator cu parolă)se
descarca arhiva care conţine toate resursele utile pentru dezvoltarea de
proiecte, şi implicit fişierul cod sursă pentru descrierea procesorului
(kcpsm6.vhd sau kcpsm6.v).
•procesor pe 8 biţi care poate să execute până la 4K instrucţiuni.
Fiecare instrucţiune este pe 18 biţi şi fiecare instrucţiune se execută în
2 cicli de ceas. Frecvenţa maximă este dependentă de circuitul în care
se integrează (de exemplu pentru Virtex-6, această frecventă de lucru
este până la 240 Mhz)
La fel ca la procesorul Leros, proiectarea presupune o parte
software, una hardware, precum şi o integrare intr-un proiect
pentru FPGA folosind uneltele de la Xilinx.
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Microcontroller in FPGA – comparat cu logica implementata in FPGA
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Proiectarea hardware
implică decât folosirea fişierului cod sursă pentru descrierea
procesorului (kcpsm6.vhd sau kcpsm6.v).
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
FLUXUL DE PROIECTARE - PICOBLAZE
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Diagrama bloc pentru microprocesorul integrat PicoBlaze
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Performanţe: PicoBlaze execută 44 până la 100 millioane de
instrucţiuni pe secunda (MIPS) în funcţie de familia de circuite şi
gradul de viteză (speed grade) – ceea ce înseamnă că este mult
mai rapid decât microcontrolerele comerciale.
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
►Arhitectura PicoBlaze
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
PicoBlaze-Setul de instrucţiuni pentru a descrie instrucţiunile:
1. “X” si “Y” se referă la regiştrii de stocare “s” în
intervalul 0 - F.
2. “kk” – valori constante în intervalul 00 - FF.
3. “aa” – adrese în intervalul 00 - FF.
4. “pp” – adresa unui port în intervalul 00 - FF.
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Mediatronix pBlazeIDE
Este un program gratuit, cu interfata utilizator care se poate descarca de
pe site-ul firmei Mediatronix http://www.mediatronix.com/pBlazeIDE.htm
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Dezvoltare de sisteme cu Procesorul Software Xilinx MicroBlaze
32-bit Reduced Instruction Set Computer (RISC)
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Generate Bitstream (fisierul de configurare)
Programarea procesorului in C/C++
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Studiu de caz - Procesoare software ARM
T h e A R M C o rte x -M 0 P ro c e s s o r
A r c h ite c tu r e P a r t-1
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
ARM-based SoC ARM- University Program
Clock Power
Generator Management Unit Watch
JTAG/ Serial wire dog
DMA
Low latency ARM Cortex-M0
Microprocessor
APB Bus
AHB IOP Timers
Mux
ARM Holdings
The company designs ARM-based processors;
Does not manufacture, but licenses designs to semiconductor partners who fabricate
and sell to their customers;
Also offer other designs available, such as physical IPs, graphics cores, and
development tools.
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
ARM Processor Families
Cortex-A series (Application) Cortex-A57
Cortex-A53
High performance processors for open Operating
Cortex-A15
Systems;
Applications include smartphones, digital TV, smart
Cortex-A9 Cortex-A
Cortex-A8
books, home gateways; Cortex-A7
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Design an ARM-based SoC
Select a set of IP cores from ARM or other third-party IP vendors;
Integrate IP cores into a single chip design;
Give design to semiconductor foundries for chip fabrication.
IP libraries SoC
Cortex-A9 Cortex-R5 Cortex-M0 ARM
ROM RAM
processor
ARM7 ARM9 ARM11
System bus
ARM-based
DRAM ctrl FLASH ctrl SRAM ctrl MCU Chip
Peripherals
AXI bus AHB bus APB bus
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Design a Simple ARM-based SoC
In this set of teaching materials we are going to design a simplified version of
ARM-based SoC and prototype it onto a FPGA chip. The SoC will consist only
some basic components:
ARM Cortex-M0
Microprocessor
As of Sept 2013
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
ARM Cortex-M Series Family
ARM Core Hardwar DSP
Thum Hardware Saturated Floating
Processor Architectu Architect Thumb® e Extens
b®-2 Divide Math Point
re ure Multiply ions
Von Subs 1 or 32
Cortex-M0 ARMv6-M Most No No No No
Neumann et cycle
Von Subs 3 or 33
Cortex-M1 ARMv6-M Most No No No No
Neumann et cycle
ARMv7E-
Cortex-M4 Harvard Entire Entire 1 cycle Yes Yes Yes Optional
M
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Cortex-M0 Processor
The smallest ARM processor
Exceptionally small silicon area
Ultra-low gate count (approx. 12k gates at minimum configuration)
High code density
Fundamental base of 16-bit Thumb instructions
Additional powerful 32-bit instructions
Lower power
16µW/MHz (90LP process, minimal configuration)
Simplicity
Only 56 instructions
C friendly
More deterministic response time
Uses ARMv6-M Architecture
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Cortex-M0 Overview
32-bit Reduced Instruction Set Computing (RISC) processor
Von-Neumann architecture
Both data and instructions share a single bus interface;
Instruction set
56 instructions as a subset of Thumb-1 (16-bit) and Thumb-2 (16/ 32-bit);
Supported Interrupts
Non-maskable Interrupt (NMI) + 1 to 32 physical interrupts
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Cortex-M0 Block Diagram
Processor core
Contains internal registers, the ALU, data path, and some control logics;
Three-stage pipeline: fetch, decode, and execution;
Registers include sixteen 32-bit registers for both general and special usages.
Nested Vectored Interrupt Controller (NVIC)
Up to 32 interrupt request signals and a non-maskable interrupt (NMI);
Automatically handles nested interrupts, such as comparing priorities between interrupt
requests and the current priority level;
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Cortex-M0 Registers
R0 – R12: general purpose registers
Low registers (R0 – R7) can be accessed by any instruction; Data Data
High registers (R8 – R12) sometimes cannot be accessed by
some Thumb instructions; PUSH POP
between tasks SP
Cortex-M0 has two SPs: Main SP, used in applications that High
require privileged access e.g. OS kernel, and exception PC
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Cortex-M0 Memory Map
The Cortex-M0 processor has 4 GB of memory address space
Nevertheless, despite of the default memory map, the actual usage of the
memory map can also be flexibly defined by the user, except some fixed
memory addresses, such as internal private peripheral bus.
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Cortex-M0 Endianness
Endian refers to the order of bytes stored in the memory
Little endian: lowest byte of a word-size data is stored in the bit 0 to bit 7
Big endian: lowest byte of a word-size data is stored in the bit 24 to bit 31
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Cortex-M0 Exception Handling
Exception Priority
The exceptions (or interrupts) are commonly divided into multiple levels of priorities;
A higher priority exception can be triggered and serviced during a lower priority
exception;
NMI is similar to IRQ but cannot be disabled and has the highest priority, useful for
safety critical systems such as industrial control or automotive.
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016