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

 
 
 
Reply to this topicStart new topic
> DDR2-память, несколько чипов
spectr
сообщение Nov 8 2010, 09:28
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 285
Регистрация: 10-12-04
Из: Earth
Пользователь №: 1 437



Имеется C3 devboard, на котором стоят 5 DDR2-чипов. Хочу использовать их все как одно пространство памяти. Благо в альтеровском DDR2 HPC присутствует заранее запрограммированная настройка для использования этих 5-ти чипов (Micron MT47H32M16CC-3 x4 + MT47H32M8BP-3 x1).
Вопрос заключается в следующем: непонятно как подключать контроллер к верху и низу кристалла (циклона). Например, сейчас у меня висят ошибки:
Код
Error: Output port "DATAOUT" of DDIO_OUT WYSIWYG "sopc_top:inst|ddr2:the_ddr2|ddr2_controller_phy:ddr2_controller_phy_inst|ddr2_phy:ddr2_phy_inst|ddr2_phy_alt_mem_phy:ddr2_phy_alt_mem_phy_inst|ddr2_phy_alt_mem_phy_addr_cmd:full_rate_adc_gen.adc|ddr2_phy_alt_mem_phy_ac:cas_n_struct|altddio_out:full_rate.addr_pin|ddio_out_egd:auto_generated|ddio_outa[0]" has invalid signal-splitter fan-outs.
Error: Output port "DATAOUT" of DDIO_OUT WYSIWYG "sopc_top:inst|ddr2:the_ddr2|ddr2_controller_phy:ddr2_controller_phy_inst|ddr2_phy:ddr2_phy_inst|ddr2_phy_alt_mem_phy:ddr2_phy_alt_mem_phy_inst|ddr2_phy_alt_mem_phy_addr_cmd:full_rate_adc_gen.adc|ddr2_phy_alt_mem_phy_ac:cke[0].cke_struct|altddio_out:full_rate.addr_pin|ddio_out_1jd:auto_generated|ddio_outa[0]" has invalid signal-splitter fan-outs.
Error: Output port "DATAOUT" of DDIO_OUT WYSIWYG "sopc_top:inst|ddr2:the_ddr2|ddr2_controller_phy:ddr2_controller_phy_inst|ddr2_phy:ddr2_phy_inst|ddr2_phy_alt_mem_phy:ddr2_phy_alt_mem_phy_inst|ddr2_phy_alt_mem_phy_addr_cmd:full_rate_adc_gen.adc|ddr2_phy_alt_mem_phy_ac:cs_n[0].cs_n_struct|altddio_out:full_rate.addr_pin|ddio_out_egd:auto_generated|ddio_outa[0]" has invalid signal-splitter fan-outs.
Error: Output port "DATAOUT" of DDIO_OUT WYSIWYG "sopc_top:inst|ddr2:the_ddr2|ddr2_controller_phy:ddr2_controller_phy_inst|ddr2_phy:ddr2_phy_inst|ddr2_phy_alt_mem_phy:ddr2_phy_alt_mem_phy_inst|ddr2_phy_alt_mem_phy_addr_cmd:full_rate_adc_gen.adc|ddr2_phy_alt_mem_phy_ac:ras_n_struct|altddio_out:full_rate.addr_pin|ddio_out_egd:auto_generated|ddio_outa[0]" has invalid signal-splitter fan-outs.
Error: Output port "DATAOUT" of DDIO_OUT WYSIWYG "sopc_top:inst|ddr2:the_ddr2|ddr2_controller_phy:ddr2_controller_phy_inst|ddr2_phy:ddr2_phy_inst|ddr2_phy_alt_mem_phy:ddr2_phy_alt_mem_phy_inst|ddr2_phy_alt_mem_phy_addr_cmd:full_rate_adc_gen.adc|ddr2_phy_alt_mem_phy_ac:we_n_struct|altddio_out:full_rate.addr_pin|ddio_out_egd:auto_generated|ddio_outa[0]" has invalid signal-splitter fan-outs.
Error: Output port "DATAOUT" of DDIO_OUT WYSIWYG "sopc_top:inst|ddr2:the_ddr2|ddr2_controller_phy:ddr2_controller_phy_inst|ddr2_phy:ddr2_phy_inst|ddr2_phy_alt_mem_phy:ddr2_phy_alt_mem_phy_inst|ddr2_phy_alt_mem_phy_addr_cmd:full_rate_adc_gen.adc|ddr2_phy_alt_mem_phy_ac:gen_odt.odt[0].odt_struct|altddio_out:full_rate.addr_pin|ddio_out_1jd:auto_generated|ddio_outa[0]" has invalid signal-splitter fan-outs.
Error: Output port "DATAOUT" of DDIO_OUT WYSIWYG "sopc_top:inst|ddr2:the_ddr2|ddr2_controller_phy:ddr2_controller_phy_inst|ddr2_phy:ddr2_phy_inst|ddr2_phy_alt_mem_phy:ddr2_phy_alt_mem_phy_inst|ddr2_phy_alt_mem_phy_addr_cmd:full_rate_adc_gen.adc|ddr2_phy_alt_mem_phy_ac:addr[12].addr_struct|altddio_out:full_rate.addr_pin|ddio_out_egd:auto_generated|ddio_outa[0]" has invalid signal-splitter fan-outs.
Error: Output port "DATAOUT" of DDIO_OUT WYSIWYG "sopc_top:inst|ddr2:the_ddr2|ddr2_controller_phy:ddr2_controller_phy_inst|ddr2_phy:ddr2_phy_inst|ddr2_phy_alt_mem_phy:ddr2_phy_alt_mem_phy_inst|ddr2_phy_alt_mem_phy_addr_cmd:full_rate_adc_gen.adc|ddr2_phy_alt_mem_phy_ac:addr[11].addr_struct|altddio_out:full_rate.addr_pin|ddio_out_egd:auto_generated|ddio_outa[0]" has invalid signal-splitter fan-outs.
Error: Output port "DATAOUT" of DDIO_OUT WYSIWYG "sopc_top:inst|ddr2:the_ddr2|ddr2_controller_phy:ddr2_controller_phy_inst|ddr2_phy:ddr2_phy_inst|ddr2_phy_alt_mem_phy:ddr2_phy_alt_mem_phy_inst|ddr2_phy_alt_mem_phy_addr_cmd:full_rate_adc_gen.adc|ddr2_phy_alt_mem_phy_ac:addr[10].addr_struct|altddio_out:full_rate.addr_pin|ddio_out_egd:auto_generated|ddio_outa[0]" has invalid signal-splitter fan-outs.
Error: Output port "DATAOUT" of DDIO_OUT WYSIWYG "sopc_top:inst|ddr2:the_ddr2|ddr2_controller_phy:ddr2_controller_phy_inst|ddr2_phy:ddr2_phy_inst|ddr2_phy_alt_mem_phy:ddr2_phy_alt_mem_phy_inst|ddr2_phy_alt_mem_phy_addr_cmd:full_rate_adc_gen.adc|ddr2_phy_alt_mem_phy_ac:addr[9].addr_struct|altddio_out:full_rate.addr_pin|ddio_out_egd:auto_generated|ddio_outa[0]" has invalid signal-splitter fan-outs.
Error: Output port "DATAOUT" of DDIO_OUT WYSIWYG "sopc_top:inst|ddr2:the_ddr2|ddr2_controller_phy:ddr2_controller_phy_inst|ddr2_phy:ddr2_phy_inst|ddr2_phy_alt_mem_phy:ddr2_phy_alt_mem_phy_inst|ddr2_phy_alt_mem_phy_addr_cmd:full_rate_adc_gen.adc|ddr2_phy_alt_mem_phy_ac:addr[8].addr_struct|altddio_out:full_rate.addr_pin|ddio_out_egd:auto_generated|ddio_outa[0]" has invalid signal-splitter fan-outs.
Error: Output port "DATAOUT" of DDIO_OUT WYSIWYG "sopc_top:inst|ddr2:the_ddr2|ddr2_controller_phy:ddr2_controller_phy_inst|ddr2_phy:ddr2_phy_inst|ddr2_phy_alt_mem_phy:ddr2_phy_alt_mem_phy_inst|ddr2_phy_alt_mem_phy_addr_cmd:full_rate_adc_gen.adc|ddr2_phy_alt_mem_phy_ac:addr[7].addr_struct|altddio_out:full_rate.addr_pin|ddio_out_egd:auto_generated|ddio_outa[0]" has invalid signal-splitter fan-outs.
Error: Output port "DATAOUT" of DDIO_OUT WYSIWYG "sopc_top:inst|ddr2:the_ddr2|ddr2_controller_phy:ddr2_controller_phy_inst|ddr2_phy:ddr2_phy_inst|ddr2_phy_alt_mem_phy:ddr2_phy_alt_mem_phy_inst|ddr2_phy_alt_mem_phy_addr_cmd:full_rate_adc_gen.adc|ddr2_phy_alt_mem_phy_ac:addr[6].addr_struct|altddio_out:full_rate.addr_pin|ddio_out_egd:auto_generated|ddio_outa[0]" has invalid signal-splitter fan-outs.
Error: Output port "DATAOUT" of DDIO_OUT WYSIWYG "sopc_top:inst|ddr2:the_ddr2|ddr2_controller_phy:ddr2_controller_phy_inst|ddr2_phy:ddr2_phy_inst|ddr2_phy_alt_mem_phy:ddr2_phy_alt_mem_phy_inst|ddr2_phy_alt_mem_phy_addr_cmd:full_rate_adc_gen.adc|ddr2_phy_alt_mem_phy_ac:addr[5].addr_struct|altddio_out:full_rate.addr_pin|ddio_out_egd:auto_generated|ddio_outa[0]" has invalid signal-splitter fan-outs.
Error: Output port "DATAOUT" of DDIO_OUT WYSIWYG "sopc_top:inst|ddr2:the_ddr2|ddr2_controller_phy:ddr2_controller_phy_inst|ddr2_phy:ddr2_phy_inst|ddr2_phy_alt_mem_phy:ddr2_phy_alt_mem_phy_inst|ddr2_phy_alt_mem_phy_addr_cmd:full_rate_adc_gen.adc|ddr2_phy_alt_mem_phy_ac:addr[4].addr_struct|altddio_out:full_rate.addr_pin|ddio_out_egd:auto_generated|ddio_outa[0]" has invalid signal-splitter fan-outs.
Error: Output port "DATAOUT" of DDIO_OUT WYSIWYG "sopc_top:inst|ddr2:the_ddr2|ddr2_controller_phy:ddr2_controller_phy_inst|ddr2_phy:ddr2_phy_inst|ddr2_phy_alt_mem_phy:ddr2_phy_alt_mem_phy_inst|ddr2_phy_alt_mem_phy_addr_cmd:full_rate_adc_gen.adc|ddr2_phy_alt_mem_phy_ac:addr[3].addr_struct|altddio_out:full_rate.addr_pin|ddio_out_egd:auto_generated|ddio_outa[0]" has invalid signal-splitter fan-outs.
Error: Output port "DATAOUT" of DDIO_OUT WYSIWYG "sopc_top:inst|ddr2:the_ddr2|ddr2_controller_phy:ddr2_controller_phy_inst|ddr2_phy:ddr2_phy_inst|ddr2_phy_alt_mem_phy:ddr2_phy_alt_mem_phy_inst|ddr2_phy_alt_mem_phy_addr_cmd:full_rate_adc_gen.adc|ddr2_phy_alt_mem_phy_ac:addr[2].addr_struct|altddio_out:full_rate.addr_pin|ddio_out_egd:auto_generated|ddio_outa[0]" has invalid signal-splitter fan-outs.
Error: Output port "DATAOUT" of DDIO_OUT WYSIWYG "sopc_top:inst|ddr2:the_ddr2|ddr2_controller_phy:ddr2_controller_phy_inst|ddr2_phy:ddr2_phy_inst|ddr2_phy_alt_mem_phy:ddr2_phy_alt_mem_phy_inst|ddr2_phy_alt_mem_phy_addr_cmd:full_rate_adc_gen.adc|ddr2_phy_alt_mem_phy_ac:addr[1].addr_struct|altddio_out:full_rate.addr_pin|ddio_out_egd:auto_generated|ddio_outa[0]" has invalid signal-splitter fan-outs.
Error: Output port "DATAOUT" of DDIO_OUT WYSIWYG "sopc_top:inst|ddr2:the_ddr2|ddr2_controller_phy:ddr2_controller_phy_inst|ddr2_phy:ddr2_phy_inst|ddr2_phy_alt_mem_phy:ddr2_phy_alt_mem_phy_inst|ddr2_phy_alt_mem_phy_addr_cmd:full_rate_adc_gen.adc|ddr2_phy_alt_mem_phy_ac:addr[0].addr_struct|altddio_out:full_rate.addr_pin|ddio_out_egd:auto_generated|ddio_outa[0]" has invalid signal-splitter fan-outs.
Error: Output port "DATAOUT" of DDIO_OUT WYSIWYG "sopc_top:inst|ddr2:the_ddr2|ddr2_controller_phy:ddr2_controller_phy_inst|ddr2_phy:ddr2_phy_inst|ddr2_phy_alt_mem_phy:ddr2_phy_alt_mem_phy_inst|ddr2_phy_alt_mem_phy_addr_cmd:full_rate_adc_gen.adc|ddr2_phy_alt_mem_phy_ac:ba[1].ba_struct|altddio_out:full_rate.addr_pin|ddio_out_1jd:auto_generated|ddio_outa[0]" has invalid signal-splitter fan-outs.
Error: Output port "DATAOUT" of DDIO_OUT WYSIWYG "sopc_top:inst|ddr2:the_ddr2|ddr2_controller_phy:ddr2_controller_phy_inst|ddr2_phy:ddr2_phy_inst|ddr2_phy_alt_mem_phy:ddr2_phy_alt_mem_phy_inst|ddr2_phy_alt_mem_phy_addr_cmd:full_rate_adc_gen.adc|ddr2_phy_alt_mem_phy_ac:ba[0].ba_struct|altddio_out:full_rate.addr_pin|ddio_out_1jd:auto_generated|ddio_outa[0]" has invalid signal-splitter fan-outs.

Насколько я их понимаю, квартус ругается на то, что я пытаюсь подсоединить перечисленные выходы контроллера к двум дифференциальным ногам (по сути, к 4 пинам) для каждого из этих выходов. Я прав?
Как можно выйти из положения?


[UPD]
Вот здесь ( http://alterauserforum.net/forum/showthread.php?t=2470 ) обсуждается подобная проблема, но как я понял, итогом является использование для каждого чипа своего контроллера. Это так?

Сообщение отредактировал spectr - Nov 8 2010, 09:30
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Nov 8 2010, 12:12
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 291
Регистрация: 21-07-05
Пользователь №: 6 988



конкретно по этой плате у многих имеются вопросы к альтеровским индусам.
конфигурация чипов памяти теоретически должна давать возможность использовать
256+32(ECC) Мбайт. цимес в том, что для использования ECC все это хозяйство
должно идти одним банком, чего не позволяет сделать C3. поэтому на плате сделаны 2 банка
и во всех примерах используется либо 1 чип (тривиально), либо 2 банка по 128 МБайт каждый.

например: http://www.nioswiki.com/ExampleDesigns/Nio...20DesignExample
Go to the top of the page
 
+Quote Post
spectr
сообщение Nov 8 2010, 12:26
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 285
Регистрация: 10-12-04
Из: Earth
Пользователь №: 1 437



Цитата

Да-да, я как раз наткнулся на этот пример, скомпилил, залил, проверил и тоже обнаружил что используется 2х128 Мб. Странно для альтеры делать подобные недоработки (если имеет право быть такое мнение).

Еще вопрос: что дает чип с ЕСС? Правильно я понимаю, что если его задействовать, то он будет (при соответствующей настройке контроллера) исправлять ошибки при чтении/записи памяти, или же его можно использовать для иных целей. И еще - опции "Enable error detection and correction logic" и "Enable auto error correction", доступные для DDR2 HPC II на вкладке "Controller Settings" в SOPC-билдере связаны с этим самым чипом ЕСС или же это программная фича?
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Nov 8 2010, 14:38
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 291
Регистрация: 21-07-05
Пользователь №: 6 988



Цитата(spectr @ Nov 8 2010, 18:26) *
Еще вопрос: что дает чип с ЕСС? Правильно я понимаю, что если его задействовать, то он будет (при соответствующей настройке контроллера) исправлять ошибки при чтении/записи памяти, или же его можно использовать для иных целей. И еще - опции "Enable error detection and correction logic" и "Enable auto error correction", доступные для DDR2 HPC II на вкладке "Controller Settings" в SOPC-билдере связаны с этим самым чипом ЕСС или же это программная фича?

ну, теоретически с его помощью можно детектировать и исправлять ошибки.
только вот корка альтеровская не сможет это реализовать, т.к. ей требуется ширина шины
данных кратная 72, ЕМНИП. а на плате сделано 2 банками 32 + 40. так что либо
без ECC 128 + 160 МБ, либо делать свой контроллер ddr2
Go to the top of the page
 
+Quote Post
spectr
сообщение Nov 9 2010, 13:10
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 285
Регистрация: 10-12-04
Из: Earth
Пользователь №: 1 437



А что если применить для объединения двух сегментов памяти (сидящих на разных сторонах плиса) компонент SGDMA?
Он же вроде как "... transfers and merges non-contiguous memory to a continuous address space, and vice versa".
Такой хинт возможен?
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Nov 9 2010, 14:27
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 2 291
Регистрация: 21-07-05
Пользователь №: 6 988



немного не из той оперы. SGDMA нужен для переноса массивов данных в/из устройсва ввода/вывода,
либо для переноса из одного сегмента памяти в другой. транзакции эти носят регулярный характер +
как правило требуют внешнего управления. то же исполнение кода - главным образом произвольное
чтение с небольшими участками последовательных операций. однако никто не запрещает свести 2 банка
памяти в адресном пространстве так, чтобы не было разрыва.
Go to the top of the page
 
+Quote Post

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

 


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


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