реклама на сайте
подробности

 
 
> Signal cannot be synthesized, bad synchronous description., Не пойму в чем дело...
h0t
сообщение Feb 4 2012, 18:26
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 51
Регистрация: 23-09-11
Пользователь №: 67 345



Добрый вечер, было уже когда-то похожая проблема но сейчас уже не помню с чем связана.
В итоге есть код:
Код
function read_bit(signal RX, SCK:std_ulogic)  return bit is
variable read_data: Std_uLogic_Vector ( 4 downto 0);
variable current_bit : bit;
begin
  
    
    for i in 0 to 4 loop
        if(rising_edge(SCK)) then
           read_data(i) := RX;
        end if;
    end loop;


    if (read_data = "00000") then  current_bit:='0';
     elsif (read_data = "00001") then  current_bit:='0';
     elsif (read_data = "00010") then  current_bit:='0';
     elsif (read_data = "00011") then  current_bit:='0';
     elsif (read_data = "00100") then  current_bit:='0';
     elsif (read_data = "00101") then  current_bit:='0';
     elsif (read_data = "00110") then  current_bit:='0';
     elsif (read_data = "00111") then  current_bit:='1';
     elsif (read_data = "01000") then  current_bit:='0';
     elsif (read_data = "01001") then  current_bit:='0';
     elsif (read_data = "01010") then  current_bit:='0';
     elsif (read_data = "01011") then  current_bit:='1';
     elsif (read_data = "01100") then  current_bit:='0';
     elsif (read_data = "01101") then  current_bit:='1';
     elsif (read_data = "01110") then  current_bit:='1';
     elsif (read_data = "01111") then  current_bit:='1';
     elsif (read_data = "10000") then  current_bit:='0';
     elsif (read_data = "10001") then  current_bit:='0';
     elsif (read_data = "10010") then  current_bit:='0';
     elsif (read_data = "10011") then  current_bit:='1';
     elsif (read_data = "10100") then  current_bit:='0';
     elsif (read_data = "10101") then  current_bit:='1';
     elsif (read_data = "10110") then  current_bit:='1';
     elsif (read_data = "10111") then  current_bit:='1';
     elsif (read_data = "11000") then  current_bit:='0';
     elsif (read_data = "11001") then  current_bit:='1';
     elsif (read_data = "11010") then  current_bit:='1';
     elsif (read_data = "11011") then  current_bit:='1';
     elsif (read_data = "11100") then  current_bit:='1';
     elsif (read_data = "11101") then  current_bit:='1';
     elsif (read_data = "11110") then  current_bit:='1';
     elsif (read_data = "11111") then  current_bit:='1';
     end if;
    
    return current_bit;
end;




begin
    
    process (SCK,RX)         
    variable current_bit:bit;    
    variable read_data: Std_uLogic_Vector ( 4 downto 0);
    begin
    if (falling_edge(RX)) then
            current_bit:=read_bit(RX,SCK);
            current_bit:=read_bit(RX,SCK);

            DATA <= "0000000000000000000000000000000000000000000000000000000000000000000000000000
000"&to_stdulogic(current_bit);
    end if;
    
    end process;


И получаю ошибку line 57: Signal read_data1<0> cannot be synthesized, bad synchronous description. The description style you are using to describe a synchronous element (register, memory, etc.) is not supported in the current software release.. Подскажите в чем дело. Тема похожая уже здесь была, я ее просматривал но осознать как подправить код не смог(. Спасибо.

P.S. про жуткий способ вычисления current_bit знаю, просто я игрался с ошибкой что-бы понять в чем дело.

Сообщение отредактировал h0t - Feb 4 2012, 18:28
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- h0t   Signal cannot be synthesized, bad synchronous description.   Feb 4 2012, 18:26
- - svedach   Я не спец, но возможно нельзя использовать rising_...   Feb 4 2012, 19:08
- - h0t   Да вроде можно, если вытащить функцию то это не по...   Feb 4 2012, 19:18
- - gosu-art   Так мало того там установка бита по rising_edge и...   Feb 4 2012, 19:18
|- - h0t   Цитата(gosu-art @ Feb 4 2012, 23:18)...   Feb 4 2012, 19:22
- - gosu-art   А то, что такую конструкцию в ПЛИС невозможно реал...   Feb 4 2012, 19:27
|- - h0t   Цитата(gosu-art @ Feb 4 2012, 23:27)...   Feb 4 2012, 19:36
|- - h0t   Цитата(gosu-art @ Feb 4 2012, 23:27)...   Feb 5 2012, 08:46
- - gosu-art   Цитатаfor i in 0 to 4 loop if(rising_edge(...   Feb 4 2012, 19:45
- - h0t   я писал, что над функцией я игрался что-бы понять ...   Feb 4 2012, 19:48
|- - des00   Цитата(h0t @ Feb 4 2012, 14:48) Прошу Вас...   Feb 5 2012, 08:46
- - gosu-art   Завтра приду на работу попробую набросать примеры....   Feb 5 2012, 09:07
- - maksimp   Цитата(h0t @ Feb 4 2012, 21:26) Кодfuncti...   Feb 5 2012, 09:36
- - h0t   Все спасибо, осознал. Всем спасибо.   Feb 5 2012, 11:44
- - Bad0512   Цитата(h0t @ Feb 5 2012, 18:44) Все спаси...   Feb 6 2012, 03:14
- - h0t   Цитата(Bad0512 @ Feb 6 2012, 07:14) А вот...   Feb 6 2012, 15:47


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 18:03
Рейтинг@Mail.ru


Страница сгенерированна за 0.01395 секунд с 7
ELECTRONIX ©2004-2016