Jump to content

    

Nickolas

Участник
  • Content Count

    19
  • Joined

  • Last visited

Community Reputation

0 Обычный

About Nickolas

  • Rank
    Участник
  • Birthday 01/08/1981

Контакты

  • Сайт
    Array
  • ICQ
    Array

Информация

  • Город
    Array

Recent Profile Visitors

2016 profile views
  1. Можно выводить не всю матрицу, а по строкам. for r_idx = 1 : size(matrix, 1) if ~isnan(matrix(r_idx, 1) fprintf(fid, '%4u %2u %2u %2u %2u %7.3f\n', matrix(row_idx, :)); else fprintf(fid, ' %2u %2u %2u %2u %7.3f\n', matrix(row_idx, :)); end end
  2. Если уже пользуетесь, то, наверное, у вас есть какой-то цикл для вывода данных в файл. Тогда можно в этом цикле проверить элементы, которые могут быть NaN, фунцкией isnan(). В зависимости от результата проверки выбрать аргументы для fprintf.
  3. В Матлабе есть функция fprinf, аналогичная такой же функции в Си. Можно выводить в текстовый файл в любом виде.
  4. Использую пример advanced_boot_copier для загрузки NIOS из внешнего процессора. После того, как сделан .elf запускаю в скрипте две команды #!/bin/sh ./make_flash_image_script.sh hello_world.elf bin2flash --input=hello_world.elf.flash.bin \ --output=hello_world.flash \ --location=0x00240000 Скрипты make_flash_image_script.sh и bin2flash из примера. Изменил только скрипт make_header.pl. Закомментировал в нем строку print { $out_FH } $bin_header; чтобы в выходной файл не записывался ненужный заголовок. В результате получаю файл hello_world.elf.flash.bin с содержимым в формате Length - Addr - Data.
  5. Так вот вам выше и посоветовали сделать блок для Qsys. Подробнее можете почитать у Альтеры QII51022 2013.11.4 Creating Qsys Components.
  6. Я бы не делал весь блок частью Qsys, потому что при изменении в блоке придется перегенерировать систему, пересобирать софт Ниоса. Проще сделать в Qsys мост наружу, т.е. вывести сигналы Avalon-MM за пределы системы, а в блоке, обрабатывающем данные с АЦП, реализовать контроллер Avalon-MM Slave.
  7. Может быть поможет использование псевдонимов? alias clk_copy : std_logic is clk_original;
  8. Не совсем понятно, какой сигнал вам нужно смотреть, но если SignalTap работает на тактовой частоте источника сигнала, а сам сигнал медленно меняется (например медленная синусоида с выхода АЦП), то захватываемые SignalTap'ом отсчеты можно проредить. Для этого на вкладке Setup окна SignalTap в правой части переключите Storage Qualifier Type с Continuous на Conditional. Появится столбец Storage Qualifier, в котором нужно будет указать условие захвата отсчета (например, фронт или единичное значение какого-нибудь строба готовности данных). Подробнее можно почитать в Quartus Handbook vol.3 глава 13 Design Debugging Using the SignalTap II LogicAnalyzer.
  9. Идеология хорошо расписана вот здесь http://embedders.org/content/timequest-dly...hast-1-vvedenie. Нужно будет только адаптировать для Xilinx.
  10. Это другое средство. Logic Analyzer Interface позволяет определить тестовые ноги, к которым снаружи подключается логический анализатор, и выводить на них набор заранее заданных сигналов. Причем набор можно менять по JTAG без перепрошивки. Подробнее можно почитать в третьем томе Quartus Handbook - раздел In-System Debugging Using External Logic Analyzers.
  11. Если на тестовых ногах хочется наблюдать сигналы вживую (с помощью светодиодов, осциллографа, логического анализатора), то можно посмотреть в сторону Logic Analyzer Interface (для Altera). Можно будет и внутренние сигналы смотреть, не вытаскивая их на верхний уровень.
  12. Порты UART_DOUT и UART_INT скорее всего являются выходами. Если они не нужны, то можно их не писать в port map, или явно написать UART_DOUT => open, UART_INT => open
  13. Мне тут понадобилось подключить шину данных процессора NIOS к блокам, реализованным на VHDL. В Qsys добавил компонент Avalon-MM Pipeline Bridge. У него Avalon Memory Mapped Slave подключил к data master процессора, а MM Master экспортировал. Для 32-разрядных данных и 16-разрядного адреса получился такой набор сигналов avalon_bridge_waitrequest : in std_logic; avalon_bridge_readdata : in std_logic_vector(31 downto 0); avalon_bridge_readdatavalid : in std_logic; avalon_bridge_burstcount : out std_logic_vector(0 downto 0); avalon_bridge_writedata : out std_logic_vector(31 downto 0); avalon_bridge_address : out std_logic_vector(15 downto 0); avalon_bridge_write : out std_logic; avalon_bridge_read : out std_logic; avalon_bridge_byteenable : out std_logic_vector(3 downto 0); avalon_bridge_debugaccess : out std_logic; Обращения из NIOS делаются так: IOWR(AVALON_BRIDGE_BASE, addr, wr_dat); rd_dat = IORD(AVALON_BRIDGE_BASE, addr);
  14. cioma, вручную запускать как-то не хочется, хотя, конечно, вариант. vadimuzzz, в том-то и дело, что настройки могут отличаться для разных проектов. Поэтому глобально их менять не хотелось бы. Пока вижу выход в добавлении в скрипт запуска моделсима строчки замены файла настроек текущего каталога тем, который хранится в укромном месте. И ручками обновлять файл в этом месте, в случае изменения настроек.
  15. Столкнулся с такой особенностью связки Quartus + Modelsim. При каждом запуске симуляции (из меню Tools - EDA Simulation Tool) переписывается файл инициализации modelsim.ini в каталоге simulation/modelsim проекта. Соответственно все настройки Моделсима живут только до следующего перезапуска симуляции. Может быть есть способ заставить Quartus не затирать файл?