Liczniki z zastosowaniemskoczen/ead/pdf2/liczniki.pdfTable) i przerzutnika (Flip-Flop). Sieć...

27
Liczniki z zastosowaniem FPGA i µC Fizyka Medyczna, studia II stopnia, Dozymetria i elektronika w medycynie Elektroniczna Aparatura Dozymetryczna, WFiIS, AGH 1 2019-05-28

Transcript of Liczniki z zastosowaniemskoczen/ead/pdf2/liczniki.pdfTable) i przerzutnika (Flip-Flop). Sieć...

Page 1: Liczniki z zastosowaniemskoczen/ead/pdf2/liczniki.pdfTable) i przerzutnika (Flip-Flop). Sieć połączeniowa FPGA zajmuje 80-90% powierzchni układu. Powierzchnia logiki zajmuje 10-20%.

Licznikiz zastosowaniem

FPGA i µCFizyka Medyczna, studia II stopnia,

Dozymetria i elektronika w medycynie

Elektroniczna Aparatura Dozymetryczna, WFiIS, AGH

12019-05-28

Page 2: Liczniki z zastosowaniemskoczen/ead/pdf2/liczniki.pdfTable) i przerzutnika (Flip-Flop). Sieć połączeniowa FPGA zajmuje 80-90% powierzchni układu. Powierzchnia logiki zajmuje 10-20%.

Elektroniczna Aparatura Dozymetryczna, WFiIS, AGH

2

Źródło impulsów

Licznik Wyświetlacz

Układ czasowy

Kondycjonowanie

Zliczanie impulsów

2019-05-28

Page 3: Liczniki z zastosowaniemskoczen/ead/pdf2/liczniki.pdfTable) i przerzutnika (Flip-Flop). Sieć połączeniowa FPGA zajmuje 80-90% powierzchni układu. Powierzchnia logiki zajmuje 10-20%.

Elektroniczna Aparatura Dozymetryczna, WFiIS, AGH

3

Liczniki

Rodzaje implementacji:

Układy średniej skali integracji MSI

Mikrokontroler

Układ FPGA

2019-05-28

Page 4: Liczniki z zastosowaniemskoczen/ead/pdf2/liczniki.pdfTable) i przerzutnika (Flip-Flop). Sieć połączeniowa FPGA zajmuje 80-90% powierzchni układu. Powierzchnia logiki zajmuje 10-20%.

Przerzutnik D

CLK D Qn Qn+1

0 x 0 kasowanie

1 x 1 ustawianie

n+1 oznacza nstępny stan wyjścia Q tzn. po narastającym zboczu zegara

Qn+1 = D

4Elektroniczna Aparatura Dozymetryczna,

WFiIS, AGH2019-05-28

Page 5: Liczniki z zastosowaniemskoczen/ead/pdf2/liczniki.pdfTable) i przerzutnika (Flip-Flop). Sieć połączeniowa FPGA zajmuje 80-90% powierzchni układu. Powierzchnia logiki zajmuje 10-20%.

Przerzutnik J-KCLK J K Qn Qn+1

0 0 x Qn trzymanie

0 1 x 0 kasowanie

1 0 x 1 ustawianie

1 1 x Q’n zamiana

x x x Qn

Qn+1 = JQ’n + K’Qn

JKQ 0 1

00 0 1

01 0 0

11 1 0

10 1 1

5Elektroniczna Aparatura Dozymetryczna,

WFiIS, AGH2019-05-28

Page 6: Liczniki z zastosowaniemskoczen/ead/pdf2/liczniki.pdfTable) i przerzutnika (Flip-Flop). Sieć połączeniowa FPGA zajmuje 80-90% powierzchni układu. Powierzchnia logiki zajmuje 10-20%.

Przerzutnik T

TCLK T Qn Qn+1

0 x Qn trzymanie

1 x Q’n zamiana

x x Qn

Qn+1 = QnT’ + Q’nT = QnT

TQ 0 1

0 0 1

1 1 0

Alternatywa wykluczająca

6Elektroniczna Aparatura Dozymetryczna,

WFiIS, AGH2019-05-28

Page 7: Liczniki z zastosowaniemskoczen/ead/pdf2/liczniki.pdfTable) i przerzutnika (Flip-Flop). Sieć połączeniowa FPGA zajmuje 80-90% powierzchni układu. Powierzchnia logiki zajmuje 10-20%.

Elektroniczna Aparatura Dozymetryczna, WFiIS, AGH

7

T1

clk

T1 Tclk

1D1

D1

D2

Licznik asynchroniczny

LSB MSB

D1

D2

clk

00 01 10 11 00

2019-05-28

Page 8: Liczniki z zastosowaniemskoczen/ead/pdf2/liczniki.pdfTable) i przerzutnika (Flip-Flop). Sieć połączeniowa FPGA zajmuje 80-90% powierzchni układu. Powierzchnia logiki zajmuje 10-20%.

Elektroniczna Aparatura Dozymetryczna, WFiIS, AGH

8

Licznik asynchroniczny

T T T T

2019-05-28

Page 9: Liczniki z zastosowaniemskoczen/ead/pdf2/liczniki.pdfTable) i przerzutnika (Flip-Flop). Sieć połączeniowa FPGA zajmuje 80-90% powierzchni układu. Powierzchnia logiki zajmuje 10-20%.

Elektroniczna Aparatura Dozymetryczna, WFiIS, AGH

9

T1

clk

T1 Tclk

D1

D1

D2

Licznik synchroniczny

D1

D2

clk

00 01 10 11 00

2019-05-28

Page 10: Liczniki z zastosowaniemskoczen/ead/pdf2/liczniki.pdfTable) i przerzutnika (Flip-Flop). Sieć połączeniowa FPGA zajmuje 80-90% powierzchni układu. Powierzchnia logiki zajmuje 10-20%.

Elektroniczna Aparatura Dozymetryczna, WFiIS, AGH

10

Licznik synchroniczny

T T T T

2019-05-28

Page 11: Liczniki z zastosowaniemskoczen/ead/pdf2/liczniki.pdfTable) i przerzutnika (Flip-Flop). Sieć połączeniowa FPGA zajmuje 80-90% powierzchni układu. Powierzchnia logiki zajmuje 10-20%.

Elektroniczna Aparatura Dozymetryczna, WFiIS, AGH

11

74x163

Binary -> BCD

74x47BCD -> 7seg

bcdefg

a

b

ce

fg

Polaryzacja diod

d

Licznik - MSI

QA QB QC QD

QA QB QC QDQA QB QC QD

74x47BCD -> 7seg

bcdefg

a

b

ce

fg

Polaryzacja diod

d

a a

2019-05-28

Page 12: Liczniki z zastosowaniemskoczen/ead/pdf2/liczniki.pdfTable) i przerzutnika (Flip-Flop). Sieć połączeniowa FPGA zajmuje 80-90% powierzchni układu. Powierzchnia logiki zajmuje 10-20%.

Elektroniczna Aparatura Dozymetryczna, WFiIS, AGH

Podłącz wyjście przetwornika do wejścia wychwytującego CAP2.1 układu czasowegoLPC_TIM2

U/fNXP

LPC 1768(ARM Cortex M3)

Wyświetlacz graficzny

3 P0.5

+3.3V

12

Licznik w µC

Land Tiger

2019-05-28

Page 13: Liczniki z zastosowaniemskoczen/ead/pdf2/liczniki.pdfTable) i przerzutnika (Flip-Flop). Sieć połączeniowa FPGA zajmuje 80-90% powierzchni układu. Powierzchnia logiki zajmuje 10-20%.

Elektroniczna Aparatura Dozymetryczna, WFiIS, AGH

13

MikrokontrolerMikrokontroler LPC 1768

RdzeńARM Cortex M3

ADC

DAC

UART

SPI

I2C

GP

IO

USB

I2S PWM

TIMER RTC

WDT

CAN Ethernet DMA

Wyś

wie

tlac

z gr

afic

zny

Impulsy wejściowe

DAC Digital Analog Converter

ADC Analog Digital Converter

UART Universal Asynchronous Receiver-Transmitter

CAN Controller Area Network

SPI Serial Peripheral Interface

I2C Inter-Integrated Circuit

RTC Real Time Clock

GPIO General-Purpose Input/Output

DMA Direct Memory Access

PWM Pulse Width Modulation

WDT WatchDog Timer

USB Universal Serial Bus

I2S Inter-IC Sound

Ethernet

2019-05-28

Page 14: Liczniki z zastosowaniemskoczen/ead/pdf2/liczniki.pdfTable) i przerzutnika (Flip-Flop). Sieć połączeniowa FPGA zajmuje 80-90% powierzchni układu. Powierzchnia logiki zajmuje 10-20%.

Impulsy wejściowe

Przerwanie

CAP2.1

Elektroniczna Aparatura Dozymetryczna, WFiIS, AGH

14

Układ czasowy TIMERCztery identyczne układy czasowe Timer/Counters. Każdy posiada dwa wejścia wychwytujące Capture oraz dwa wyjścia sygnalizacji zgodności Match.

Liczniki 32-bitowe z programowalnym 32-bitowym układem wstępnego skalowania (prescaler).

Dwa tryby pracy: licznik Counter lub układ czasowy Timer.

Dwa kanały wychwytujące na każdy układ czasowy , tak aby możliwe było pobranie bieżącej wartości układ czasowego kiedy na wejściu wychwytującym zachodzi zmiana stanu.

Cztery 32-bitowe rejestry porównujące (match registers), które umożliwiają: Ciągłą pracę układ czasowy z generacją przerwania w chwili osiągnięcia zgodności (match) zawartości układu z

rejestrem porównującym, Zatrzymanie (Stop) układu czasowego w chwili osiągnięcia zgodności z(bez) generacją(i) przerwania Kasowanie (Reset) układu czasowego w chwili osiągnięcia zgodności z(bez) generacją(i) przerwania

Cztery zewnętrzne wyjścia odpowiadające rejestrom porównującym o następujących akcjach gdy licznik główny osiągnie wartość przechowywaną w rejestrze porównawczym:

Ustaw nisko Ustaw wysoko Zmień stan na przeciwny Nie zmieniaj stanu.

TIMER0

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16

TIMER1

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16

TIMER2

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16

TIMER3

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16

2019-05-28

Page 15: Liczniki z zastosowaniemskoczen/ead/pdf2/liczniki.pdfTable) i przerzutnika (Flip-Flop). Sieć połączeniowa FPGA zajmuje 80-90% powierzchni układu. Powierzchnia logiki zajmuje 10-20%.

Elektroniczna Aparatura Dozymetryczna, WFiIS, AGH

15

void TIMER0_IRQHandler (void)

{

int k;

int del = 127;

uint32_t val;

LPC_TIM0->TCR = 0x0000; //stop timer

LPC_TIM2->TCR = 0x0000; //stop counter

LPC_TIM0->IR = 1; //clear interrupt flag

val = LPC_TIM2->TC; //take current value

//clear display

for (k=0; k < 7; k++) printf("%c",del);

//set white colour and posinion for first digit

colour = LCDWhite;

posx = 76;

//display current value

printf("%d", val);

LPC_TIM2->TCR = 0x0002; //reset counter

LPC_TIM2->TCR = 0x0001; //start counter

LPC_TIM0->TCR = 0x0001; //start timer

//set black colour and position for first digit

posx = 76;

colour = LCDBlack;

return;

}

Licznik w µCTIMER0 – pracuje w trybie układu czasowego wyznaczającego czas otwarcia bramkiTIMER2 – pracuje w trybie licznika zliczającego zbocza narastające impulsów

przychodzących na wejście CAP2.1

int main (void)

{

uint32_t TimerInterval;

SystemInit();

SystemCoreClockUpdate();

TimerInterval = SystemCoreClock; //1s

lcdInit();

init_counter2_ch1();

init_timer(0, TimerInterval);

while (1)

{ }

}

2019-05-28

Page 16: Liczniki z zastosowaniemskoczen/ead/pdf2/liczniki.pdfTable) i przerzutnika (Flip-Flop). Sieć połączeniowa FPGA zajmuje 80-90% powierzchni układu. Powierzchnia logiki zajmuje 10-20%.

Elektroniczna Aparatura Dozymetryczna, WFiIS, AGH

16

GNDimpulsyLPC 1768

2019-05-28

Page 17: Liczniki z zastosowaniemskoczen/ead/pdf2/liczniki.pdfTable) i przerzutnika (Flip-Flop). Sieć połączeniowa FPGA zajmuje 80-90% powierzchni układu. Powierzchnia logiki zajmuje 10-20%.

Elektroniczna Aparatura Dozymetryczna, WFiIS, AGH

Licznik - FPGAPodłącz wyjście przetwornika do wejścia licznika BCD z wyświetlaczem LCDprzygotowanym na płycie FPGA.

U/f FPGA

LCD3 V14

+3.3V

17

Implementacja licznika

Spartan 3AN starter kit

2019-05-28

Page 18: Liczniki z zastosowaniemskoczen/ead/pdf2/liczniki.pdfTable) i przerzutnika (Flip-Flop). Sieć połączeniowa FPGA zajmuje 80-90% powierzchni układu. Powierzchnia logiki zajmuje 10-20%.

Elektroniczna Aparatura Dozymetryczna, WFiIS, AGH

18

DB[7:0]

E

RW

RS

Rejestr Komendy

Rejestr Danych

Licznik Adresu

DD RAM

CG RAM

BF

Wyświetlacz LCD

Matrycowy moduł LCD

typ HD44780

BF – Busy Flag –znacznik zajętości magistrali

2019-05-28

Page 19: Liczniki z zastosowaniemskoczen/ead/pdf2/liczniki.pdfTable) i przerzutnika (Flip-Flop). Sieć połączeniowa FPGA zajmuje 80-90% powierzchni układu. Powierzchnia logiki zajmuje 10-20%.

Licznik BCD

Sterowanie LCD

4444

clk

rst

in

DB [7:0]RSRWEFPGA

Detektor zbocza

narastającego

Licznik

Modulo 10

Licznik

Modulo 10

Licznik

Modulo 10

Licznik

Modulo 10

Licznik - FPGA

Page 20: Liczniki z zastosowaniemskoczen/ead/pdf2/liczniki.pdfTable) i przerzutnika (Flip-Flop). Sieć połączeniowa FPGA zajmuje 80-90% powierzchni układu. Powierzchnia logiki zajmuje 10-20%.

Pionowy kanał łączeniowy

(Vertical Routing Channel)

Element kluczujący(Switch Box - SB)

Element łączący(Connection Box - CB)

Poziomy kanał łączeniowy

(Horizontal Routing Channel)

Konfigurowalny blok logiczny

(Configurable Logic Block – CLB)

Blok wejściowo-wyjściowy

(I/O Block – IOB)

20Elektroniczna Aparatura Dozymetryczna,

WFiIS, AGH

Siatkowe FPGA składa się z matrycy konfigurowalnych bloków logiki (Configurable Logic Blocks - CLBs), zktórych każdy składa się z klastra podstawowych elementów logicznych (Basic Logic Elements -BLEs)., któreskładają się z pamięci podręcznej (Look-Up Table) i przerzutnika (Flip-Flop).

2019-05-28

Page 21: Liczniki z zastosowaniemskoczen/ead/pdf2/liczniki.pdfTable) i przerzutnika (Flip-Flop). Sieć połączeniowa FPGA zajmuje 80-90% powierzchni układu. Powierzchnia logiki zajmuje 10-20%.

Elementy kluczujące (Switch boxes - SB) łączą poziome i pionoweścieżki sieci połączeniowej.

Elementy łączące (Connection Boxes – CB) łączą bloki logiczne CLBi bloki wejścia-wyjścia IOB z sąsiadującymi ścieżkami siecipołączeniowej.

Siatkowe FPGA składa się z matrycy konfigurowalnych blokówlogiki (Configurable Logic Blocks - CLBs), z których każdy składasię z klastra podstawowych elementów logicznych (Basic LogicElements -BLEs), które składają się z pamięci podręcznej (Look-UpTable) i przerzutnika (Flip-Flop).

Sieć połączeniowa FPGA zajmuje 80-90% powierzchni układu.Powierzchnia logiki zajmuje 10-20%. Elastyczność FPGA zależy głównie od jego programowalnej sieci połączeniowej. Dlatego mówi się też o architekturze wyspowej – „wyspy” logiki w „morzu” zasobów połączeniowych.

Architektura FPGA

21Elektroniczna Aparatura Dozymetryczna,

WFiIS, AGH2019-05-28

Page 22: Liczniki z zastosowaniemskoczen/ead/pdf2/liczniki.pdfTable) i przerzutnika (Flip-Flop). Sieć połączeniowa FPGA zajmuje 80-90% powierzchni układu. Powierzchnia logiki zajmuje 10-20%.

Zasoby połączeniowe wokół jednego bloku CLB z segmentami śćieżek długości 1

22Elektroniczna Aparatura Dozymetryczna,

WFiIS, AGH

Connection Box

Switch Box

Switch Box

Switch Box

Switch Box

2019-05-28

Page 23: Liczniki z zastosowaniemskoczen/ead/pdf2/liczniki.pdfTable) i przerzutnika (Flip-Flop). Sieć połączeniowa FPGA zajmuje 80-90% powierzchni układu. Powierzchnia logiki zajmuje 10-20%.

Elektroniczna Aparatura Dozymetryczna, WFiIS, AGH

23

Spartan-3AN System Gates

Equivalent Logic Cells

CLBs SlicesMaksymalnaliczba linii I/O

XC3S700AN 700k 13248 1472 5888 372

V14

GND

Źródło impulsów

2019-05-28

Page 24: Liczniki z zastosowaniemskoczen/ead/pdf2/liczniki.pdfTable) i przerzutnika (Flip-Flop). Sieć połączeniowa FPGA zajmuje 80-90% powierzchni układu. Powierzchnia logiki zajmuje 10-20%.

Elektroniczna Aparatura Dozymetryczna, WFiIS, AGH

24

XC3S700ANLiczba CLB: nCLB = 1 472 szt.

Jeden CLB składa się z czterech SLICE-ów:Liczba SLICE: nSLICE = nCLB ∙4 = 5 888 szt.

Jeden SLICE składa się z dwóch komórek logicznych LC:Liczba LC: nLC = nSLICE ∙2 = 11 776 szt.

Równoważna komórka logiczna ELC jest obliczana ze współczynnikiem 1,125:Liczba ELC: nELC = 1,125∙ nLC = 13 248 szt.

Liczba bramek systemowych wynika ze skomplikowanych przeliczeń poszczególnych elementów układu na dwuwejściowe bramki NAND i ma charakter raczej marketingowy.

Spartan-3AN System Gates Equivalent Logic Cells CLBs Slices Maksymalna liczba linii I/O

XC3S700AN 700k 13248 1472 5888 372

2019-05-28

Page 25: Liczniki z zastosowaniemskoczen/ead/pdf2/liczniki.pdfTable) i przerzutnika (Flip-Flop). Sieć połączeniowa FPGA zajmuje 80-90% powierzchni układu. Powierzchnia logiki zajmuje 10-20%.

Elektroniczna Aparatura Dozymetryczna, WFiIS, AGH

25

`timescale 1ns / 1ps

/////////////

module cnt_modulo10 (input clk, rst, en,

output reg [3:0] dig_out);

always @(posedge clk, posedge rst)

if(rst)

dig_out <= 4'b0000;

else if(en)

if(dig_out == 4'b1001)

dig_out <= 4'b0000;

else

dig_out <= dig_out + 4'b0001;

endmodule

Model licznika modulo 10 napisany w języku Verilog

Licznik - FPGA

2019-05-28

Page 26: Liczniki z zastosowaniemskoczen/ead/pdf2/liczniki.pdfTable) i przerzutnika (Flip-Flop). Sieć połączeniowa FPGA zajmuje 80-90% powierzchni układu. Powierzchnia logiki zajmuje 10-20%.

Synteza logiczna

Mapowanie technologii

Klastrowanie

Rozmieszczanie

Wyznaczania tras połączeń

Generacja strumienia bitowego

strumień bitowy

Model RTL w HDLPrzebieg

konfiguracji

26Elektroniczna Aparatura Dozymetryczna, WFiIS, AGH

2019-05-28

Page 27: Liczniki z zastosowaniemskoczen/ead/pdf2/liczniki.pdfTable) i przerzutnika (Flip-Flop). Sieć połączeniowa FPGA zajmuje 80-90% powierzchni układu. Powierzchnia logiki zajmuje 10-20%.

Elektroniczna Aparatura Dozymetryczna, WFiIS, AGH

27

Automatyczna synteza licznika BCDNarzędzie: Synplify

2019-05-28