|
|
  |
NIOS для начинающих |
|
|
|
May 8 2015, 14:14
|
Знающий
   
Группа: Свой
Сообщений: 555
Регистрация: 14-10-09
Пользователь №: 52 939

|
Шина, да - 32 х разрядная на Avalon MM. но просто старшая часть,если не используете, будет заполнятся нулями(холостыми) и памяти (FIFO) кушать не станет. А вот в SDRAM могут писаться эти холостые нули. Bits per symbol = 16 symbol per beat = 1 заполнение старших 2й байт нулями либо так Bits per symbol = 16 symbol per beat = 2 склеивание 2х 16ти разрядных слов(2 отсчета АЦП) в одно 32х разрядное -> в SDRAM x16 , (я как то экспериментировал, но точно не помню. посмотрите в этой же ветке отписывался) будут писаться 2 слова burst'ом в SDRAM Либо 3й вариант поставить FIFO ST-ST и SG-DMA ST-MM и адаптерами он автоматом все склеит. А раньше нужно было ручками их вставлять
|
|
|
|
|
May 28 2015, 08:01
|
Местный
  
Группа: Участник
Сообщений: 368
Регистрация: 18-04-11
Из: Город-герой Москва
Пользователь №: 64 451

|
Здравствуйте. Есть ядро написанное на VHDL (не моё), хочу прикрутить его к Nios II. Среди файлов из которого состоит ядро имеется файл .sdc с временными ограничениями. Надо соответственно этот файл как то так подцепить к проекту, что бы трассировщик правильно для данной частоты развёл не только Nios но и данное ядро. Процессорную систему создаю в SOPC Builder, среди генерируемых им файлов, есть файл cpu.sdc, его содержание: Код set cpu cpu:* set cpu_oci cpu_nios2_oci:the_cpu_nios2_oci set cpu_oci_break cpu_nios2_oci_break:the_cpu_nios2_oci_break set cpu_ocimem cpu_nios2_ocimem:the_cpu_nios2_ocimem set cpu_oci_debug cpu_nios2_oci_debug:the_cpu_nios2_oci_debug set cpu_wrapper cpu_jtag_debug_module_wrapper:the_cpu_jtag_debug_module_wrapper set cpu_jtag_tck cpu_jtag_debug_module_tck:the_cpu_jtag_debug_module_tck set cpu_jtag_sysclk cpu_jtag_debug_module_sysclk:the_cpu_jtag_debug_module_sysclk set cpu_oci_path [format "%s|%s" $cpu $cpu_oci] set cpu_oci_break_path [format "%s|%s" $cpu_oci_path $cpu_oci_break] set cpu_ocimem_path [format "%s|%s" $cpu_oci_path $cpu_ocimem] set cpu_oci_debug_path [format "%s|%s" $cpu_oci_path $cpu_oci_debug] set cpu_jtag_tck_path [format "%s|%s|%s" $cpu_oci_path $cpu_wrapper $cpu_jtag_tck] set cpu_jtag_sysclk_path [format "%s|%s|%s" $cpu_oci_path $cpu_wrapper $cpu_jtag_sysclk] set cpu_jtag_sr [format "%s|*sr" $cpu_jtag_tck_path]
#************************************************************** # Set False Paths #**************************************************************
set_false_path -from [get_keepers *$cpu_oci_break_path|break_readreg*] -to [get_keepers *$cpu_jtag_sr*] set_false_path -from [get_keepers *$cpu_oci_debug_path|*resetlatch] -to [get_keepers *$cpu_jtag_sr[33]] set_false_path -from [get_keepers *$cpu_oci_debug_path|monitor_ready] -to [get_keepers *$cpu_jtag_sr[0]] set_false_path -from [get_keepers *$cpu_oci_debug_path|monitor_error] -to [get_keepers *$cpu_jtag_sr[34]] set_false_path -from [get_keepers *$cpu_ocimem_path|*MonDReg*] -to [get_keepers *$cpu_jtag_sr*] set_false_path -from *$cpu_jtag_sr* -to *$cpu_jtag_sysclk_path|*jdo* set_false_path -from sld_hub:*|irf_reg* -to *$cpu_jtag_sysclk_path|ir* set_false_path -from sld_hub:*|sld_shadow_jsm:shadow_jsm|state[1] -to *$cpu_oci_debug_path|monitor_go До этого не обращал внимания, но... где здесь указание на то, какая частота сигнала используется, куда вписать нестабильность частоты (квартус выдаёт критические ворненги относительно того, что нестабильность не задана). Возможно необходимо создавать отдельный .sdc файл. Как я понял, Qsys сама генерит подпбный файл, а как быть с SOPC Builder?
|
|
|
|
|
Jul 4 2015, 10:53
|
Группа: Новичок
Сообщений: 1
Регистрация: 4-07-15
Пользователь №: 87 426

|
Привет. В Eclipse запускаю NiosII -> BSP Editor, окно BSP появляется, но не загружается до конца. Посоветовали поставить Cygwin, не помогло. Стоит Quartus 13.1. Есть идеи, как запустить?
|
|
|
|
|
Jul 9 2015, 03:06
|
Участник

Группа: Участник
Сообщений: 61
Регистрация: 2-02-08
Пользователь №: 34 687

|
Добрый день. Подскажите где можно взять готовый проект с ниосом, в котором настроена работа по DMA?
|
|
|
|
|
Jul 15 2015, 13:39
|
Гуру
     
Группа: Свой
Сообщений: 2 563
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954

|
Цитата(gosu-art @ May 8 2015, 08:15)  Ставите dual clock fifo. Avalon-ST sink to Avalon-MM read slave. Вытаскиваете Avalon-ST sink из Qsys на "улицу" с нужной разрядностью данных, подаете на sink_valid = adc_data_ready (либо "1" если дынные приходят по каждому такту). далее можно обойтись простым DMA без наворотов. Пришло прерывание от ФИФОшки завели DMA и перекачали все в SDRAM а как простой dma догадается что в FIFO данные не закончились, он же тупо вЫчитает на своей скорости всё что там есть на момент запуска, а потом будет нули читать изредка перемежаемые поступающими данными? и еще вопрос
при попытке добавить sgdma, qsys, сам себе противореча, утверждает что ширина данных у sink 8 бит, вне зависимости настроек, так и должно быть?
|
|
|
|
|
  |
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|