Перейти к содержанию
    

Не могу применить rising_edge

В коде на

if (rising_edge(SSPI_TX_RDY)) then
    st_count := st_count + 1;
end if;

ругается

Quote

 couldn't implement registers for assignments on this clock edge

 

хотя в другом месте

elsif (rising_edge(SSPI_CLK)) then
	spi_clk_counter <= spi_clk_counter + '1';
	idx := idx + 1;
	if (idx = 8) then
	    idx := 0;
	   bytes_counter <= bytes_counter + '1';
	end if;	  
end if;

компилируется без ошибок.

Изменено пользователем jenya7

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Без контекста что вокруг непонятно. И что такое SSPI_TX_RDY. Сама конструкция валидна по виду.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 minutes ago, alexadmin said:

Без контекста что вокруг непонятно. И что такое SSPI_TX_RDY. Сама конструкция валидна по виду.

SSPI_TX_RDY и SSPI_CLK это сигналы entity - оба in std_logic.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

14 minutes ago, andrew_b said:

Что делается с st_count?

 

case st_count is
	when 1 => SSPI_TX_DATA <= sspi_data_out(15 downto 8);
	when 2 => SSPI_TX_DATA <= sspi_data_out(7 downto 0);
	when others =>
end case;

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

9 minutes ago, alexadmin said:

Ok, где это делается? Дайте хоть код всего процесса.

вобщем то почти все я привел выше

when ST_WORD_SPI_OUT =>
    if (cs2 = '0') then

    if (rising_edge(SSPI_TX_RDY)) then
       st_count := st_count + 1;
    end if;

    case st_count is
	when 1 => SSPI_TX_DATA <= sspi_data_out(15 downto 8);
	when 2 => SSPI_TX_DATA <= sspi_data_out(7 downto 0);
	when others =>
    end case;

    else
        SitalState <= ST_SITAL_IDLE; 
   end if;

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если кратко - здесь все не так. Рекомендую почитать что-нибудь про каноническое описание синхронных (триггерных) процессов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

HDL - это язык описания аппаратуры. Другими словами - схемы электрической принципиальной.

Код в примере это просто программа а не схема.

Схему нарисовать перед описанием на языке можете?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...