+ All Categories
Home > Documents > Hardware - FIFOs - FAU · PDF fileHardware-FIFOs–9/14–2010-09-28....

Hardware - FIFOs - FAU · PDF fileHardware-FIFOs–9/14–2010-09-28....

Date post: 17-Mar-2018
Category:
Upload: phungdang
View: 220 times
Download: 2 times
Share this document with a friend
14
Hardware - FIFOs Dr.-Ing. Matthias Sand Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2010/2011 Hardware - FIFOs– 1/14– 2010-09-28
Transcript

Hardware - FIFOs

Dr.-Ing. Matthias Sand

Lehrstuhl für Informatik 3 (Rechnerarchitektur)Friedrich-Alexander-Universität Erlangen-Nürnberg

WS 2010/2011

Hardware - FIFOs– 1/14– 2010-09-28

Motivation

Hardware - FIFOs– 2/14– 2010-09-28

Übersicht

Inhalt:

FIFOs in SoftwareRealisierung in HardwareVerwendeter Design-Block

Hardware - FIFOs– 3/14– 2010-09-28

FIFOs in Software

First-In-First-Out-Puffer („Warteschlange“), typischerweiseverwendet zur Entkopplung eines Erzeugers von einem Verbraucher.In Software meist realisiert als:

Liste sehr einfach, potentiell unendlich lang,Ringpuffer kein Synchronisationsaufwand, begrenzte Größe.

Hardware - FIFOs– 4/14– 2010-09-28

Realisierung in Hardware

IdeeRealisierung als Ringpuffer (Speicherelemente mit Einfüge-und Lese-Adress-Register),Logik für Füllstands-Flags: leer, halb voll, voll.

Hardware - FIFOs– 5/14– 2010-09-28

Beispiel: Einfache FIFO in VHDL

e n t i t y f i f o i sgener i c (

data_width : i n t e g e r := 8 ;v a l u e s : i n t e g e r := 16

) ;port (

c l k : i n s t d _ l o g i c ;r e s e t : i n s t d _ l o g i c ;r ead : i n s t d _ l o g i c ;w r i t e : i n s t d _ l o g i c ;data_in : i n s t d _ l o g i c _ v e c t o r ( data_width−1 downto 0 ) ;data_out : out s t d _ l o g i c _ v e c t o r ( data_width−1 downto 0)

) ;end f i f o ;

Hardware - FIFOs– 6/14– 2010-09-28

Beispiel: Einfache FIFO in VHDL (2)

a r c h i t e c t u r e behav of f i f o i stype b u f f e r A r r a y i s a r ray ( va l u e s −1 downto 0)

of s t d _ l o g i c _ v e c t o r ( data_width−1 downto 0 ) ;s i g n a l buf : b u f f e r A r r a y ;s i g n a l wr i t e_add r : i n t e g e r := 0 ;s i g n a l read_addr : i n t e g e r := 0 ;

begin. . .

Hardware - FIFOs– 7/14– 2010-09-28

Beispiel: Einfache FIFO in VHDL (3)

. . .f i f o _ i o : process ( c l k , r e s e t )begin

i f c l k ’ even t and c l k = ’1 ’ theni f r e s e t = ’0 ’ then

wr i t e_add r <= 0 ;read_addr <= 0 ;

e l s e−− naech s t e F o l i e

end i f ;end i f ;

end process f i f o _ i o ;end behav ;

Hardware - FIFOs– 8/14– 2010-09-28

Beispiel: Einfache FIFO in VHDL (4)

i f w r i t e = ’1 ’ thenbuf ( wr i t e_addr ) <= data_in ;wr i t e_add r <= wr i t e_add r + 1 ;i f wr i t e_add r >= buf ’ l e f t then

wr i t e_add r <= 0 ;end i f ;

end i f ;i f r ead = ’1 ’ then

data_out <= buf ( read_addr ) ;read_addr <= read_addr + 1 ;i f read_addr >= buf ’ l e f t then

read_addr <= 0 ;end i f ;

end i f ;

Hardware - FIFOs– 9/14– 2010-09-28

Realisierung in Hardware – Probleme

Probleme der naiven LösungKeine Füllstandsprüfung (wäre noch einfach zu ergänzen),FIFO arbeitet taktsynchron⇒ Erzeuger und Verbraucher an derselben Clock,Synthese von data_out <= buf(read_addr) problematisch:erfordert riesige Multiplexer-Strukturen,für jedes Bit (!) des Puffers wird eine Makrozelle „blockiert”.

Hardware - FIFOs– 10/14– 2010-09-28

Realisierung in Hardware – Verbesserung

Verbesserte LösungMit (Dual-Port-)RAM, dadurch

keine übermäßig große kombinatorische Logik nötig,nur wenige Flip-Flops/Makrozellen (i.W. für die Zeiger),Lese- und Schreibzugriffe völlig unabhängig voneinander.

Hardware - FIFOs– 11/14– 2010-09-28

Realisierung in Hardware – Verbesserung (2)

Realisiert...als eigenständiger FIFO-Baustein mit internem RAM(z.B. Cypress 7C433-20),mit externem Speicherbaustein,als vordefinierter Design-Block eines fortschrittlichenprogrammierbaren Logik-Chips.

Hardware - FIFOs– 12/14– 2010-09-28

Verwendeter Design-Block

CPLDs der ispXPLD 5000MX-Familie verfügen überMulti-Funktions-Blöcke(MFBs).

Hardware - FIFOs– 13/14– 2010-09-28

Verwendeter Design-Block (2)

Hardware - FIFOs– 14/14– 2010-09-28


Recommended