Bloķēt RAM XILINX matricas

X

xtcx

Guest
Viens no maniem projektiem, izmantojot FPGA, man ir ieguvuši vairāk nekā 98% okupācijas loģiku vārtiem. Līnijas un līnijas program.I nekad nav izmantots bloka RAM. Manā programmā Man ir daudz masīvi. Tāpēc es mēģināju drukātiem aunu un jākonfigurē tā, kā "read only". Tāpēc man bija iespēja saglabāt dažus datus's ROM kaut adr atrašanās vietu, izmantojot atmiņu Core ģeneratoru instrumenti redaktoru nodrošināti ar XILINX ISE 8.2i. Man bija iespēja nolasīt datus programmā ļoti labi tagad, bet te rodas loģika vārti ierobežojumi tagad ir tikai 97%. Es noņemt aptuveni 7 bloki no 8-bitu datas ar dziļumu 16.My programmai ir aptuveni 1800 lines.Perhaps to smashed mana expectations.No impovement.Later kad es samazināt apmēram 200 rindas dažu IF-Else paziņojumus šajā programmā, attiecība samazinās līdz apmēram 35% Amazing vēl. surprising.So kāpēc likvidējot masīvi, izmantojot RAM nebūs samazināt ierobežojumus attiecība ?.... Mana XILINX versija ir 7.1i (arī mēģināju uz 8.2i) FPGA - SPARTAN 3 (400K). Es mēdzu Block RAM IPCORE program.Please sniegt kādu palīdzību šeit: cry :.... iemesls, kādēļ bloks ram nav samazināt savu vārtu iepakojuma izmērs ?.:?:
 
Vai esat pārliecināts, ka Grupālā RAM faktiski ir sythesized? Vai tas parādās, bet sintēzes (vai kopsavilkuma pārskatā)?
 
Viena no iespējām ir tāda, ka Jums varētu būt izmantoti Distributed RAM Jūsu bloki. ISE mērķi izplatīt RAM atkarībā no tā, kā jūs kods. Es domāju, ka Spartan-3 var uzglabāt 16-bitu datu vienā LUT. Tātad, jūsu 7 bloki no 8-bitu datu, iespējams, ir patērēti tikai 8 LUT. Tātad, kad jūs mērķa Brams, jums nav ietaupīt daudz
 
Manā opnion, rezultāts ir ok. pirmkārt, pārāk daudz, ja cits patērē daudz šķēles resursu, otrkārt, LUT var konfigurēt kā izplatīt ram, un šo pārveidi ir efektīva, jūsu 8x16 RAM var implimented kā LUT. un 7 masīvs tikai patērēt vairākas LUT, tāpēc attiecības nemainās daudz
 
Jums vajadzētu rakstīt ABL kodu šā sākotnējā $ readmemb ("blk_mem_ram.mif", mem, 8'h00, 8'hff), vienmēr @ (posedge CLK) sākas tad, ja (mem_rd_en) sāk mem_data_out
 
Paldies par Jūsu atbildēm ... Vispirms man jāsaka, ka es izmantoti, XILINX IP galveno ģeneratoru rīks, kas nāca ar 8.2i ISE iepakojuma. Es izvēlētos Block RAM IP un izvēlējās lasīt-rakstīt režīmā un ieraksta platuma un dziļuma, un tad rodas ka ram materiāliem. Pēc tam es pievieno šo failu struktūras daļu, kā detaļu no maniem top-module.From savu programmu es adr un datus, un datus, kas ostām XILINX radīto IP glabāt vai nolasīt datus. Man nav izmantot jebkuru sintaksi savā programmā Block-ram. Tāpēc es domāju, man bija neizmanto Distributed RAM for sure. Arī programma darbojas kā parasti. Bet ideālā gadījumā pārvietojas masīva dati RAM nedarīja jebkādu palīdzību ... Bet daži no maniem draugiem, viņi ir samazinājušas savu ierobežojumi attiecība uz dažām labāk izmantojot grupveida ram to project.My negatīvie ir tas, ka es pārāk daudz paust viedokli aptuveni 40 līdz 50 karogi, lai pārbaudītu un daudzi IF-VĒL stats. Tas varēja būt prob?. Arī izmantojot iepakojuma vai funkcijas var palīdzēt samazināt vārti izmantošanu?. Lūdzu, palīdziet
 

Welcome to EDABoard.com

Sponsor

Back
Top