FPGA (CPLD) a (a)synchronni navrh?
Milan
milger@pobox.sk
Čtvrtek Září 8 13:15:38 CEST 2005
Tak to skusim v skratke na priklade:
Predstav si ze potrebujes riesit zmenu stavu vystupu vzdy pri splneni
podmienky A or B and C
1. - prepojis vstup a vystup klopneho obvodu cez invertor
- urobis A or B and C, vystup privedies na hodinovy vstup klopneho
obvodu
2. - prepojis vstup a vystup klopneho obvodu cez invertor
- na hodinovy vstup klopneho obvodu pripojis rychle hodiny CLK
- urobis A or B and C, vystup privedies na CLOCK_ ENABLE klopneho
obvodu
- signaly A,B,C budu samozrejme osetrene podobne, budu prichadzat spoza
klopaku vzorkovaneho rovnakymi hodinami CLK
1. riesenie je typicky asynchronne, na FPGA je to skor generator hazadu
/netreba to brat doslovne/
2. riesenie sice oneskori nastavenie vystupu o periodu hodin CLK, ale
rovnako zabezpeci, ze vysledny signal, ktory pouzijes v dalsom bloku bude
cas T stabilny a nezmeneny. Signal bude "zasynchronizovany" a ty vies ze ho
mas posunuty prave o T a to sa da kompenzovat /v 99.999% navrhov/
Kedze FPGA realizuju log. funkciu SRAM /vstupy su adresa a vystup data/, pri
zmene vstupov moze dochadzat k nechcenym zakmitom /ako ked na SRAM menis
adresu a to by ti v 1. priklade menilo vystup aj keby si nechcel/. Tento
neblahy jav odstranis iba synchronnym navrhom, ked vsetky klopaky v navrhu
menia svoj stav v jeden moment 2. /ked k tomu dochadza je signal na vstupe
stabilny t.j. musi platit aj to ze oneskorenie signalu medzi 2 klopakmi
/rychlost suciastky je jeden zo zakladnych parametrov/ je mensie ako perioda
synchronnych hodin/
CPLD nemaju SRAM a teda maju o problem menej.
Zjednodusene sa da povedat ze navrhy, ktore idu na FPGA, pojdu urcite aj na
CPLD /pokial sa tam zmestia a suciastka to bude stihat/. Bohuzial opacne sa
to uz jednoznacne povedat neda.
Je to nadlho a mne sa uz nechce pisat a mozno nie som ani celkom presny ale
isto ma niekto opravi.
Milan
----- Original Message -----
From: "Marek Peca" <marek@tynska.cuni.cz>
To: "Eletrika" <hw-list@hw.cz>
Sent: Thursday, September 08, 2005 12:31 PM
Subject: FPGA (CPLD) a (a)synchronni navrh?
Zdravim,
predesilam, ze me poznani a osviceni ohledne logickych obvodu jeste
nedosahlo do vsech hlubin a taju, ktere lze kolem dvou cislic a
zpetne vazby vypestovat, neovladam uvahy o vsech druzich hazardu v
asynchronnich obvodech.
V prave rozvinute diskusi jsem nepochopil toto:
#> FPGA znamena obrovsky pocet malych buniek "rozsypanych" po velkej
#> ploche cipu. Su viac vhodne pre sekvencnu logiku, ale je takmer
#> absolutnou nevyhnutnostou synchronny navrh kvoli tazko
#> zvladnutelnym oneskoreniam medzi bunkami.
%> zistis ze to co ti povedzme chodi na CPLD na FPGA bude nestabilne
%> apod. FPGA realizuju log. funkciu na statickej pamati, co
%> vyzaduje prisne synchronny navrh...
v cem spociva problem navrhnout asynchronni obvod v FPGA?
a) udelat jde, ale zpozdeni budou tak velka, ze se to nevyplati?
b) je treba udelat jej poctive s osetrenim vsech hazardu, pak ale
bude fungovat bez problemu (a ocekavam, ze snad rychleji/lepe, nez
synchronni)?
c) z nejakeho, mne neznameho duvodu, udelat nejde?
Dekuji za odkryti jako clovek, ktery se rovnez snazi do problematiky
CPLD/FPGA proniknout.
Preji pekny den a zdravim, Marek P.
_______________________________________________
HW-list mailing list - sponsored by www.HW.cz
Hw-list@list.hw.cz
http://list.hw.cz/mailman/listinfo/hw-list
__________ Informacia od NOD32 1.1211 (20050907) __________
Tato sprava bola preverena antivirusovym systemom NOD32.
http://www.eset.sk
Další informace o konferenci Hw-list