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