Защо не synthesizable?

T

trurl

Guest
Здравейте, Може ли някой да каже защо следния код не могат да бъдат синтезирани? Xilinx казва, не могат да бъдат синтезирани сигнал съгл. [Код] библиотека IEEE, използването IEEE.STD_LOGIC_1164.ALL, използване IEEE.STD_LOGIC_ARITH.ALL; лице Mac Port (IN1: подписани (11 downto 0); IN2: подписан (11 downto 0); CLK: в std_logic; RST: std_logic; ACC: подписан от (23 downto 0)); края на Mac, поведенчески архитектура на Mac е сигнал продукти, рег.: подпис (23 downto 0), да започне процес (CLK, RST, IN1, IN2) променлива сума: подписан (23 downto 0); започне про
 
Опишете типа на Xilinx устройство се използва. Следното изявление: [код] ... ако (rst'event и RST = '0 '), тогава ... [/ Код] може да бъде проблем. Edge задейства нулиране, а не е implementet в повечето от Xilinx устройства. Вашият дизайн изисква две, ръба задейства входове към регистъра (RST и CLK). Опитайте с async нулиране. бис
 
Бис, благодаря ви. Тъй като аз съм начинаещ, бихте ли обяснили какво е "async нулиране" е нещо подобно ... ако (RST = '0 '), тогава ...
 
Носете тази линия [код] съгласно
 
Имам го е пробвал, той не работи в моя експеримент най-малко :-(
 
да променяте всички (подписан) сигнали, (std_logic и std_logic_vector) сигнали .. и използването IEEE подписан пакет в началото на файла .. Опитайте се да синтезира и да ме хранят baq с какво получи ..
 
Мисля, че bis_ е вярна. Най-флоп, включително Xilinx FPGA флоп, не са край задейства вход за нулиране. Промени край задейства нулиране: [цвят = синьо] ако (rst'event и RST = '0 ') [/ цветен] обикновен ниво чувствителни (асинхронна) нулиране: [цвят = синьо] ако (RST = '0 '), след това [/ цветен] и сега го синтезира в ISE 9.1i.
 
За да echo47: Аз вече го опитвали, той синтезира, но с това получавате погрешно във форма на сигнали в моя дизайн. Благодаря все пак.
 
[Цитат = trurl] Здравейте, Може ли някой да каже, защо не могат да бъдат синтезирани следния код? Xilinx казва, не могат да бъдат синтезирани сигнал съгл. [Код] библиотека IEEE, използването IEEE.STD_LOGIC_1164.ALL, използване IEEE.STD_LOGIC_ARITH.ALL; лице Mac Port (IN1: подписани (11 downto 0); IN2: подписан (11 downto 0); CLK: в std_logic; RST: std_logic; ACC: подписан от (23 downto 0)); края на Mac, поведенчески архитектура на Mac е сигнал продукти, рег.: подпис (23 downto 0), да започне процес (CLK, RST, IN1, IN2) променлива сума: подписан (23 downto 0); започне про
 
тук е коригирана код! [Код] библиотека IEEE, използването IEEE.STD_LOGIC_1164.ALL, използване IEEE.STD_LOGIC_ARITH.ALL; лице Mac Port (IN1: подписани (11 downto 0); IN2: подписан (11 downto 0); CLK: в std_logic; RST: std_logic; ACC: подписан от (23 downto 0)); края на Mac, поведенчески архитектура на Mac е сигнал продукти, рег.: подпис (23 downto 0); започне про
 
[Цитат = nand_gates] тук се коригира код! [Код] библиотека IEEE, използването IEEE.STD_LOGIC_1164.ALL, използване IEEE.STD_LOGIC_ARITH.ALL; лице Mac Port (IN1: подписани (11 downto 0); IN2: подписан (11 downto 0); CLK: в std_logic; RST: std_logic; ACC: подписан от (23 downto 0)); края на Mac, поведенчески архитектура на Mac е сигнал продукти, рег.: подпис (23 downto 0); започне про
 
За да omara007: Благодаря ви. Добавих IN1 и IN2 чувствителността списък, защото Xilinx дава предупреждения за тях липсва в списъка.
 
[Цитат = trurl] omara007: Благодаря ви. Добавих IN1 и IN2 на списъка с чувствителност, защото Xilinx дава предупреждения за тях, липсва в списъка [/ цитат] игнорирате тези предупреждения .. опитайте да премахнете тези входове ..
 
ако (rst'event и RST = '0 '), след това и elsif (clk'event и CLK = '0'), а след това не могат да бъдат използвани в един процес!!
 
Моля, опитайте код nand_gates има публикувани и игнорира всяко предупреждение, което получаваш .. след това ни разкажете за резултатите вълната
 
Мисля, Xilinx винаги синтезират хх в изявление ", ако (xx'event и хх =" 0 / 1 ")" CLK като игла на FlipFlop, има само един CLK щифт в клетка FF. Така че не трябва да бъде две такива отчети в един процес. Един процес, един часовник домейн.
 
Omara007: Аз се опитах код, който ви споменах. Вълните са грешни, Mac единица не работи правилно. Причината, поради която аз използвам моята (rst'event и RST = '0 ') изявление е, че аз трябва да се генерира автоматично се нулира, пулс. Тъй като моята код не е synthesizable, може да се бихте могли да се посъветва как да се генерира кратък импулс RST между 2 импулса CLK периодично след няколко броя на CLK импулси. Благодаря.
 
[Цитат = trurl] omara007: Аз се опитах код, който ви споменах. Вълните са грешни, Mac единица не работи правилно. Причината, поради която аз използвам моята (rst'event и RST = '0 ') изявление е, че аз трябва да се генерира автоматично се нулира, пулс. Тъй като моята код не е synthesizable, може да се бихте могли да се посъветва как да се генерира кратък импулс RST между 2 импулса CLK периодично след няколко броя на CLK импулси. Благодаря ви [/ цитат] Опитайте се да проектиране прост брояч (CNT) .. когато този брояч е 2 такта, твърдят определен сигнал, нека го наречем (XYZ) .. Можете да използвате комбинационни ", когато" изявление за определяне на стойността на "1" (XYZ), когато (CNT) брояч, е равна на (2). След това можете да използвате този сигнал в "ако" изявление, за да принудят всички други сигнали в проектирането да бъде нула .. но не го наричат нулиране ..
 

Welcome to EDABoard.com

Sponsor

Back
Top