Novy(?) rychly binarni citac pro pomala FPGA (bez carry, jakoActel) -- prosba o kritiku

Marek Peca marek na duch.cz
Středa Září 12 12:06:05 CEST 2012


Ahoj Weku,

> Az po tychto obrazkoch som pochopil, o co ide. Predovsetkym, ako 
> nedotknuty FPGA som nevedel (aj ked tusil), co je vstup E na klopaku; no 
> a ako nebojaci sa asynchronnej logiky mi nedoslo hned, ze je to vlastne 
> obycajny ripple counter akurat so "zasynchronizovanym ripple" (mozete to 
> nazvat aj pipelineovany ripple, ak chcete ;-) ) No a kedze Vam asi to 
> FPGA nedovoli zaroutovat vystup Q na CLK nasledujuceho klopaku, tak ste 
> to nahradili tym udelatorom s ANDom a tou vlastnostou E na klopaku.

pochopil's to presne spravne. Je to synchronni, pipelinovana (bohuzel, 
ale o to tak nejak jde) verze obycejne kaskady delicek dvema. To jsem se 
snazil tak trochu naznacit i nazvoslovim.

> Ak by ste sa nehanbili vyplytvat ((N-1)^2)/2 klopakov (mozno aj trocha 
> menej, nemam to celkom domyslene, ale ten stvorec resp. pravouhly 
> trojuholnik tam bohuzial je), tak sa z toho da urobit aj normalny citac 
> "pipelineovanim" jednotlivych vystupov Qn o n-1 krokov. Aj ked to je z 
> hladiska poctu tranzistorov perverzne, viem si predstavit, ze v FPGA by 
> to mohlo byt pre mierne velke N aj vyhodnejsie, nez ten dekoder (teda ak 
> je ho v danej aplikacii treba).

Ano. Popravde, muj pocatecni navrh prave pocital s bankou zpozdovacek 
pulsu, ktere jsem pak seskrtal. Pokud by byla zpozdeni trivialni, stacily 
by posuvne registry. No ale to by treba 30bit citac sezral pres 500 
dlazdicek, 64bit citac 2000 dlazdicek a to uz je fakt ulet. Ve skutecnosti 
o neco min, nebot staci zpozdovat o ((n-k) modulo 2^k) taktu, ale spotreba 
plochy je porad O(n^2).

*Teoreticky* by to slo obejit na zaklade toho, ze "zpozdit osamoceny puls 
o M taktu" neni nutne resit informacne plnohodnotnym posuvnym registrem, 
ale staci na to citac o log(n) bitech. Ten by mel misto n bitu uz jen 
log(n) bitu a mohl by tedy byt rychlejsi, i kdyby byl postaveny na 
klasicke architekture.

Delal jsem nejake vyhaluzene odhady na papire a porad mi to vychazelo na 
neunosny spotreby pro 64bit, tak jsem to nakonec zahodil a rozhodl se 
predstavit jen tu verzi s prevodni funkci.

Nicmene, nebranim se zadnym zlepsenim, ma-li kdokoli chut si hrat, rad 
pridelim prava k zapisu na OpenCores projekt :-)


Zdravi Marek


Další informace o konferenci Hw-list