Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: DDR2-память, несколько чипов
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Системы на ПЛИС - System on a Programmable Chip (SoPC)
spectr
Имеется 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 ) обсуждается подобная проблема, но как я понял, итогом является использование для каждого чипа своего контроллера. Это так?
vadimuzzz
конкретно по этой плате у многих имеются вопросы к альтеровским индусам.
конфигурация чипов памяти теоретически должна давать возможность использовать
256+32(ECC) Мбайт. цимес в том, что для использования ECC все это хозяйство
должно идти одним банком, чего не позволяет сделать C3. поэтому на плате сделаны 2 банка
и во всех примерах используется либо 1 чип (тривиально), либо 2 банка по 128 МБайт каждый.

например: http://www.nioswiki.com/ExampleDesigns/Nio...20DesignExample
spectr
Цитата

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

Еще вопрос: что дает чип с ЕСС? Правильно я понимаю, что если его задействовать, то он будет (при соответствующей настройке контроллера) исправлять ошибки при чтении/записи памяти, или же его можно использовать для иных целей. И еще - опции "Enable error detection and correction logic" и "Enable auto error correction", доступные для DDR2 HPC II на вкладке "Controller Settings" в SOPC-билдере связаны с этим самым чипом ЕСС или же это программная фича?
vadimuzzz
Цитата(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
spectr
А что если применить для объединения двух сегментов памяти (сидящих на разных сторонах плиса) компонент SGDMA?
Он же вроде как "... transfers and merges non-contiguous memory to a continuous address space, and vice versa".
Такой хинт возможен?
vadimuzzz
немного не из той оперы. SGDMA нужен для переноса массивов данных в/из устройсва ввода/вывода,
либо для переноса из одного сегмента памяти в другой. транзакции эти носят регулярный характер +
как правило требуют внешнего управления. то же исполнение кода - главным образом произвольное
чтение с небольшими участками последовательных операций. однако никто не запрещает свести 2 банка
памяти в адресном пространстве так, чтобы не было разрыва.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.