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

Проблема с EPCS CycloneiV GX 150

контроллер EPCS, как компонент ниоса работает в user mode, поэтому ноги д.б. помечены как regular i/o, если используется одно устройство для хранения конфигурации ПЛИС и программы процессора.

пример qsf из рабочего проекта (тут не все dual-purpose пины относятся к EPCS, я их кучей выделил):

set_instance_assignment -name DATA0_PIN ON -to epcs_data0
set_instance_assignment -name SDO_PIN ON -to epcs_asdi
set_instance_assignment -name SCE_PIN ON -to epcs_cs_n
set_instance_assignment -name DCLK_PIN ON -to epcs_dclk

set_global_assignment -name RESERVE_DATA0_AFTER_CONFIGURATION "USE AS REGULAR IO"
set_global_assignment -name RESERVE_DATA1_AFTER_CONFIGURATION "USE AS REGULAR IO"
set_global_assignment -name RESERVE_FLASH_NCE_AFTER_CONFIGURATION "USE AS REGULAR IO"
set_global_assignment -name RESERVE_DCLK_AFTER_CONFIGURATION "USE AS REGULAR IO"
set_global_assignment -name CYCLONEII_RESERVE_NCEO_AFTER_CONFIGURATION "USE AS REGULAR IO"

а в принципе, никто не запрещает флешку для программы ниоса повесить на любые ноги. просто смысла нет, раз она уже используется для хранения sof

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


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

контроллер EPCS, как компонент ниоса работает в user mode, поэтому ноги д.б. помечены как regular i/o, если используется одно устройство для хранения конфигурации ПЛИС и программы процессора.

пример qsf из рабочего проекта (тут не все dual-purpose пины относятся к EPCS, я их кучей выделил):

а в принципе, никто не запрещает флешку для программы ниоса повесить на любые ноги. просто смысла нет, раз она уже используется для хранения sof

 

Правильно ли я Вас понял, что строки в .qsf:

set_global_assignment -name RESERVE_DATA0_AFTER_CONFIGURATION "USE AS REGULAR IO"
set_global_assignment -name RESERVE_DATA1_AFTER_CONFIGURATION "USE AS REGULAR IO"
set_global_assignment -name RESERVE_FLASH_NCE_AFTER_CONFIGURATION "USE AS REGULAR IO"
set_global_assignment -name RESERVE_DCLK_AFTER_CONFIGURATION "USE AS REGULAR IO"
set_global_assignment -name RESERVE_nCEO_AFTER_CONFIGURATION "USE AS REGULAR IO"

из исходного состояния по умолчанию:

post-5832-1382976191.jpg

делают

post-5832-1382976177_thumb.jpg

?

То есть нужно сделать что-нибудь одно - или вручную в Assignments > Devices > Device and PinOptions выставить "USE AS REGULAR IO", или оставить там по умолчанию, но тогда в в .qsf задать их "USE AS REGULAR IO" ?

 

P.S. Почему-то Квартус сразу после начала компиляции выкидывает из .qsf строчку

set_global_assignment -name RESERVE_DATA0_AFTER_CONFIGURATION "USE AS REGULAR IO"

Может быть потому что ранее в .qsf была строчка:

set_instance_assignment -name DATA0_PIN ON -to epcs_data0

в которой уже было DATA0?

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


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

инструкция:

set_instance_assignment -name DATA0_PIN ON -to epcs_data0

говорит фиттеру, что нужно повесить пин epcs_data0 (или как вы его у себя в проекте назовете) на dedicated pin DATA0_PIN (это будет работать на любом кристалле, который поддерживает AS). ЕМНИП, именно она добавляется галочкой в настройках контроллера EPCS

 

а эта:

set_global_assignment -name RESERVE_DATA0_AFTER_CONFIGURATION "USE AS REGULAR IO"

позволяет обращаться к DATA0_PIN, как к обычному i/o, что необходимо для ниоса.

 

вы можете настроить эти пины и визуально, настройки будут сохранены в qsf. хотя в каком-то квартусе был такой косяк, он то ли не сохранял настройки в qsf, то ли портил их. поэтому править в файле, имхо, предпочтительнее - легче переносить настройки между проектами.

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


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

Если вручную в Assignments > Devices > Device and PinOptions выставить "USE AS REGULAR IO", то они появятся в .qsf:

set_global_assignment -name RESERVE_DATA0_AFTER_CONFIGURATION "USE AS REGULAR IO"

set_global_assignment -name RESERVE_DATA1_AFTER_CONFIGURATION "USE AS REGULAR IO"

set_global_assignment -name RESERVE_FLASH_NCE_AFTER_CONFIGURATION "USE AS REGULAR IO"

set_global_assignment -name CYCLONEII_RESERVE_NCEO_AFTER_CONFIGURATION "USE AS REGULAR IO"

set_global_assignment -name RESERVE_DCLK_AFTER_CONFIGURATION "USE AS REGULAR IO"

 

А если в Assignments > Devices > Device and PinOptions вручную не выставлять "USE AS REGULAR IO" , а задать все 5 вышеперечисленных строчек вручную в .qsf, то строка

set_global_assignment -name RESERVE_DATA0_AFTER_CONFIGURATION "USE AS REGULAR IO" в .qsf исчезает.

Возможно это особенность Q 12.1.

 

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


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

У меня была похожая беда, но потом подключил в QSYS вывод jtag_debug_module_reset NIOS-а к reset epcs_flash, и все стало шиться.

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


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

У меня была похожая беда, но потом подключил в QSYS вывод jtag_debug_module_reset NIOS-а к reset epcs_flash, и все стало шиться.

Когда у Вас была проблема с прошивкой,то что было подключено к reset epcs_flash?

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


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

Был подключен только системный reset , общий для всех компонентов системы. ByteBlaster-ом шилось, nios flash programmer-ом не шилось.

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


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

Был подключен только системный reset , общий для всех компонентов системы. ByteBlaster-ом шилось, nios flash programmer-ом не шилось.

То есть теперь к reset epcs_flash у Вас подключено два ресета: общий для всех компонентов системы и с вывода jtag_debug_module_reset NIOS-а?

 

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


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

Да, два ресета.

Поясните тогда пожалуйста вот что.

Если смотреть на графику соединений в QSYS, то получается, что если к reset epcs_flash у Вас подключено два ресета: общий для всех компонентов системы и с вывода jtag_debug_module_reset NIOS-а, то ресет с вывода jtag_debug_module_reset NIOS-а по графике QSYS окажется подключенным и к общему ресету для всех остальных компонентов системы, т.е jtag_debug_module_reset NIOS-а будет сбрасывать и все остальные компоненты системы.

Или это не так?

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


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

Я не могу ответить на это вопрос, т.к. не проверял будет ли jtag_debug_module_reset сбрасывать все остальные компоненты. Можно попробовать посмотреть RTL системы, посмотреть как соединятся два ресета. Возможно идет обидинение двух ресетов для компонента epcs_flash.

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


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

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

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

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

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

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

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

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

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

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