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

Проблема последовательной записи.

19 minutes ago, jenya7 said:

это кор. в нем 16-битная память. мне наружу выходит шина адреса, шина данных, и управляющие линии. мой управляющий модуль обращается к модулю кора в котором память. в принципе я с кором работаю только через запись чтение в память.

в принципе я понял что память внутренняя. Вообще корки существую к примеру и на ddr, то бишь внешнюю память

смысл в чем. У памяти есть свои задержки. Если это память внешняя, не альтеровская, а на плате находится отдельной микрухой, то квартус о ней ничего не знает, и ее параметры нужно вносить в sdc. Если вы используете альтеровскую ip core для использования памяти на чипе, тогда квартус все о ней знает и сам высчитывает пути и задержки.

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


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

Варианты для проб:

1. Попробуйте уменьшить длину соединения (проводов) например в 2 раза и выровнять их по длине

2. Если используете соединение напрямую с пинов FPGA можно поставить микросхему буффера (на входе 3,3В на выходе 5В и наоборот)

3. Уменьшить частоту (SPI) например в 2 раза

 

Например сразу сделать 1 и 3 пункты и посмотреть...

 

PS У меня порядка 10 см SPI работал без ошибок где-то на 6МГц (без буферов)

 

 

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


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

12 hours ago, _4afc_ said:

А можно не писать на этом форуме слова ФПГА и РАМ? 

 

Я вообще не понимаю о чём речь идёт и куда модератор смотрит...

Модератор отслеживает наружения правил форума, но не используемую терминологию. Согласен, текст ТС из разряда вырвиглаз и я этого не одобряю. Но нарушения правил нет. Модератор

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


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

товарищи дышите спокойно и берегите глаза.

я по моему нашел где собачка порылась.

я выставляю данные и адрес на шине в течении двух клоков

when ST_CONT_WRITE_4 =>
    reg_count := reg_count + 1;
						  
    SITAL_1553_1_ADR <= sspi_cont_addr;
	SITAL_1553_1_DIN <= sspi_cont_data;
					
    if (reg_count = 8) then  
	    SitalState <= ST_CONT_WRITE_2;  
	end if; 	  

выставил на один клок  if (reg_count = 4) then и проблема исчезла.

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


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

10 часов назад, jenya7 сказал:

товарищи дышите спокойно и берегите глаза.

я по моему нашел где собачка порылась.

я выставляю данные и адрес на шине в течении двух клоков


when ST_CONT_WRITE_4 =>
    reg_count := reg_count + 1;
						  
    SITAL_1553_1_ADR <= sspi_cont_addr;
	SITAL_1553_1_DIN <= sspi_cont_data;
					
    if (reg_count = 8) then  
	    SitalState <= ST_CONT_WRITE_2;  
	end if; 	  

выставил на один клок  if (reg_count = 4) then и проблема исчезла.

Стесняюсь спросить, а Вы моделировали Ваш код ?

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


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

13 hours ago, Flip-fl0p said:

Стесняюсь спросить, а Вы моделировали Ваш код ?

сигнал тап наше все.

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


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

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

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

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

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

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

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

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

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

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