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

13 часов назад, MegaVolt сказал:

Но вы бы спросили что решаете причём в отдельной теме и вам бы скорее ответили.

Сейчас ни чего такого не решаю, просто ударила  мысль в голову вот и спросил.

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


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

В 26.03.2024 в 16:49, Maverick_ сказал:

Вам нужен

image.thumb.png.cca82e76393b4c7e27fb2461b4ef5118.png

как я понимаю

у меня GW2AR. В таблице поддерживаемых устрйоств нет.

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


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

On 3/26/2024 at 6:01 AM, Worldmaster said:

Чего то не очень.

MyIODel:IODELAY
GENERIC MAP (C_STATIC_DLY=>55
)
PORT MAP (
	DO=>dout,
	DF=>df, 
	DI=>sdram_clk,     <- сюда приходим с PLL
	SDTAP=>'0',
	SETN=>setn,
	VALUE=>value
); 


MySDRAM:  SDRAM_Controller_HS_Top
	port map (
		O_sdram_clk => O_sdram_clk,
		O_sdram_cke => O_sdram_cke,
		O_sdram_cs_n => O_sdram_cs_n,
		O_sdram_cas_n => O_sdram_cas_n,
		O_sdram_ras_n => O_sdram_ras_n,
		O_sdram_wen_n => O_sdram_wen_n,
		O_sdram_dqm => O_sdram_dqm,
		O_sdram_addr => O_sdram_addr,
		O_sdram_ba => O_sdram_ba,
		IO_sdram_dq => IO_sdram_dq,  

		I_sdrc_clk => sdrc_clk,
		I_sdram_clk => dout,      <------------------------ затем вот сюда
		I_sdrc_rst_n => rst_n,

		I_sdrc_cmd_en => I_sdrc_cmd_en,
		I_sdrc_cmd => I_sdrc_cmd,
		I_sdrc_precharge_ctrl => I_sdrc_precharge_ctrl,
		I_sdram_power_down => I_sdram_power_down,
		I_sdram_selfrefresh => I_sdram_selfrefresh,
		I_sdrc_addr => I_sdrc_addr,
		I_sdrc_dqm => I_sdrc_dqm,
		I_sdrc_data => I_sdrc_data,
		I_sdrc_data_len => I_sdrc_data_len,
		O_sdrc_data => O_sdrc_data,
		O_sdrc_init_done => O_sdrc_init_done,
		O_sdrc_cmd_ack => O_sdrc_cmd_ack
	);
ERROR (CK0018) : Instance 'SDRAM/MySDRAM/MyIODel' is not connected to buffer
WARN  (ST0001) : Ignored static timing analysis because of the failure of circuit analysis checking

 

 

Можно конечно использовать задержку PLL но там углы слишком большие и почему то перестает работать модуль при 90 градусном сдвиге. Но зато пропадают ошибки SDRAM.

 

Нет. Так не делают.

У вас есть внутренний тактовый сигнал. Вам нужно его выдать наружу, причём с фиксированной задержкой относительно данных, которые по этому же сигналу формируются на триггерах внутри IO блоков. Для этого на выход тактового сигнала надо поставить примитив ODDR. На его входы данных подать 1 и 0. Выход ODDR можно подать на вход IODELAY, это даст дополнительную и управляемую задержку.  Выход ODDR даст стабильный тактовый сигнал с той же частотой что и внутренний сигнал. При этом сигнал тактовой частоты будем формироваться так же как и данных, то есть всё будет стабильно при разных трассировках и на разных кристаллах.

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


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

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

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

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

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

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

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

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

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

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