IO11Programowalne i specjalistyczne uklady cyfrowe

background image

3 października 2012

Wojciech Kucewicz

1

background image

3 października 2012

Wojciech Kucewicz

2

Programowalne

i specjalizowane

układy cyfrowe

Programowalne

i specjalizowane

układy cyfrowe

background image

3 października 2012

Wojciech Kucewicz

3

Klasyfikacja

układów logicznych

Klasyfikacja

układów logicznych

background image

Gate Array

PLD

Standard

Cell IC

Full Custom

IC

SPLD

(PAL)

CPLD

FPGA

Klasyfikacja układów logicznych

Klasyfikacja układów logicznych

Logic

circuits

Standard

Logic

ASIC

ASIC - Application Specific Integrated Circuits, specjalizowane układy scalone, projektowane

indywidualnie do konkretnego zastosowania, na zamówienie producentów urządzeń elektronicznych.

Full Custom – Układy ASIC, w których projektant projektuje wszystkie elementy układu scalonego

poczynając od topologii tranzystorów i połączeń między nimi wyprowadzeń.

background image

3 października 2012

Wojciech Kucewicz

5

VLSI Design Flow

Full Custom

VLSI Design Flow

Full Custom

background image

3 października 2012

Wojciech Kucewicz

6

VLSI Design Flow

VLSI Design Flow

System Idea

Identifying SubBlocks

Bottom-Up full custom

background image

3 października 2012

Wojciech Kucewicz

7

VLSI Design Flow (Full Custom)

VLSI Design Flow (Full Custom)

Sub-block Schematic

Transistor Level Simulation

Layout

Extraction

Layout vs.Schematic Check

Post Layout Simulation

background image

3 października 2012

Wojciech Kucewicz

8

VLSI Design Flow

VLSI Design Flow

Prototyping

Tape out

Placement and routing

Tests

Fabrification

Top Level Verification

background image

3 października 2012

Wojciech Kucewicz

9

Full Custom

Full Custom

Advantages

• chip area fully used

• faster

(shorter interconnections)

• power consumption adequate to the circuit function

• cheap in the long series

(for example memories)

Disadvantages

• very long prototyping

• very expensive development

background image

Gate Array

PLD

Standard

Cell IC

Full Custom

IC

SPLD

(PAL)

CPLD

FPGA

Klasyfikacja układów logicznych

Klasyfikacja układów logicznych

Logic

circuits

Standard

Logic

ASIC

ASIC - Application Specific Integrated Circuits, specjalizowane układy scalone, projektowane

indywidualnie do konkretnego zastosowania, na zamówienie producentów urządzeń elektronicznych.

Układy Standard Cell – Układy ASIC, w których projektant składa układ z gotowych topologii

elementów układów zapisanych w bibliotekach.

background image

3 października 2012

Wojciech Kucewicz

11

Standard Cell

Standard Cell

background image

3 października 2012

Wojciech Kucewicz

12

Standard Cells

Standard Cells

The standard-cells based design is one of the most prevalent

full custom design styles which require development of a full

custom mask set.

In this design style, all of the commonly used logic cells are

developed, characterized, and stored in a standard cell

library.

A typical library may contain a few hundreds cells including

inverters, NAND gates, NOR gates,, D-latches, and flip-flops.

background image

3 października 2012

Wojciech Kucewicz

13

Standard Cells

Standard Cells

To enable automated placement of the cells and routing of inter-cell

connections, each cell layout is designed with a fixed height, so that a

number of cells can be abutted side-by-side to form rows. The power

and ground rails typically run parallel to the upper and lower

boundaries of the cell, thus, neighbouring cells share a common power

and ground bus

background image

3 października 2012

Wojciech Kucewicz

14

Standard Cells

Standard Cells

Inside the I/O frame which is

reserved for I/O cells, the chip

area contains rows or columns of

standard cells. Between cell rows

are channels for dedicated inter-cell

routing.

background image

3 października 2012

Wojciech Kucewicz

15

Standard Cells

Standard Cells

A common signal bus structure

can also be incorporated into

the standard-cell-based chip

layout.

background image

3 października 2012

Wojciech Kucewicz

16

Standard Cells

Standard Cells

Advantages

• chip area nearly fully used

• faster

(shorter interconnections)

• power consumption adequate to the circuit function

• cheap in the long series

Disadvantages

• longer prototyping

• expensive design

background image

Gate Array

PLD

Standard

Cell IC

Full Custom

IC

SPLD

(PAL)

CPLD

FPGA

Klasyfikacja układów logicznych

Klasyfikacja układów logicznych

Logic

circuits

Standard

Logic

ASIC

ASIC - Application Specific Integrated Circuits, specjalizowane układy scalone, projektowane

indywidualnie do konkretnego zastosowania, na zamówienie producentów urządzeń elektronicznych.

Układy Gate Array – Układy ASIC, w których projektant projektuje maskę połączeń między

gotowymi tranzystorami i bramkami.

background image

3 października 2012

Wojciech Kucewicz

18

Gate Array

Gate Array

background image

3 października 2012

Wojciech Kucewicz

19

Gate Array (GA)

Gate Array (GA)

Gate array implementation requires a two-step manufacturing process:

• The first phase, which is based on generic (standard) masks, results in an array

of uncommitted transistors on each GA chip.

• Chips can be stored for later customization, which is completed by

defining the

metal interconnects between the transistors of the array

.

background image

3 października 2012

Wojciech Kucewicz

20

Gate Array Chip

Gate Array Chip

Gate array chip contains:

• bonding pads,

• diodes for I/O protection, nMOS

and pMOS transistors for chip

output driver circuits in the

neighboring areas of bonding pads,

• arrays of nMOS and pMOS

transistors,

• power and ground buses along

with contact windows

background image

3 października 2012

Wojciech Kucewicz

21

Gate Array

Gate Array

Advantages

• quite fast prototyping

(but slower than FPGA)

• low volume application

• short turn-around time

(but longer than FPGA)

Disadvantages

• chip area only partially used

(but better than FPGA)

• relatively high power consumption

• long interconnection lines

not reconfigurable

• quite expensive

background image

Gate Array

PLD

Standard

Cell IC

Full Custom

IC

SPLD

(PAL)

CPLD

FPGA

Klasyfikacja układów logicznych

Klasyfikacja układów logicznych

Logic

circuits

Standard

Logic

ASIC

ASIC - Application Specific Integrated Circuits, specjalizowane układy scalone, projektowane indywidualnie do

konkretnego zastosowania, na zamówienie producentów urządzeń elektronicznych.

PLD - Programmable Logic Devices, Użytkownik może zaimplementować w jego strukturze opracowany przez

siebie projekt specjalizowanego układu cyfrowego. Cechą tych układów jest więc ich konfigurowalność przez

użytkownika.

SPLD - Simple Programmable Logic Devices, proste układy programowalne.

FPGA - Field Programmable Gate Array, programowalne matryce bramkowe.

CPLD - Complex Programmable Logic Devices, złożone układy programowalne.

background image

3 października 2012

Wojciech Kucewicz

23

Układy PLD

Układy PLD

Programowalne

i specjalizowane układy cyfrowe

Programowalne

i specjalizowane układy cyfrowe

background image

Najwięksi producenci układów PLD

Najwięksi producenci układów PLD

1. Xilinx (

www.xilinx.com

)

2. Altera (

www.altera.com

)

3. Lattice-Vantis (

www.latticesemi.com

)

4. Actel (

www.actel.com

)

5. Atmel (

www.atmel.com

)

6. Cypress (

www.cypress.com

)

7. QuickLogic (

www.quicklogic.com

)

background image

Literatura

Literatura

1. Pasierbiński J., Zbysiński P.,

Układy programowalne w praktyce

, Wyd. WKŁ,

Warszawa 2002.

2. Kevin Skahill,

Język VHDL, Projektowanie programowalnych układów

logicznych

,Wydawnictwa naukowo-Techniczne, Warszawa 2001

3. T. Łuba, K. Jasiński, B. Zbierzchowski,

Specjalizowane układy cyfrowe w

strukturach PLD i FPGA

, WKŁ, Warszawa, 1997

4. Podręczniki firmowe (

Data Book, Data Sheet, Application Notes

, itp.. …) do

omawianych układów (ze stron WWW producentów)

www.xilinx.com

www.altera.com

www.latticesemi.com

www.actel.com

www.atmel.com

www.cypress.com

www.quicklogic.com

Inne strony WWW zajmujące się tematyką PLD, np:

http://www.fpgajournal.com

,

www.design-reuse.com

,

www.opencores.org

background image

Układy SPLD

Układy SPLD

Do układów SPLD zalicza się układy programowalne:

PLA (

Programmable Logic Array

),

PAL (

Programmable Array Logic

)

GAL (

Generic Array Logic

).

Są to układy najtańsze i najprostsze o małej liczbie wyprowadzeń.

Ich zasoby logiczne zawierają typowo od 4 do 22 makrokomórek logicznych o dwupoziomowej

strukturze logicznej i mogą zwykle zastąpić kilka standardowych układów scalonych rodziny

74xx.

Struktura zazwyczaj jest symetryczna, tzn. każda z makrokomórek jest w pełni połączona z

innymi komórkami w danym układzie scalonym. Wyjście każdej komórki może być podane na

wejście każdej innej oraz wejścia układu mogą być podane do każdej komórki.

Do określenia połączeń pomiędzy komórkami oraz funkcji przez nie realizowanych

(skonfigurowania/zaprogramowania układu) stosowane są łączniki (klucze), którymi są w

większości przypadków przepalane elektrycznie fragmenty ścieżek (łączniki rozwarciowe – dla

układów PLA i PAL) lub tranzystory MOS (dla układów GAL).

background image

SPLD

(PLA)

Układy PLA – Programowalne Matryce

Logiczne

Układy PLA – Programowalne Matryce

Logiczne

Układy PLA są przykładem

kombinacyjnego układu PLD.

Stanowią dwuwymiarową

strukturę połączeń z

programowalnymi połączeniami

(najczęściej zwarciami) w

miejscu ich krzyżowania się

X0

X1

X15

16 wejścia

16 bramek

NAND

16 wejść

8 bramek

OR

background image

SPLD

(PLA)

Układy PLA – Programowalne Matryce

Logiczne

Układy PLA – Programowalne Matryce

Logiczne

Układy PLA są przykładem

kombinacyjnego układu PLD.

Stanowią dwuwymiarową

strukturę połączeń z

programowalnymi połączeniami

(najczęściej zwarciami) w

miejscu ich krzyżowania się.

Programowalne połączenia

mają bramki AND i bramki OR

X0

X1

X15

32 wejścia

48 bramek

NAND

16 wejść

8 bramek

OR

background image

SPLD

(PLA)

Układy PLA – Programowalne Matryce

Logiczne

Układy PLA – Programowalne Matryce

Logiczne

Dla każdego sygnału wejściowego można

wyróżnić 4 przypadki programowania

wejść bramki NAND:

1. Stan nie zaprogramowany

2. Podawanie sygnału wejściowego nie

zanegowanego

3. Podawanie sygnału wejściowego

zanegowanego

4. Nie podawanie sygnału na wejście

X0

X0

X0

X0

1

2

3

4

background image

SPLD

(PLA)

Układy PLA – Programowalne Matryce

Logiczne

Układy PLA – Programowalne Matryce

Logiczne

Realizacja sumatora przy

pomocy układu PLA

A

B

C

S = A’B’C + AB’C’ + A’BC’ + ABC

Carry = AB + AC + BC

S

Carry

background image

SPLD

(PAL)

Układy PAL – Programowalne Matrycowe

Układy Logiczne

Układy PAL – Programowalne Matrycowe

Układy Logiczne

Układy PAL

charakteryzują się tym,

iż programowalne

połączenia mają tylko

bramki AND.

W układach PAL wyjście

każdej bramki AND jest

bezpośrednio połączone

do jednego z wejść

jednej bramki OR

X0

X1

X2

AMD PAL

Programmable

Array Logic

background image

SPLD

(PAL)

Układy PAL – Programowalne Matrycowe

Układy Logiczne

Układy PAL – Programowalne Matrycowe

Układy Logiczne

A

B

C

AMD PAL

Programmable

Array Logic

Realizacja sumatora przy

pomocy układu PAL

S = A’B’C + AB’C’ + A’BC’ + ABC

Carry = AB + AC + BC

S

Carry

background image

Fragment struktury układu PAL 16L8

Fragment struktury układu PAL 16L8

Widoczne:
1. Macierz połączeń AND
2. Funkcje OR (następniki)
3. Sprzężenia zwrotne do macierzy połączeń

background image

Układy GAL

Układy GAL

Obecnie najpopularniejszą grupą układów SPLD są układy GAL, w których

wykorzystano architekturę PAL wzbogaconą o konfigurowalne

makrokomórki wyjściowe zawierające przerzutniki typu D. Przerzutniki

te spełniają rolę wyjściowych elementów pamięciowych umożliwiających

budowanie układów synchronicznych.

SPLD

(GAL)

Generic Array Logic

background image

Układy GAL

Układy GAL

SPLD

(GAL)

background image

Makrokomórki w układach GAL

Makrokomórki w układach GAL

OLMC

Output Logic

Macrocell

Makrokomórka OLMC umożliwia zaprogramowanie układu w trybie

kombinacyjnym lub sekwencyjnym

Komórka kombinacyjna

SPLD

(GAL)

background image

Makrokomórki w układach GAL

Makrokomórki w układach GAL

OLMC

Output Logic

Macrocell

Makrokomórka OLMC umożliwia zaprogramowanie układu w trybie

kombinacyjnym lub sekwencyjnym

Komórka sekwencyjna

D Q

Clk nQ

SPLD

(GAL)

background image

Makrokomórki w układach GAL

Makrokomórki w układach GAL

OLMC

Output Logic

Macrocell

Makrokomórka OLMC umożliwia zaprogramowanie układu w trybie

kombinacyjnym lub sekwencyjnym

Komórka uniwersalna

D Q

Clk nQ

SPLD

(GAL)

background image

Przykładowy układ GAL ATF22LV10C

Przykładowy układ GAL ATF22LV10C

background image

Budowa makroceli układu GAL22V10

Budowa makroceli układu GAL22V10

background image

Układy CPLD

Układy CPLD

Układy CPLD są koncepcyjnie podobne do układów SPLD, lecz są bardziej złożone: mają

większe zasoby logiczne i możliwości funkcjonalne.

Ich architektura ma strukturę hierarchiczną opartą na makrokomórkach logicznych,

których zawierają od kilkudziesięciu do kilkuset. Typowo od czterech do szesnastu

makrokomórek jest połączonych w większy blok funkcjonalny (podobny do

pojedynczego układu SPLD).

Poszczególne bloki funkcjonalne są łączone między sobą za pomocą matrycy

połączeniowej, której zdolność łączeniowa jest ważną cechą układów CPLD.

Układy CPLD są wytwarzane niemal wyłącznie w technologii CMOS.

CPLD

Complex Programmable Logic Devices

background image

Układy CPLD

Układy CPLD

CPLD

Complex Programmable Logic Devices

I/O

I/O

BF

BF

BF

BF

BF

BF

BF

BF

Programmable

interconnect

ion matrix

background image

3 października 2012

Wojciech Kucewicz

43

F

ield

P

rogrammable

G

ate

A

rrays

(

FPGA

)

F

ield

P

rogrammable

G

ate

A

rrays

(

FPGA

)

background image

Układy FPGA

Układy FPGA

Układy FPGA (Field Programmable Gate Array) należą do grupy układów

programowalnych przez użytkownika.

Dzięki uniwersalnej budowie i pełnej konfigurowalności możliwe jest

zaimplementowanie dowolnej funkcji logicznej w strukturze FPGA.

Ta uniwersalność układów FPGA powoduje, że produkowane są one masowo i

dzięki temu są ogólnie dostępne.

Stanowią dobrą alternatywę dla układów ASIC charakteryzujących się

wysokimi kosztami produkcji układu prototypowego i dłuższą procedurą

projektową.

Układy FPGA najchętniej wykorzystywane są przy projektowaniu

prototypowych układów cyfrowych średniej i dużej wielkości i

krótkoseryjnej produkcji.

background image

Układy FPGA

Układy FPGA

Układy FPGA w języku polskim określane są jako programowalne matryce

bramkowe.

Są to programowalne układy cyfrowe wielkiej skali integracji, zawierające

zbiór programowalnych bloków logicznych CLB (Configurable Logic Block)

o regularnym rozkładzie topograficznym, programowalne połączenia PSM

(Programmable switch matrix) oraz bufory wejścia wyjścia (IO buffer)

.

background image

Układy FPGA

Układy FPGA

Układy FPGA są układami o dużej złożoności logicznej i są przeznaczone

głównie do zastosowań systemowych.

Struktury FPGA zawierają do dziesiątków tysięcy bloków logicznych. Bloki

logiczne mogą być bardzo złożone, jest ich wówczas mniej w układzie, lub

względnie proste i jest ich wówczas więcej.

Bloki PLB mogą spełniać o wiele bardziej zaawansowane funkcje niż zwykłe

bramki logiczne.

background image

Układy FPGA

Układy FPGA

Programowanie układów FPGA polega na skonfigurowaniu

układów wejścia/wyjścia, bloków logicznych oraz

połączeń między nimi.

Jest to proces programowania wewnętrznej pamięci układu, która z kolei

steruje siecią łączników konfigurujących poszczególne funkcje układu.

Pamięć konfiguracji nie stanowi oddzielnego bloku, ale jej poszczególne

elementy związane są z blokami funkcjonalnymi

background image

3 października 2012

Wojciech Kucewicz

48

Układy FPGA

Układy FPGA

Wszystkie wewnętrzne kanały łączeniowe składają się z odcinków ścieżek

metalowych, programowalnych punktów łączeniowych - PIP (Programmable

Interconnect Point) i programowalnych matryc łączeniowych - PSM

(Programmable Switch Matrix), , tworząc w efekcie wydajną strukturę

do realizacji sieci połączeń projektowanego systemu.

W miejscach przecinania się linii lokalnych znajdują się matryce łączników

PSM pełniące rolę programowalnych zwrotnic sygnałowych.

Zap pomocą matryc PSM sygnały

mogą być przełączane między

poszczególnymi kanałami, a

następnie poprzez kolejne łączniki

trafiać do wyprowadzeń bloków IOB

i CLB.

background image

3 października 2012

Wojciech Kucewicz

49

Układ elektroniczny FPGA może być rozbudowana poprzez dodanie w jednej

obudowie struktur procesora, pamięci oraz dowolnych interfejsów

komunikacyjnych.

Powstaje w ten sposób typowy układ „Multichip module” lub „System on chip”,

gdy wszystkie struktury wykonane są w jednym układzie scalonym

System-On-Chip

System-On-Chip

background image

3 października 2012

Wojciech Kucewicz

50

Programowalny blok logiczny PLB pozwala na implementację funkcji

logicznych (kombinacyjnych i sekwencyjnych). Stopień skomplikowania

funkcji logicznej , jaką można zaimplementować w PLB zależy od budowy tego

bloku.

Blok PLB zbudowany jest segmentu LUT (Look-up-Table) do realizacji

funkcji kombinacyjnych oraz bloku sekwencyjnego, który może się składać z

jednego lub wielu przerzutników. Wszystkie segmenty są łączone poprzez

multipleksery.

Programable Logic Blocks

Programable Logic Blocks

background image

3 października 2012

Wojciech Kucewicz

51

Look-Up-Table

Look-Up-Table

Tablica

LUT

jest uniwersalnym układem do konfigurowania funkcji

logicznych.
Przyładowo 3-bitowa LUT posiada 3 wejścia X0, X1 i X2 oraz wyjście Fout

będące logiczną funkcją zmiennych wejściowych.

Wartości logiczne funkcji Fout zapisane są w tablicy i adresowane stanami

wejść X0, X1 i X2

Przykładowo adres 5 (101)

podłącza do wyjścia wartość

Value(5) zapisaną w tablicy.

Look-Up-Table

Value 0

Value 1

Value 2
Value 3
Value 4
Value 5
Value 6

Value7

X2

X1

X0

Fout

Value 5

1

0

1

background image

3 października 2012

Wojciech Kucewicz

52

Look-Up-Table

Look-Up-Table

Tablica

LUT

może być zbudowana z

rejestru przesuwnego szeregowo-

równoległego (przerzutniki D) z

wybieraniem wyjścia przy pomocy

multipleksera.
Stany logiczne funkcji Fout są

wprowadzane z pamięci do rejestru

przesuwnego i wybierane odpowiednim

adresem (X2 X1 X0)

D Q’

Clk Q

Res

D Q’

Clk Q

Res

D Q’

Clk Q

Res

D Q’

Clk Q

Res

D Q’

Clk Q

Res

D Q’

Clk Q

Res

D Q’

Clk Q

Res

D Q’

Clk Q

Res

Fout

D Q’

Clk Q

Res

D Q’

Clk Q

Res

D Q’

Clk Q

Res

D Q’

Clk Q

Res

D Q’

Clk Q

Res

D Q’

Clk Q

Res

D Q’

Clk Q

Res

D Q’

Clk Q

Res

Fout

Value 0

Value 1

Value 2

Value 3

Value 4

Value 5

Value 6

Value 7

Przykładowo adres 5 (101)

podłącza do wyjścia wartość

Value(5) zapisaną w tablicy.

1 0 1

background image

3 października 2012

Wojciech Kucewicz

53

Configurable Logic Block

Configurable Logic Block

Blok CLB zawiera również

układ sekwencyjny.
Przełączanie funkcji pomiędzy

blokiem kombinacyjnym (LUT)

i sekwencyjnym wykonuje się

przy pomocy multiplekserów.
Multipleksery przełączane są

wartościami logicznymi

wpisanymi do rozszerzonego o

2 bity rejestru przesuwnego

LUT.

D Q’

Clk Q

Res

D Q’

Clk Q

Res

D Q’

Clk Q

Res

D Q’

Clk Q

Res

D Q’

Clk Q

Res

D Q’

Clk Q

Res

D Q’

Clk Q

Res

D Q’

Clk Q

Res

Fout

X2

X1

X0

D Q’

Clk Q

Res

D Q’

Clk Q

Res

D Q’

Clk Q

Res

DA
TA
in

Cl

k

Q

DATAout

Me
m

D Q’

Clk Q

Res

D Q’

Clk Q

Res

D Q’

Clk Q

Res

D Q’

Clk Q

Res

D Q’

Clk Q

Res

D Q’

Clk Q

Res

D Q’

Clk Q

Res

D Q’

Clk Q

Res

Fout

X2

X1

X0

D Q’

Clk Q

Res

D Q’

Clk Q

Res

D Q’

Clk Q

Res

DA
TA
in

Cl

k

Q

DATAout

Me
m

LUT

Układ sekwencyjny

Value 8 Value 9

background image

3 października 2012

Wojciech Kucewicz

54

Configurable Logic Block

Configurable Logic Block

Wyjście LUT jest bezpośrednio

połączone do wyjścia Fout oraz

poprzez multiplekser z wejściem

przerzutnika.
Na przerzutnik można też

podawać sygnał bezpośrednio z

wejścia DATAin.
W zależności od ustawienia

drugiego multipleksera na wyjście

DATAout można podać sygnał z

wyjścia nQ przerzutnika lub

bezpośrednio sygnał z wejścia

DATAin

D Q’

Clk Q

Res

D Q’

Clk Q

Res

D Q’

Clk Q

Res

D Q’

Clk Q

Res

D Q’

Clk Q

Res

D Q’

Clk Q

Res

D Q’

Clk Q

Res

D Q’

Clk Q

Res

Fout

X2

X1

X0

D Q’

Clk Q

Res

D Q’

Clk Q

Res

D Q’

Clk Q

Res

DA
TA
in

Cl

k

Q

DATAout

Me
m

D Q’

Clk Q

Res

D Q’

Clk Q

Res

D Q’

Clk Q

Res

D Q’

Clk Q

Res

D Q’

Clk Q

Res

D Q’

Clk Q

Res

D Q’

Clk Q

Res

D Q’

Clk Q

Res

Fout

X2

X1

X0

D Q’

Clk Q

Res

D Q’

Clk Q

Res

D Q’

Clk Q

Res

DA
TA
in

Cl

k

Q

DATAout

Me
m

Prezentowany układ jest podobny do układów serii Xilinx XC5200.

background image

3 października 2012

Wojciech Kucewicz

55

Programmable Switching Matrix

Programmable Switching Matrix

Zadaniem matrycy PSM jest programowanie połączeń pomiędzy blokami PLB.

Każde skrzyżowanie dwóch linii powinno zapewniać dowolne z 6 możliwych

połączeń

PIP – (Programmable Interconnect Point)

.

background image

3 października 2012

Wojciech Kucewicz

56

Programmable Switching Matrix

Programmable Switching Matrix

PIP można zbudować z bramki transmisyjnej sterowanej przerzutnikiem D
Gdy przerzutnik ma na wyjściu Q wartość zero bramka jest wyłączona (brak

połączenia), gdy wyjście ma wartość 1 bramka przewodzi (2 linie są

połączone). Rezystancja takiego połączenia ma wartość ok. 100 Ω.

D Q’

Clk Q

Res

D Q’

Clk Q

Res

01

background image

3 października 2012

Wojciech Kucewicz

57

Programmable Switching Matrix

Programmable Switching Matrix

Każde skrzyżowanie tworzy 6 bramek transmisyjnych, które strowane są z

rejestru przesuwnego.

0 1 0 0

0

1

background image

3 października 2012

Wojciech Kucewicz

58

Programmable Switching Matrix

Programmable Switching Matrix

Zadaniem matrycy PSM jest programowanie połączeń pomiędzy blokami PLB.

Przykład matrycy 3 x3

W takim skrzyżowaniu linii

można zaprogramować wiele

połączeń pomiędzy CLB

Program DSCH2 umożliwia

tworzenie matryc połączeń

background image

3 października 2012

Wojciech Kucewicz

59

Połączenie bloków CLB

Połączenie bloków CLB

Przykładowy układ 2 CLB wraz z połączeniami wykonany w DSCH2

background image

3 października 2012

Wojciech Kucewicz

60

Przykład

Przykład

Zadanie:

Zbudować układ pełnego sumatora w układzie FPGA

1. Układ pełnego sumatora ma 3 zmienne wejściowe A, B, C oraz 2

funkcje wyjściowe Sum, Carry

2. Zapisujemy tablicę prawdy

F=A+B+C

S

0

SUM

S

1

Carry

ABC

0 0 0

0

0

0 0 1

1

0

0 1 0

1

0

0 1 1

0

1

1 0 0

1

0

1 0 1

0

1

1 1 0

0

1

1 1 1

1

1

background image

3 października 2012

Wojciech Kucewicz

61

Zastosowanie układu FPGA do budowy pełnego

sumatora

Zastosowanie układu FPGA do budowy pełnego

sumatora

Pełny sumator realizowany jest przez dwie funkcje: Sumy i przeniesienia.

Każdą z tych funkcji należy zamodelować zgodnie z tablicą prawdy w

oddzielnym bloku LUT.

D Q’

Clk Q

Res

D Q’

Clk Q

Res

D Q’

Clk Q

Res

D Q’

Clk Q

Res

D Q’

Clk Q

Res

D Q’

Clk Q

Res

D Q’

Clk Q

Res

D Q’

Clk Q

Res

Fout

D Q’

Clk Q

Res

D Q’

Clk Q

Res

D Q’

Clk Q

Res

D Q’

Clk Q

Res

D Q’

Clk Q

Res

D Q’

Clk Q

Res

D Q’

Clk Q

Res

D Q’

Clk Q

Res

Fout

0
1
1
0
1
0
0
1

D Q’

Clk Q

Res

D Q’

Clk Q

Res

D Q’

Clk Q

Res

D Q’

Clk Q

Res

D Q’

Clk Q

Res

D Q’

Clk Q

Res

D Q’

Clk Q

Res

D Q’

Clk Q

Res

Fout

D Q’

Clk Q

Res

D Q’

Clk Q

Res

D Q’

Clk Q

Res

D Q’

Clk Q

Res

D Q’

Clk Q

Res

D Q’

Clk Q

Res

D Q’

Clk Q

Res

D Q’

Clk Q

Res

Fout

0
0
0
1
0
1
1
1

SUM

Carry

A B C

A B C

F=A+B+C

S

0

SUM

S

1

Carry

ABC

0 0 0

0

0

0 0 1

1

0

0 1 0

1

0

0 1 1

0

1

1 0 0

1

0

1 0 1

0

1

1 1 0

0

1

1 1 1

1

1

background image

3 października 2012

Wojciech Kucewicz

62

Zastosowanie układu FPGA do budowy pełnego

sumatora

Zastosowanie układu FPGA do budowy pełnego

sumatora

Pełny sumator realizowany jest przez dwie funkcje: Sumy i przeniesienia.

Każdą z tych funkcji należy zamodelować zgodnie z tablicą prawdy w

oddzielnym bloku LUT.

D Q’

Clk Q

Res

D Q’

Clk Q

Res

D Q’

Clk Q

Res

D Q’

Clk Q

Res

D Q’

Clk Q

Res

D Q’

Clk Q

Res

D Q’

Clk Q

Res

D Q’

Clk Q

Res

Fout

D Q’

Clk Q

Res

D Q’

Clk Q

Res

D Q’

Clk Q

Res

D Q’

Clk Q

Res

D Q’

Clk Q

Res

D Q’

Clk Q

Res

D Q’

Clk Q

Res

D Q’

Clk Q

Res

Fout

SUM

Carry

A B C

A B C

CLB 1

SUM

CLB 2

SUM

background image

3 października 2012

Wojciech Kucewicz

Zastosowanie układu FPGA do budowy pełnego

sumatora

Zastosowanie układu FPGA do budowy pełnego

sumatora

Programowanie CLB powinno skonfigurować

cały blok (uwzględniać rejestry sterujące

multiplekserami z segmentu

sekwencyjnego)

Value9

Value8

Value7

Value6

Value5

Value4

Value3

Value2

Value1

Value0

SUM

0

0

1

0

0

1

0

1

1

0

Carry

0

0

1

1

1

0

1

0

0

0

background image

3 października 2012

Wojciech Kucewicz

64

Przykład

Przykład

W tym celu potrzbne są 2 przerzutniki D. Ponieważ w CLB znajduje się tylko

jeden przerzutnik, więc należy wykorzystać 2 bloki CLB.

Zadanie:

Zbudować asynchroniczny licznik 2 bitowy w układzie FPGA

D Q’

Clk Q

Res

D Q’

Clk Q

Res

Clk

X0

X0

Res

CLB 1

CLB 1

background image

3 października 2012

Wojciech Kucewicz

65

Licznik 2 bitowy

Licznik 2 bitowy

0 1

background image

3 października 2012

Wojciech Kucewicz

66

W kazdym bloku konfiguruje się jeden stopień licznika. Zapisujemy w

rejestrze przesuwnym poniższą sekwencję

Block 1 DataOut=nQ, D=DataIN

Cycle 1

2

3

4

5

6

7

8

9

10

Val (9)

Val (8) Val (7) Val (6) Val (5) Val (4) Val (3) Val (2) Val (1) Val (0)

1

0

0

0

0

0

0

0

0

0

Licznik 2 bitowy

Licznik 2 bitowy

Block 2 DataOut=nQ, D=DataIN

Cycle 1

2

3

4

5

6

7

8

9

10

Val (9)

Val (8) Val (7) Val (6) Val (5) Val (4) Val (3) Val (2) Val (1) Val (0)

1

0

0

0

0

0

0

0

0

0

background image

3 października 2012

Wojciech Kucewicz

67

Połączenie pomiędzy nQ i D realizujemy poza blokiem CLB

Licznik 2 bitowy

Licznik 2 bitowy

background image

3 października 2012

Wojciech Kucewicz

68

CLB w układzie Xilinx Spartan

CLB w układzie Xilinx Spartan

Wszystkie bloki CLB w układach Spartan mają taką samą budowę. O funkcjonalności

całego układu FPGA decyduje uniwersalność tych bloków w realizowaniu różnych

funkcji. Zbudowane są w oparciu o trzy tablice LUT używane jako generatory funkcji

logicznych, dwa przerzutniki i dwie grupy multiplekserów sterujących przepływem

sygnałów.

background image

3 października 2012

Wojciech Kucewicz

69

CLB w układzie Xilinx Spartan

CLB w układzie Xilinx Spartan

Dwie pamięci LUT (F i G) mają

pojemność 16 bitów i są używane

do generowania funkcji logicznych

do czterech zmiennych.

Sygnałami wejściowymi są linie

adresowe tych pamięci oznaczone

na rysunku jako F1-F4 i G1-G4. Są

to linie całkowicie niezależne od

siebie i mogą pochodzić z różnych

źródeł w układzie.

Trzecia z występujących w CLB

pamięci H-LUT (9 bitowa) stanowi

generator funkcji trzech

zmiennych, podanych na wejścia

F, H1, G.

Dwa z tych wejść (F i G) kontrolowane są przez programowalne multipleksery i mogą

być sterowane przez wyjścia pamięci F i G bądź przez sygnały wejściowe SR i DIN

danego bloku CLB. Trzeci sygnał wejściowy pamięci H-LUT pochodzi zawsze z wejścia

bloku CLB. Dzięki takiemu układowi w pojedynczym CLB mogą być realizowane również

funkcje pięciu zmiennych a także niektóre funkcje nawet do dziewięciu zmiennych.

background image

3 października 2012

Wojciech Kucewicz

70

CLB w układzie Xilinx Spartan

CLB w układzie Xilinx Spartan

Możliwości realizacji funkcji

kombinacyjnych w każdym bloku

CLB są następujące:

• dwie dowolne funkcje każda do

czterech niezależnych

zmiennych, plus trzecia funkcja

do trzech zmiennych,

• dowolna funkcja pięciu zmien-

nych, plus dowolna funkcja do

czterech zmiennych,

• dowolna funkcja czterech

zmiennych, plus niektóre funkcje

sześciu zmiennych,

• niektóre funkcje do dziewięciu

zmiennych.

background image

3 października 2012

Wojciech Kucewicz

71

CLB w układzie Xilinx Spartan

CLB w układzie Xilinx Spartan

Oprócz tablic LUT każdy CLB

zawiera dwa konfigurowalne

przerzutniki. Mogą być one

wykorzystane do zapamiętywania

stanów wyjściowych tablic LUT

albo pracować niezależnie od

nich. Wówczas sygnał DIN może

być doprowadzony do wejścia

dowolnego przerzutnika lub do

obu jednocześnie. Podobnie może

być doprowadzony poprzez

tablicę H-LUT (z niewielkim

opóźnieniem) sygnał H1.

Oba przerzutniki posiadają wspólne sygnały: zegara (CK), blokowania zegara (EC) i

ustawiania/zerowania przerzutnika (SR).

background image

3 października 2012

Wojciech Kucewicz

72

CLB w układzie Xilinx Spartan

CLB w układzie Xilinx Spartan

Układy wejścia/wyjścia stanowią interfejs

między zewnętrznymi wyprowadzeniami

układu a wewnętrzną logiką. Każdy taki

układ współpracuje z jedną nóżką układu.

Układy te są w znacznym stopniu

konfigurowalne tak aby mogły spełniać

różne role, w zależności od potrzeb. IOB

można skonfigurować do pracy z sygnałami

wejściowymi, wyjściowymi lub

dwukierunkowymi
Droga sygnałów wejściowych: sygnał z końcówki układu wprowadzany jest przez bufor

wejściowy. Następnie może być przekazany bezpośrednio na końcówki I1 i I2, i dalej

do wewnętrznej sieci połączeń układu FPGA. Natomiast w przypadku gdy zachodzi

potrzeba zapamiętania stanu sygnału wejściowego, mamy do wyboru dwie metody:

• zapamiętanie stanu sygnału w przerzutniku na narastającym zboczu zegara

• zatrzaśnięcie stanu sygnału w zatrzasku po opadnięciu sygnału bramkującego

Uniwersalne układy wejścia/wyjścia IOB (Input/Output Blocks)


Wyszukiwarka

Podobne podstrony:
13 Programowalne i Specjalistyczne Układy Cyfrowe
MSE11Programowalne i specjalistyczne uklady cyfrowe
116 8, układy cyfrowe
Układy cyfrowe i systemy wbudowane 1 SPRAWOZDANIE 2
Układy cyfrowe i systemy wbudowane 1 SPRAWOZDANIE 6
uklady cyfrowe
kolokwium drugie uklady cyfrowe 2003
Układy cyfrowe
VHDL ściąga 2, Uc2- uklady cyfrowe,sciagi, wyklady
Cw 24 Uklady cyfrowe id 122415 Nieznany
VHDL ściąga, Uc2- uklady cyfrowe,sciagi, wyklady
Sprawozdanie Ukłądy cyfrowe
sciaga z układy cyfrowe
Układy cyfrowe spis?łość
kolokwium pierwsze uklady cyfrowe, ZiIP, inne kierunki, 3 sem, Technika cyfrowa, Zal

więcej podobnych podstron