Miksi se ei synthesizable?

T

trurl

Guest
Hei, Voiko joku kertoa miksi seuraava koodi ei voi syntetisoida? Xilinx kertoo signaalin ACC ei voi syntetisoida.
Code:
 kirjasto IEEE; käyttää IEEE.STD_LOGIC_1164.ALL, käytä IEEE.STD_LOGIC_ARITH.ALL; kokonaisuus Mac on Port (IN1: in allekirjoittanut (11 downto 0); IN2: in allekirjoittanut (11 downto 0), CLK: in std_logic; RST: in std_logic; ACC: out allekirjoitettu (23 downto 0)); loppuun Mac, arkkitehtuuri käyttäytymisen Mac on signaali prod, Reg: allekirjoittanut (23 downto 0), alkaa prosessi (CLK, RST, IN1, IN2) muuttuvan summa: allekirjoitettu (23 downto 0); alkaa tuot
 
Kuvaile tyypin Xilinx laitetta käytetään. Seuraavan lausuman:
Code:
 ... jos (rst'event ja RST = '0 ') sitten ...
voi olla ongelma. Edge laukaisi reset on melko ei implementet useimmissa Xilinx laitteita. Sinun suunnittelu vaatii kaksi, reuna laukaisee panokset rekisteriin (RST ja CLK). Kokeile async reset. bis
 
Bis, kiitos. Koska olen aloittelija, voisitko selittää, mitä on "async reset" on se jotain tällaista ... if (RST = '0 ') sitten ...
 
Olen kokeillut sitä, se ei toimi minun kokeilla ainakin :-(
 
muuttaa kaikki (allekirjoittanut) signaaleja, jotta (std_logic ja std_logic_vector) signaaleja .. ja käyttää IEEE allekirjoitettu paketti tiedoston alkuun .. Yritä koota ja syöttää minua baq mitä u saada ..
 
Mielestäni bis_ on oikea. Useimmat flops, kuten Xilinx FPGA floppaa, ei ole reuna-laukaisi reset-tulo. Vaihdoin Edge laukaisema Reset: [color = blue] jos (rst'event ja RST = '0 ') sitten [/color] tavalliselle tasolle herkkä (asynkroninen) Reset: [color = blue] if (RST = '0 ') sitten [/color] ja nyt se syntetisoi vuonna ISE 9.1i.
 
Voit echo47: Olen jo kokeillut sitä, se syntetisoi, mutta tällä saan väärässä aaltomuodot minun suunnittelu. Thanks anyway.
 
[Quote = trurl] Hei, Voiko joku kertoa miksi seuraava koodi ei voi syntetisoida? Xilinx kertoo signaalin ACC ei voi syntetisoida.
Code:
 kirjasto IEEE; käyttää IEEE.STD_LOGIC_1164.ALL, käytä IEEE.STD_LOGIC_ARITH.ALL; kokonaisuus Mac on Port (IN1: in allekirjoittanut (11 downto 0); IN2: in allekirjoittanut (11 downto 0), CLK: in std_logic; RST: in std_logic; ACC: out allekirjoitettu (23 downto 0)); loppuun Mac, arkkitehtuuri käyttäytymisen Mac on signaali prod, Reg: allekirjoittanut (23 downto 0), alkaa prosessi (CLK, RST, IN1, IN2) muuttuvan summa: allekirjoitettu (23 downto 0); alkaa tuot
 
tässä on korjattu koodi!
Code:
 kirjasto IEEE; käyttää IEEE.STD_LOGIC_1164.ALL, käytä IEEE.STD_LOGIC_ARITH.ALL; kokonaisuus Mac on Port (IN1: in allekirjoittanut (11 downto 0); IN2: in allekirjoittanut (11 downto 0), CLK: in std_logic; RST: in std_logic; ACC: out allekirjoitettu (23 downto 0)); loppuun Mac, arkkitehtuuri käyttäytymisen Mac on signaali prod, Reg: allekirjoittanut (23 downto 0); alkaa tuot
 
[Quote = nand_gates] tässä on korjattu koodi!
Code:
 kirjasto IEEE; käyttää IEEE.STD_LOGIC_1164.ALL, käytä IEEE.STD_LOGIC_ARITH.ALL; kokonaisuus Mac on Port (IN1: in allekirjoittanut (11 downto 0); IN2: in allekirjoittanut (11 downto 0), CLK: in std_logic; RST: in std_logic; ACC: out allekirjoitettu (23 downto 0)); loppuun Mac, arkkitehtuuri käyttäytymisen Mac on signaali prod, Reg: allekirjoittanut (23 downto 0); alkaa tuot
 
Voit omara007: Kiitos. Lisäsin IN1 ja IN2 herkkyydestä luetteloon, koska Xilinx oli varoittamalla niistä puuttuu luettelosta.
 
[Quote = trurl] To omara007: Kiitos. Lisäsin IN1 ja IN2 herkkyydestä luetteloon, koska Xilinx oli varoittamalla niistä puuttuu luettelosta. [/Quote] sivuuttaa nämä varoitukset .. Yritä poistaa näitä panoksia ..
 
jos (rst'event ja RST = '0 ') sitten ja elsif (clk'event ja CLK = '0') sitten ei voi käyttää samassa prosessissa!
 
Yritä koodi nand_gates on lähetetty ja sivuuttaa mitään varoitusta saat .. sitten kertovat aalto tulokset
 
Mielestäni Xilinx allways syntetisoimaan xx lausuma "Jos (xx'event ja XX = '0 / 1 ')" kuin CLK pin FlipFlop, on vain yksi CLK PIN FF solussa. Joten ei pitäisi olla kaksi Tällaiset lausunnot yhden prosessin. Yksi prosessi viedään kello verkkotunnuksen.
 
Voit omara007: olen yrittänyt koodia, jotka mainitsitte. Aallot ovat väärässä, mac laite ei toimi kunnolla. Syy voin käyttää (rst'event ja RST = '0 ') ilmoitus, että minun täytyy tuottaa automaattisesti nollaa pulssi. Koska minun koodi ei synthesizable, voidaan voisit neuvoa miten luoda lyhyt RST pulssi välillä 2 CLK pulssien ajoittain joitakin määrä CLK pulsseja. Kiitos.
 
Kokeile suunnittelemalla yksinkertainen laskuri (CNT) .. Kun tämä laskuri laskee 2 kellojaksoa, puolustaa tietty signaalin, kutsukaamme sitä (xyz) .. Voit käyttää combinational "kun" lausunto määrittää arvo '1 '(xyz), kun (CNT) laskuri on sama (2) .. Sen jälkeen voit käyttää tätä signaalia "jos" lausunto pakottaa kaikki muut signaalit suunnittelussa on nolla .. mutta älä kutsu sitä nollaa ..
 

Welcome to EDABoard.com

Sponsor

Back
Top