Olen tehnyt tämän muutaman kerran itse.
Yleensä suunnittelutyökalut valitsevat kankaan toteutustavan ja DSP-siiven välillä synteesiasetusten perusteella.
Esimerkiksi Xilinx ISE: n synteesiprosessiasetuksissa, HDL-asetuksissa, on asetus "-use_dsp48", jonka vaihtoehdot ovat: Auto, AutoMax, Kyllä, Ei. Kuten voit kuvitella, tämä ohjaa kuinka kovaa työkalut yrittävät sijoittaa DSP-viipaleita. Minulla oli kerran ongelma, jossa kerroin kokonaisluvun 3: lla, mikä johti DSP-viipaleeseen - paitsi että päätin jo manuaalisesti jokaisesta sirun DSP-siivusta, joten syntetisaatio epäonnistui! Vaihdoin asetukseksi Ei, koska käytin jo kaikkia dsp-viipaleita.
Tämä on luultavasti hyvä nyrkkisääntö (olen juuri päättänyt): jos suunnittelusi kellotaajuus on alle 50 MHz, ja aiot käyttää todennäköisesti alle 50% sirun DSP-viipaleista, käytä sitten vain *, + ja - operaattoreita. tämä päättelee DSP-viipaleet ilman putkistorekistereitä. Tämä todella rajoittaa huippunopeutta. (Minulla ei ole aavistustakaan, mitä tapahtuu, kun käytät jakoa)
Jos näyttää kuitenkin siltä, että aiot suorittaa viipaleet lähempänä DSP-siiven maksiminopeutta (333 MHz Spartan 6 -nopeudella) arvosana) Jos aiot käyttää kaikkia viipaleita, sinun on pääteltävä ne manuaalisesti.
Tässä tapauksessa sinulla on kaksi vaihtoehtoa.
Vaihtoehto 1: käytä raakaa manuaalisesti DSP-ilmentymämalli. Vaihtoehto 2: käytä Xilinx Core Generatorin IP-lohkoa. (Käytän tätä vaihtoehtoa. Samalla opit kaiken ytimen genistä, mikä auttaa tulevaisuudessa)
Lue DSP: n pari ensimmäistä sivua, ennen kuin teet jommankumman näistä. viipaleiden käyttöopas. Spartan 6: n (DSP48A1) tapauksessa se olisi Xilinx-dokumentti UG389: http://www.xilinx.com/support/documentation/user_guides/ug389.pdf
Harkitse ensin Core Generator -vaihtoehtoa. Luon yleensä testausprojektin Core Generator -ohjelmassa osalle, jonka kanssa työskentelen, ja luon minkä tahansa määrän IP-lohkoja vain järjestelmän oppimiseksi. Kun olen valmis lisäämään yhden suunnitteluuni ISE: ssä, napsautan hiiren kakkospainikkeella Suunnitteluhierarkiaa, napsautan uutta lähdettä ja valitsen "IP (CORE Generator & Architecture Wizard)", jotta voin muokata ja uudistaa lohkoa suoraan minun projektistani.
Katsokaa Core gen -ohjelmassa erilaisia IP-lohkoja, joista voit valita - niitä on muutama tusina, joista suurin osa on melko hienoja.
Kertoja Ydin on se, mitä sinun pitäisi tarkastella ensin. Tarkista jokainen sivu ja napsauta taulukkopainiketta. Tärkeitä osia ovat kokonaisluvun bittileveydet, putkilinjan vaiheet (latenssi) ja mahdolliset ohjaussignaalit. Tämä tuottaa yksinkertaisimman mahdollisen eston poistamalla kaikki tarpeettomat portit.
Kun rakensin viime vuonna 5: 3-kertaista IIR-suodatinta, jouduin käyttämään manuaalista instantiation-mallia, koska olin rakennetaan erittäin mukautettu toteutus, jossa 2 DSP-siivua ajoitetaan 4x nopeammin kuin näytteenottotaajuus. Se oli tuskaa.