vähentää Ise täytäntöönpanoa aika

K

kilpi

Guest
Hei, olen kohtaamme ongelma: ise täytäntöönpanoa virtaus kuluttaa 5 tuntia tai niin.
Tämä johtaa siihen, että effiency on niin alhainen ASIC prototyyppien meidän hankkeesta.
Jolla on kokemusta tämän ongelman?Ehkä voit antaa minulle advive tai
tarjota joitakin materiaaleja.kiitos!
 
käytä vahvoja tietokone ja paljon muistia.
käyttää linux ei ikkunat.

 
Sinulla on joko erittäin suurta suunnittelua tai tiukka paikka ja reitti rajoitteita, jos ei molempia.Mitä isompi suunnittelu-ja / tai tiukempi oma paikka ja reitti ja ajoitus talousarvioon enää se aikoo ryhtyä, jotta työkalu toimisi.

E

 
Useita vuosia sitten minulla oli samanlainen ongelma, jolla on suuri Virtex-II design.Ise polkumyynnillä kaikki logiikka osaksi keskellä sirulle ja yritti reitti sekoitetuille sekasotku.The Aseta ja reititin kamppailivat kaksi tai kolme tuntia yritämme saavuttaa ajoitus sulkeminen.Yleensä se ei onnistunut.

Arvostan suuresti parantaneet tilannetta soveltamalla LOC alue rajoituksia kukin oman HDL moduulit.Olen myös järjestänyt alueilla joten interconnecting signaalit olivat enimmäkseen lyhyitä.Muutama signaaleja vielä hypyn sirulle, joten olen lisännyt putkijohdoissa rekisteröidä niitä jakaa pitkällä lisääminen viivytystä.Ise rakennettu hankkeen noin 45 minuuttia.

Paikka ja reitti on muistia intensiivinen.Olla varma, tietokoneessa on nopeaa RAM-muistia ja riittävä RAM välttää vaihdetaan levylle.

 
echo47 wrote:

Arvostan suuresti parantaneet tilannetta soveltamalla LOC alue rajoituksia kukin oman HDL moduulit.
Olen myös järjestänyt alueilla joten interconnecting signaalit olivat enimmäkseen lyhyitä.
 
Tässä on esimerkki, joka voi auttaa selvittämään oma kuvaus.

Let's sanoa FPGA ei jonkinlaista tietojen käsittelyä käyttäen neljää HDL modules nimetty A, B, C ja D. tiedonsiirtojen Syöttöparametrin nastojen kautta A-moduuli, sitten kautta B-moduuli, sitten stä C, sitten D, ja lopulta ulos tuotoksen nastat.Jos minulla ei sovelleta mitään alaa rajoitteet, Ise aikoo upottaa kaikki neljä modules osaksi keskellä sirulle ja yrittää reitittää ne.Joskus, joka toimii hyvin, mutta muina aikoina ruuhka on liian vaikea.Välttää ruuhka, olen rajoittaa A-moduuli osaksi vasemmassa yläkulmassa on siru, B-moduuli osaksi oikeassa yläkulmassa, C-moduuli osaksi oikeassa alakulmassa, ja D-moduuli osaksi alemman vasemmassa alakulmassa.Olen myös yrittää asettaa panos nastat lähellä A-moduuli, ja tuotoksen nastat lähellä D-moduuli, välttää pitkiä reittejä koko sirun I / O-tyynyjä.Nyt kun Ise reitit sirulle, siellä
on paljon vähemmän routing ruuhkia, ja puhtaampia lyhyempi välisillä reiteillä moduulit.

A putkijohdoissa rekisteriin on tavallinen D-flop sijoitettu keskelle kombinatorisista logiikkaa, tai keskellä pitkä reitti.Se pohjimmiltaan jakaa lisääminen viivästyy puoli.Mitä lyhyempi viivästyksiä voit lisätä kellon taajuus.Kuitenkin rekisteri otetaan käyttöön uusi kello sykli latenssiaika, joten sinun täytyy muokata järjestelmän ajoitus sen mukaisesti.

Se kestää useita nanoseconds varten reitti ylittää koko leveyden suuri FPGA.Tämä voi olla liian hitaita haluamasi kellon verokantaa.Laittamalla putken rekisteröityäkseen keskellä reitin, viive on leikattu puoli.

Tämä on hieman edistynyt kamaa.Se auttaa on koettu FPGA suunnittelun ja ohjelmistoinstrumenteilla.

Voi olla muitakin tilanteita, jotka aiheuttavat kauan paikka & reitti kertaa, mutta yhden Olen kuvattu tässä on ongelmana pidän eniten.

 
Tunnen ihmisiä, jotka kulkevat ise lisää sitten päivässä - 5 tuntia on hienoa!

 
echo47 wrote:

Tässä on esimerkki, joka voi auttaa selvittämään oma kuvaus.Let's sanoa FPGA ei jonkinlaista tietojen käsittelyä käyttäen neljää HDL modules nimetty A, B, C ja D. tiedonsiirtojen Syöttöparametrin nastojen kautta A-moduuli, sitten kautta B-moduuli, sitten stä C, sitten D, ja lopulta ulos tuotoksen nastat.
Jos minulla ei sovelleta mitään alaa rajoitteet, Ise aikoo upottaa kaikki neljä modules osaksi keskellä sirulle ja yrittää reitittää ne.
Joskus, joka toimii hyvin, mutta muina aikoina ruuhka on liian vaikea.
Välttää ruuhka, olen rajoittaa A-moduuli osaksi vasemmassa yläkulmassa on siru, B-moduuli osaksi oikeassa yläkulmassa, C-moduuli osaksi oikeassa alakulmassa, ja D-moduuli osaksi alemman vasemmassa alakulmassa.
Olen myös yrittää asettaa panos nastat lähellä A-moduuli, ja tuotoksen nastat lähellä D-moduuli, välttää pitkiä reittejä koko sirun I / O-tyynyjä.
Nyt kun Ise reitit sirulle, siellä on paljon vähemmän routing ruuhkia, ja puhtaampia lyhyempi välisillä reiteillä moduulit.
 
Muista, että tavoite synkronista logiikkaa ajoitus on vähentää kaikkien floppi-to-flop polku viivästyksiä, kunnes ne ovat lyhyempiä kuin kellon aikana.Tyypillinen nykyaikainen nopeasti FPGA on osa-nanosecond portilla ja floppi nopeus, mutta reitti matkustavat kaikkialla siru voi helposti viisi nanoseconds.Tämä 5ns reitti olisi rajoittaa kello korko alle 200 MHz, vaikka flops ja portit olivat äärettömän nopeasti.Lisäämällä D-flop osaksi keskellä reittiä, flop-to-flop viivästyminen tulee 2.5ns (plus pieni floppi viiveellä), ja 200 MHz on helppoa.Lyhyemmät reitit mahdollistaa jopa korkeampi kello hinnat.Tietenkin eivät laita liikaa kombinatorisista logiikan välillä flops, koska se rajoittaa myös teidän kello verokantaa.Kun minun on todella nopea kello korko,
esitin vain yhden tason kombinatorisista logiikan välillä flops.Se näyttää tekevän synteesi aikavälillä sujuvammin ja nopeammin liikaa.

Yksi haittapuoli lisäämällä ylimääräinen floppi on, että sinun on nyt otettava huomioon extra kello sykli latenssiaika oman järjestelmän ajoituksen suunnittelu.Juuri Liukuhihnakäsittelyä suunnittelu on kyse, ja joskus se ei ole helppoa.

Jos kauan Ise kulkuaika ilmenee vain aikana HDL keräämään, sitten minun rajoitteena pipelining ehdotuksia ei auta sinua.Omat hankkeet yleensä koota melko nopeasti, ja sitten viedä pitkän aikaa, paikka ja reitti.

En ole huomannut mitään erityistä HDL syntaksia merkittävästi auttaa tai vahingoittaa koota aikaa (lukuun ottamatta joitakin outoja XST kysymys, johon silmukoita on Verilog alkuperäinen lausunto).Tärkeä tavoite on suunnitella tehokkaita laitteistoja, ja sitten kuvata täsmällisesti HDL.Se ei yleensä ole asia, joka HDL syntaksia käytät, niin kauan kuin se ei vääristä alkuperäinen tehokas suunnittelu.Jos käytät Xilinx XST, voit nähdä monia pieniä esimerkkejä kohdassa "XST HDL koodausjärjestelmän Techniques" luku, XST Käyttöopas.

Suuri jaettu RAM kestää kauan syntetisoimiseksi ja reittiä, koska se on toteutettava suuri määrä yhteenliitettyjen Luts ja flops.A Block RAM on yksi yksinkertainen esine, joka synthesizes ja reitit paljon nopeammin.

 
Ei, vaan FAE rintanappi voisi olla kätevä.FAES todennäköisesti saada erityistä kehittämistyökalut, lähdekoodia, tuote pre-release info, ja parempaa tukea ihmisiä.Vanha pienet asiakkaat pitävät minua saamaan WebCase.

 
Kiitos "echo47" ... Myös Satun, että lisääminen Block Ram meidän malli ei aina auttaa vähentämään portilla tasolla (Distr RAM) resursseja ... olen oppinut sen kokemuksesta, että jossain määrin käytön Bram auttaa ylöspäin tapauksessa ei kuitenkaan aina, ehkä se vain auttaa karsimaan paljon yhteenvetokertomuksen ja toteuttamiseen aikaa ... Morever kirjoittaminen \ Reading Bram kestää enemmän kuin yhden CLK (Singl portti esim.) kuin olla tekemättä samaa yli Distributed RAM, joissa toiminta on hetkellinen .Mitä kinda etu luulet Bram ei tule antaa meille kun timming on niin kriittinen \ tiukka? ...

 
Vaikuttaa siltä, että jotain meni pieleen aikana Block RAM täytäntöönpanoa.Tarkista yhteenvetokertomuksen, onko Block RAM tai Distributed RAM oli todella syntesoiduista.

A Block RAM voi ajaa noin 200 MHz-500 MHz, riippuen FPGA tyyppi.Se vaatii vain yhden vuorokauden ajan, ellei otat vapaaehtoinen lähtö rekisteri, joka
on toimitettu noin FPGA.Se ei saisi kuluttaa kaikki FPGA varat lukuun ottamatta Block RAM itse.

Yksi luotettava menetelmä saattavansa Block RAM omalle suunnittelu on instantiate yksi RAMB16_ * kirjaston primitiivinen osaksi HDL.Olen kuitenkin mieluummin käyttää HDL rekisteri array että päättelee Ryhmäpoikkeusasetuksen RAM-muistia, mutta se edellyttää huolellista koodausta, koska se on helppo kirjoittaa HDL hieman väärin,
mikä aiheuttaa XST päätellä Distributed RAM sijaan Block RAM.The XST Käyttöopas kuvataan asianmukaiset syntaksia luvussa "HDL koodausjärjestelmän Techniques".Tai kokeile käyttäen HDL-koodi mallin mukaisia Project Navigator (en ole kokeillut niitä).Myös uudempia versioita XST ovat älykkäämpiä noin inferring Block RAM kuin vanhemmat versiot.

Jos suunnittelu edellyttää lukuisia hyvin pieniä RAM (esim. 16 tai 32 sanat), sitten Distributed RAM voi olla parempi vaihtoehto kuin Block RAM.

 
Hei ystävä,
en tiedä, miten te voidaan kuvata Bram, mutta miten opin on CORE IP generaattorista Xilinx, i käyttää määrittää RAM kuin yhden tai kaksi satama sekä Vain luku-tai luku-ja
kirjoitusoikeudet tilassa , tietojen leveys ja syvyys jne. .. Se tuottaa minulle Rakennetoimet VHDL-koodin, jonka aion lisätä osana tärkeimmistä moduuli.Joten inorder kirjoittaa tietoa siitä, että minun on ensin valita wr \ rd = "0" ja sitten seuraavaan kello aion paikka tietojen ja addr.Jos haluan lukea, jälleen Minun täytyy valita wr \ rd = "1" ja sitten addr.Vain seuraavan kasvaa CLK, tiedot tulee ulos Bram.Siis huomattavasti vie aikaa .... juuri tarkoitti, että ... Toivottavasti ymmärrätte tapauksessa.

 
Kyllä, Core luontitoiminto on toista menetelmää.

Block RAM on synkroninen, joten se vaatii kello pulssin ladata osoitteesi ja lukea / kirjoittaa, mutta että kello voi olla hyvin nopeaa.Jos tarvitset eriaikaisesti RAM ilman lukea kelloa, sinun on käytettävä Distributed RAM-muistia.Suuria Distributed RAM on merkittävä lisääminen viivytyksettä, tavallisesti johtaa hitaampaa yleistä suorituskykyä kuin Block RAM-muistia.Pienet Distributed RAM ovat kohtuullisen nopeasti kuitenkin.Se on järjestelmän suunnittelu vaihtokauppa päätöksen.

 
Yksi haittapuoli lisäämällä ylimääräinen floppi on, että sinun on nyt otettava huomioon extra kello sykli latenssiaika oman järjestelmän ajoituksen suunnittelu.Juuri Liukuhihnakäsittelyä suunnittelu on kyse, ja joskus se ei ole helppoa.

Jos kauan Ise kulkuaika ilmenee vain aikana HDL keräämään, sitten minun rajoitteena pipelining ehdotuksia ei auta sinua.Omat hankkeet yleensä koota melko nopeasti, ja sitten viedä pitkän aikaa, paikka ja reitti.

 
Pikemminkin oppsoite infaact minulle !.... Oma syntetisoimiseksi aika kestää paljon kauemmin kuin yhden voisi kärsivällisesti odottaa .... Mutta minun reitityslaitteistoa ja saattamisesta ajan nopeuttaa kuin turbo ... Älä ymmärrä, jos se johtuu siitä, että tapa Ohjelmat ja silmukoiminen joka voi aiheuttaa paljon pitempään päätellä tarvittavat resurssit ....

 

Welcome to EDABoard.com

Sponsor

Back
Top