adatatvitel syncSRAM es regiszter kozott

Zoltán Radó elektro1.zrado at axelero.hu
Sat Feb 18 23:55:39 CET 2006


A pipelineos megoldás sem olyan bonyolult, ha megfelelõ a
gondolkodásmód.

Sokszor mondtam, mert nagyon lényeges:

A VHDL, Verilog, stb tervezés során nem szabad szekvenciális
végrehajtásban gondolkodni. EL KELL felejteni a számítógép
programozási gondolkodást!

A probléma igazából ott van, hogy elöbb utóbb rákényszerülsz arra,
hogy tisztán szinkron logikában gondolkozz. Megcsinálhatod sync
RAM-mal. De ez nem segít a gondolkodásmód elsajátításában. Amíg nem
sajátítod el, addig nagyon sok akadállyal fogsz találkozni. Ez
elsõsorban a maximális frekvenciában mutatkozik meg, illetve
"bizonytalan" mûködésben.

Az sem véletlen, hogy a proci pipelineok általában nem 2, hanem több
stage-bõl állnak. Ez azért van, hogy az egyes stage-kben végzett mûveleteket
minnél kissebb kombinációs logikával lehessen megvalósítani, ezzel
csökkentve a periódusidõt, azaz növelve az órajelet. (És ugye látszólag
1 órajel alatt hajt végre egy utasítást) (Tudom, az AVR 2 stagebõl
áll. A Harvard architektúra ezt lehetõvé teszi.)

Tudom, hogy hajtja az embert a kihívás, hogy procit írjon, mert én is
így voltam ezzel. Aztán sok kinlódás és szívás után elmúlt.
Visszatekintve tudom, hogy egyszerüen az alapokkal volt gondom. Nem
értettem igazából a processzorok mûködését és különösebb tervezés és
gondolkodás nélkül akartam kódolni.

Nem mondom, hogy ne csináld, mert tanul vele az ember. Ha mást nem,
kódolni.

Hogy konkrétabban "segítsek" is, és ne csak "papoljak":

Jól látod a helyzetet. Mind a két út járható. Leírtad azt is, hogy
melyiknek mi az elõnye és a hátránya. Kezdõként az elsõ a járhatóbb
út. A másodikkal többet tanulsz. (De ez utóbbi nem megy úgy, hogy
"csak nekiállok azt' kódolok).






> Tehat itt egy felfuto el alatt van egy fetch es egy egyszerubb execution,
> ha az utasitas kodban felteteles ugras van, akkor sincs semmifele pipeline
> problema (mert nincs is pipeline :) ), felteteltol fuggoen IP-re IP+1-et
> kell tenni, vagy az uj cimet, ami direktben jon az utasitaskodbol.

> Ha szinkron RAM-al van megcsinalva, akkor a fetch-t es az execution-t nem
> lehet megcsinalni 1 orajel alatt, kiveve, ha pipeline-olva van. Vegulis,
> ha tenyleg 2x-ese lehet egy szinkron RAM orajele mint egy aszinkronnak,
> akkor ketszeres sebesseget lehet elerni ugrasmentes progikodokban....
> Na de egy ilyen pipeline-os dolog gondolom bonyolultabb.....

> udv.
> hoyuka

> Zoltán Radó said:
>> Ez csak abban az esetben lenne így, ha az összes címvezetéken
>> egyszerre változna a jel. De számolnod kell a jelterjedési idõkkel
>> is. A legrosszabb jelkésés + a memória elérése határozza meg a
>> periódusidõt az async-nél. Ha a címvezetékeken van egy regiszter, akkor
>> csak a
>> memóriaelérés határozza meg a periódusidõt. Ez a sync ram.
>>
>> A jelkésés lazán lehet 5-10 ns is, ami kb. azonos a block ram-ok
>> sebességével. Ez már csak fele frekit jelent async esetben...
>>
>> Zoli
>>
>>
>>
>>
>>
>>> Koszi a megerositest.
>>> Egyebkent miert a szinkron RAM block-okat eroltetik ezekben az
>>> FPGA-kban?
>>> Ugy erzem, hogy aszinkron RAM-okkal kevesebb ugyeskedessel el lehet erni
>>> ugyanazt a sebesseget, egyszerubb pipeline-olas, stb....





More information about the Elektro mailing list