|
DDR2+Cyclone3 - не пролазят констрейны, ищется способ побороть... |
|
|
|
Sep 26 2014, 19:18
|
Профессионал
    
Группа: Свой
Сообщений: 1 284
Регистрация: 9-04-06
Пользователь №: 15 968

|
Всем доброго дня. Собрал в Q11 сопц, собственно процессор + DDR2 контроллер + ethernet. Чип EP3C25 память - MT47H64M16-25Е. В настройках контроллера все частоты выше 266МГЦ (стояло 400мгц) поставил 300 МГц. Частота памяти 150 МГц. В итоге имею слэки отрицательные. Смотрю в клоки - там откуда-то берется 198.05МГц. В настройках нет такого вообще. Мне столько и не надо, достаточно 150МГц. Слэк -1.2хх нс, если период был бы не 5нс, а 6,66 (для 150МГц), то вроде все должно сойтись. Подскажите пожалуйста куда копать и как ему объяснить, что не надо мне 200, хватает 150 МГц? Отчет таймквеста при компиляции прилагаю. Заранее благодарен.
Прикрепленные файлы
log.rar ( 21.73 килобайт )
Кол-во скачиваний: 15
|
|
|
|
|
Sep 30 2014, 13:29
|
Профессионал
    
Группа: Свой
Сообщений: 1 284
Регистрация: 9-04-06
Пользователь №: 15 968

|
Цитата(vadimuzzz @ Sep 30 2014, 08:52)  Потыкал проект, явного криминала в констрейнах не увидел (не значит, что его там нет). Частота памяти 150 МГц, но Fmax, которую выжал синтезатор - 122 МГц. Что насторожило: . Поскольку там речь идет о сигналах ddr_dq, это может быть причиной. Все большие частоты, которые встречаются в отчете относятся к Fmax, т.е. по большинству клоков огромный запас, это нормально. Спасибо за ревизию проекта 16 которые no exact location - это линии данных, потому как мне не принципиально, чтобы D0 контроллера DDR был подцеплен именно к D0 DDR чипа. Пусть цепляет как хочет, как запишет - так и прочитает ведь. Напрягает что везде ставлю 150 мгц, а он почему то в констрейнах прописывает 198,05 МГц - откуда это? Вердикт то какой - прошивать и пробовать, должно работать? И еще вопрос: дополнительно в софте надо что-то инициализировать, настройки какие-нибудь для ДДР? Или просто заливаем кристалл, и видим что у нас есть много -много памяти с которой можем работать сразу, а всю инициализацию контроллер сам делает?
|
|
|
|
|
Oct 1 2014, 09:44
|

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

|
я не вижу нигде 198, у меня там 10, 50, 75 и 150: http://pic4a.ru/ixff/и на счет ног я не понял, он ведь (синтезатор) как попало начнет их раскидывать. практика показывает, что тот же ниос весьма к этому чувствителен. дополнительных настроек в софте никаких не надо, загрузка (или облом с загрузкой) программы в память - хороший тест. забивать на констрейны, особенно в части i/o с памятью я бы не стал, отсюда растут проблемы типа "вчера все работало, сегодня изменил 1 бит и не работает"
|
|
|
|
|
Oct 1 2014, 10:16
|
Профессионал
    
Группа: Свой
Сообщений: 1 700
Регистрация: 2-07-12
Из: дефолт-сити
Пользователь №: 72 596

|
DQ и DQS можно подключать только к строго определенным ногам. http://www.altera.com/literature/dp/cyclone3/EP3C25.xlsопределить их надо заранее, поскольку констрейны генерятся .tcl-скриптом. в мануале на ALTMEMPHY про это написано. надо подсоединить qsys к ногам, сделать анализ-синтез потом запустить .tcl-скрипт который сообразит к каким ногам это всё подключено и допишет констрейны после этого снова анализ-синтез-фиттер и тогда соберется нормально
--------------------
провоцируем неудовлетворенных провокаторов с удовольствием.
|
|
|
|
|
Oct 1 2014, 21:01
|
Профессионал
    
Группа: Свой
Сообщений: 1 284
Регистрация: 9-04-06
Пользователь №: 15 968

|
Цитата(vadimuzzz @ Oct 1 2014, 13:44)  отсюда растут проблемы типа "вчера все работало, сегодня изменил 1 бит и не работает"  дада, вот их то и боюсь. С ногами - я dqs и dm назначил на специальные ноги, в одной dqs - группе 8 бит, эти 8 бит располагаются в одном банке. У меня 16 бит и занято ими 2 банка. Так вот для dq в пределах одной dqs группы я не ставил конкретные ноги, я назначал только банк, в банке 9 ног, к которым можно цеплять dq, 8 из них разведены на память. Т.е. у фиттера есть свобода действий - он может поменять местами линии данных в пределах одного банка (одной dqs-группы). Большого криминала тут не вижу... Цитата надо подсоединить qsys к ногам, сделать анализ-синтез потом запустить .tcl-скрипт который сообразит к каким ногам это всё подключено и допишет констрейны после этого снова анализ-синтез-фиттер и тогда соберется нормально А можно тут поподробнее? Что за скрипт, где его берут, как его запустить? Никогда таким эээ... шаманством не занимался  Кстати, по клокам - выкладываю то что у меня получается... до сих пор не понял откуда это. Настройки контроллера тоже на картинках. Не ужели квартус косячит? Спасибо за помощь!
Эскизы прикрепленных изображений
|
|
|
|
|
Oct 2 2014, 04:13
|
Профессионал
    
Группа: Свой
Сообщений: 1 700
Регистрация: 2-07-12
Из: дефолт-сити
Пользователь №: 72 596

|
Цитата If you are at the design exploration phase of your design cycle and do not have any PCB defined pin locations, you must still manually define an initial set of pin constraints, which can become more specific during your development process Цитата To add the pin and I/O standards to the design example, perform the following steps: 1) On the Tools menu, click Tcl scripts. 2) Under Libraries, select <variation_name>_pin_assignments.tcl 3) Click Run http://www.altera.com/literature/hb/extern...emi_tut_ddr.pdf
--------------------
провоцируем неудовлетворенных провокаторов с удовольствием.
|
|
|
|
|
Oct 2 2014, 21:07
|
Профессионал
    
Группа: Свой
Сообщений: 1 284
Регистрация: 9-04-06
Пользователь №: 15 968

|
Цитата(krux @ Oct 2 2014, 19:01)  assignments -> device -> device and pin options -> pin options ввести вручную сколько надо Чет не спасает: Цитата Info (176045): Design uses memory blocks. Violating setup or hold times of memory block address registers for either read or write operations could cause memory contents to be corrupted. Make sure that all memory block address registers meet the setup and hold time requirements. Error (169015): Cannot place pin ddr_dq[8] to location B12 Error (169223): Can't place VREF pin C11 (VREFGROUP_B7_N0) for pin ddr_dq[8] of type bi-directional with SSTL-18 Class I I/O standard at location B12 Error (169224): Too many output and bidirectional pins per VCCIO and ground pair in I/O bank 7 when the VREF pin C11 (VREFGROUP_B7_N0) is used on device EP3C25F256I7 -- no more than 9 output/bidirectional pins within 12 consecutive pads are allowed when the voltage reference pins are driving in, but there are potentially 10 pins driving out Info (169220): Location D11 (pad PAD_177): Pin ddr_ba[2] of type output uses SSTL-18 Class I I/O standard Info (169220): Location D12 (pad PAD_178): Pin ddr_ba[1] of type output uses SSTL-18 Class I I/O standard Info (169220): Location A13 (pad PAD_179): Pin ddr_ba[0] of type output uses SSTL-18 Class I I/O standard Info (169225): Following 5 pins have the same output enable group 1: 3 pins require VREF pin and 5 pins could be output Info (169220): Location B13 (pad PAD_180): Pin ddr_dq[15] of type bi-directional uses SSTL-18 Class I I/O standard Info (169220): Location E11 (pad PAD_183): Pin ddr_a[0] of type output uses SSTL-18 Class I I/O standard Info (169220): Location E10 (pad PAD_184): Pin ddr_a[2] of type output uses SSTL-18 Class I I/O standard Info (169220): Location A12 (pad PAD_186): Pin ddr_dq[14] of type bi-directional uses SSTL-18 Class I I/O standard Info (169220): Location A11 (pad PAD_188): Pin ddr_dq[9] of type bi-directional uses SSTL-18 Class I I/O standard Info (169220): Location A14 (pad PAD_181): Pin ddr_clk_n of type bi-directional uses SSTL-18 Class I I/O standard Info (169220): Location B14 (pad PAD_182): Pin ddr_clk of type bi-directional uses SSTL-18 Class I I/O standard Info (169222): Following 12 location(s) shared the same VCCIO and ground pair, and 10 pin(s) are placed Info (169220): Location D11 (pad PAD_177): Pin ddr_ba[2] of type output uses SSTL-18 Class I I/O standard Info (169220): Location D12 (pad PAD_178): Pin ddr_ba[1] of type output uses SSTL-18 Class I I/O standard Info (169220): Location A13 (pad PAD_179): Pin ddr_ba[0] of type output uses SSTL-18 Class I I/O standard Info (169220): Location B13 (pad PAD_180): Pin ddr_dq[15] of type bi-directional uses SSTL-18 Class I I/O standard Info (169220): Location A14 (pad PAD_181): Pin ddr_clk_n of type bi-directional uses SSTL-18 Class I I/O standard Info (169220): Location B14 (pad PAD_182): Pin ddr_clk of type bi-directional uses SSTL-18 Class I I/O standard Info (169220): Location E11 (pad PAD_183): Pin ddr_a[0] of type output uses SSTL-18 Class I I/O standard Info (169220): Location E10 (pad PAD_184): Pin ddr_a[2] of type output uses SSTL-18 Class I I/O standard Info (169221): Location (pad PAD_185): unused Info (169220): Location A12 (pad PAD_186): Pin ddr_dq[14] of type bi-directional uses SSTL-18 Class I I/O standard Info (169221): Location B12 (pad PAD_187): unused (but has pin assignment of ddr_dq[8]) Info (169220): Location A11 (pad PAD_188): Pin ddr_dq[9] of type bi-directional uses SSTL-18 Class I I/O standard Info (171121): Fitter preparation operations ending: elapsed time is 00:00:02 Warning (171167): Found invalid Fitter assignments. See the Ignored Assignments panel in the Fitter Compilation Report for more information. Error (171000): Can't fit design in device Warning (169082): Design uses current of 400.0 mA for 15 consecutive horizontal output pads in an I/O bank -- Altera recommends a maximum current of 240.0 mA for any 14 consecutive output pads in an I/O bank Warning (169082): Design uses current of 400.0 mA for 15 consecutive vertical output pads in an I/O bank -- Altera recommends a maximum current of 240.0 mA for any 12 consecutive output pads in an I/O bank Warning (169180): Following 1 pins must use external clamping diodes. Info (169178): Pin epcs_sdi uses I/O standard 2.5 V at H2 Warning (169064): Following 2 pins have no output enable or a GND or VCC output enable - later changes to this connectivity may change fitting results Info (169065): Pin ddr_clk has a permanently enabled output enable Info (169065): Pin ddr_clk_n has a permanently enabled output enable Error: Quartus II 32-bit Fitter was unsuccessful. 4 errors, 21 warnings Error: Peak virtual memory: 326 megabytes Error: Processing ended: Fri Oct 03 01:00:40 2014 Error: Elapsed time: 00:00:25 Error: Total CPU time (on all processors): 00:00:23 Я уж и в output enable group затолкнул все ddr-сигналы. Что еще можно сделать? UPD ничего не понимаю: вешаю сигнал с пина B11 на D14 и ошибка уходит. В том же банке, в той же Vref группе, но плату то в этом случае переделывать ... Неужто тупик?
|
|
|
|
|
Oct 3 2014, 08:03
|
Профессионал
    
Группа: Свой
Сообщений: 1 284
Регистрация: 9-04-06
Пользователь №: 15 968

|
Цитата(gosu-art @ Oct 3 2014, 11:01)  Там какая то замута есть, точно не помню.. Если вы проектируйте на х16 шину то все равно нужно смотреть столбец c x8/x9. Причем для первой группы 9й пин, который остался от предыдущей группы, в следующей использовать нельзя, а нужно пропустить его и перейти к следующей группе х8.  Я перед тем как отправлять плату долго ковырялся в квартусе. то группы не совпадали, то еще чего. В общем гемор еще тот... Да, это то я уже понял что в DQS группе 9 бит DQ, и этот 9-й бит нельзя цеплять из другой dqs группы. В моем случае dqs группа это байт 16-битного слова. Так вот вопрос то в том, что я перекидиваю ногу с одного dq на другой в пределах одной dqs группы, и получается ошибка... Как то люди избавляются от этой беды добавлением в группу output enable, например тут . Но у меня таким методом почему то не лечится. У кого - то получалось? Еще раз посмотрел в таблицу на EP3C25F256 - пины B11 и D14 - одна группа dqs - DQ5T. Перекидываю сигнал с одной ноги на другую квартус поворачивается ко мне попой...
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|