Spartan3 blockRAM kerdes
Andras Tantos
andras at tantosonline.com
Mon Feb 13 16:58:49 CET 2006
Hali!
Ez tevedes. Nem *kell* a Xilinx-specifikus primitivet hasznalni, ha
block-RAM-ot akarsz. Ugyan Verilog-ban nem csinaltam ilyet, de VHDL-ben
igen. Nagyon oda kell figyelni, hogy hogy irod le a memoriat, de ha a
forditonak tetszo viselkedesi leirast adod meg, akkor felismeri, hogy mit
akarsz, es hasznalni fogja a block-RAM-ot hozza. Az igaz, viszont, hogy nem
lehet minden tulajdonsagat kihasznalni a block-RAM-nak viselkedesi
leirassal. Amibe bele buktam, az a dual-port, aszinkron mukodes volt. Azaz
az, hogy a ket port kulon orajelrol jarjon. Ez egyebkent - mint kesobb
kiderult - dokumentalva is van az XST leirasaban.
Ha jol ertem, akkor a te memoriad egyebkent ROM es nem RAM. Hogy pontosan
miert nem rakta bele block RAM-ba, ezt nem tudom megmondani, illetve meg azt
sem, hogy valoban nem rakta-e bele. Ehhez latni kellene a MAP/PAR kimenetet.
Azonban van egy problema: ezek a 'nagy' eroforrasok, mint a block-RAM, vagy
a szorzok, vagy a PLL/DLL-ek mindenkeppen eszkoz-specifikusak lesznek. Az
altera-ban levo es xilinx-ban levo kicsit biztos el fog terni egymastol,
tehat az a kod, amelyik ezeket hasznalja nagy valoszinuseggel csak az
egyikben fog jol mukodni. Orulhetsz, ha a masik egyaltalan felismeri, hogy
mit szeretnel, es korulepiti az eroforrast a szukseges 'emulacios'
elemekkel. Egy gyakorlati pelda: az Altera block-RAM eleg sokaig aszinkron
olvasasu volt (vagy lehetett), mig a Xilinx mindig is kizarolag szinkron
olvasast tamogatott. Persze meg lehet csinalni, hogy ezeket az
architekturalis kulonbsegeket elrejted egy fuggveny/alaktresz konyvtarba
csakugy, mint SW iraskor. Ez nagyszeruen mukodik is, egeszen addig, amig nem
akarod a chip-et a vegletekig kihasznalni, amikoris az architekturalis
kulonbsegek elkezdenek az egesz tervre (a valasztott algoritmusokra,
tervezesi megoldasokra) hatassal lenni. Dehat ez se mas, mint SW eseten.
Udv,
Tantos Andras
> Hali,
>
> Szal ha RAM-ot akarok csinalni es a chip-ben levo blockRAM-ot szeretnem
> felhasznalni, akkor nekem valahogy Xilinx specifikusan kell ezt leirnom?
> Nem nagyon tetszik ez a felallas, mert nem "platform fuggetlen". Miert nem
> tudja a fordito eldonteni magatol, hogy: hoho, ez valami RAM feleseg, van
> szabad blockRAM, akkor ezzel valositom meg.
> Pl. ha jol tudom szorzonal igy van. Van ennek a Spartan3 s200 kutyunek 12
> db. 18x18-as szorzoja es amig ezek nincsenek felhasznalva, addig a fordito
> ezzel valositja meg a szorzasokat, anelkul, hogy eszkoz specifikusan
> hivatkoznank a szorzokra. (Nem probaltam, csak igy gondolom, mintha lattam
> volna forditasi opciokat, amik erre utalnak)
>
> udv.
> hoyuka
>
> BEREGNYEI Balazs said:
>
>>
>>> always @(posedge clk) begin
>>> if (!oe)
>>> dataArray[addr]=iData;
>>> end
>>
>> Ennek itt biztosan nem block RAM lesz az eredmenye, hiszen azt nem kell
>> viselkedesi leirassal megkonstrualnod. A block RAM egy letezo eszkoz a
>> chip-ben, nem te hatarozod meg a mukodeset (hogy pl. mi tortenjen clk
>> felfuto elre), mert az adott, "be van drotozva".
>>
>> BB
>>
>> -----------------------------------
>> Szponzorunk: http://tonerbolt.hu/
>>
>
>
> --
> http://hoyuka.myip.hu
> -------------------------------------
> C2 MAIL: A nagy levelez-Õ. http://mail.c2.hu
>
> -----------------------------------
> Szponzorunk: http://tonerbolt.hu/
>
More information about the Elektro
mailing list