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

vik0

Свой
  • Постов

    381
  • Зарегистрирован

Сообщения, опубликованные vik0


  1. Хочу оценить время за кот. процессор посчитает FFT и сколько ему нужно для этого памяти.

    Проц BF533, хочу использовать библиотечную функцию cfft_fr16().

    Да, еще же надо массив twiddle_table[] сформировать. Сколько это займет?

    AD для многих библиотечных функций в их исходниках приводят время исполнения.

    Для Вашего случая в файле ...\Blackfin\lib\src\libdsp\cfft_fr16.asm в конце комментария в начале файла видим:

      Cycle count    : Using the cycle accurate ADSP-BF532 simulator without any
                       workarounds for silicon anomalies enabled. The cycle count
                       includes the cost of calling the function and argument 
                       passing.
    
                       Size FFT     Cycle Count 
                                    no scaling - static scaling - dynamic scaling*
    
                              8         276            266            289
                             16         406            393            452
                            128        2196           2174           2956
                            256        4446           4422           6239
                           1024       19692          19661          28906
    
                       * cycle counts for dynamic scaling are dependent on
                         the input data
                         [for a 1024 point FFT:  28891 (always scale)
                                                 28922 (never scale)]

    Да, еще же надо массив twiddle_table[] сформировать. Сколько это займет?
    Цитата из help-a VDSP:

    A twiddle table of a given size will contain constant values, and so typically such a table would be generated only once during the development cycle of an application and would thereafter be preserved by the application in some suitable form.
  2. Правда для данного случая не совсем подходит - срр файлы есть, а нужного нету......
    А я у себя не нашел. Впрочем, не важно.

    Моделя...
    У меня все нормально. Проверял и в LineSim-e и в BoardSim-e. Версия HL - 7.7 b.385.

    И еще:

    IBISCHK4 V4.2.2
    
    Checking ppc440epx.ibs for IBIS 4.2 Compatibility...
    
    NOTE (line  199) - Pulldown Minimum data is non-monotonic
    NOTE (line  200) - Pulldown Typical data is non-monotonic
    NOTE (line  201) - Pulldown Maximum data is non-monotonic
    NOTE (line  240) - Pullup Typical data is non-monotonic
    NOTE (line  240) - Pullup Minimum data is non-monotonic
    NOTE (line  248) - Pullup Maximum data is non-monotonic
    NOTE (line  802) - Pulldown Minimum data is non-monotonic
    NOTE (line  803) - Pulldown Typical data is non-monotonic
    NOTE (line  804) - Pulldown Maximum data is non-monotonic
    NOTE (line  843) - Pullup Typical data is non-monotonic
    NOTE (line  843) - Pullup Minimum data is non-monotonic
    NOTE (line  851) - Pullup Maximum data is non-monotonic
    NOTE (line 1427) - Pulldown Minimum data is non-monotonic
    NOTE (line 1428) - Pulldown Typical data is non-monotonic
    NOTE (line 1429) - Pulldown Maximum data is non-monotonic
    NOTE (line 1468) - Pullup Minimum data is non-monotonic
    NOTE (line 1475) - Pullup Maximum data is non-monotonic
    NOTE (line 1479) - Pullup Typical data is non-monotonic
    NOTE (line 1932) - Pulldown Minimum data is non-monotonic
    NOTE (line 1933) - Pulldown Typical data is non-monotonic
    NOTE (line 1934) - Pulldown Maximum data is non-monotonic
    NOTE (line 1973) - Pullup Minimum data is non-monotonic
    NOTE (line 1980) - Pullup Maximum data is non-monotonic
    NOTE (line 1984) - Pullup Typical data is non-monotonic
    NOTE (line 2469) - Pulldown Minimum data is non-monotonic
    NOTE (line 2471) - Pulldown Typical data is non-monotonic
    NOTE (line 2473) - Pulldown Maximum data is non-monotonic
    NOTE (line 2524) - Pullup Minimum data is non-monotonic
    NOTE (line 2527) - Pullup Typical data is non-monotonic
    NOTE (line 2528) - Pullup Maximum data is non-monotonic
    NOTE (line 3124) - Pulldown Minimum data is non-monotonic
    NOTE (line 3126) - Pulldown Typical data is non-monotonic
    NOTE (line 3128) - Pulldown Maximum data is non-monotonic
    NOTE (line 3179) - Pullup Minimum data is non-monotonic
    NOTE (line 3182) - Pullup Typical data is non-monotonic
    NOTE (line 3183) - Pullup Maximum data is non-monotonic
    WARNING - Combined Pulldown for Model: ddr_out Maximum data is non-monotonic
    WARNING - Combined Pullup for Model: ddr_out Maximum data is non-monotonic
    WARNING - Combined Pulldown for Model: ddr_io Maximum data is non-monotonic
    WARNING - Combined Pullup for Model: ddr_io Maximum data is non-monotonic
    
    Errors  : 0
    Warnings: 4
    

    IMHO, у Вас проблема в чем-то другом.

  3. не могу подключить к системе adsz-usb-ice

    ...

    установлен VDSP 3.5 2006 Upd, лампочка enable горит, что делать?

    ...

    Если эмулятор действительно Rohs, то у VDSP до определенного момента с ними были проблемы.

    Попробуйте версию посвежее (5.0 и 4.5 с update 6 работают точно).

  4. Есть тут вопрос - наваял я модельку - вроде всё правльно, всё заасигнено, начинается симуляция - и тут вдруг:
    Вы бы может модельку выложили, легче разобраться будет.

     

    Такого файла я не нашёл в инсталяции вообсче.. хотя есть штук 6 других...
    А Вы хотели в инсталяции исходники найти? :)
  5. Разрабатываю плату на которой будут Blackfin (1 шт) и Sharc (1 шт). Рассматриваю идею объединить их в JTAG цепочку. Собственно КАК сделать вопросов нет. Интересует другое.

     

    1. А надо ли вообще это делать? Т.е. даст ли это какие либо преимущества? Насколько удобно потом будет разрабатывать и отлаживать ПО в VisualDSP?

    2. Согласно EE-68, в случае системы с >1 устройством, тактовый сигнал необходимо разделять через high-fanout clock buffer. Насколько это критично в системе с только двумя устройствами? Можно ли обойтись без буфера? Если нет, то какие есть аналоги у упомянутого IDT49FCT3805E?

  6. почему вот так работает

    ....

    Перечитайте предыдущий ответ.

     

    У Вас в первом случае вычисление проихводится в числах с плавающей точкой, так как переменная t объявлена как double (и, соответственно стандарту, число 10000 при вычислении приводится к типу double).

    Во втором случае у Вас и summa [j] (по коду этого не видно, но я уверен на 99.9999%), и 10000 - целые числа. Поэтому вычисление производится в целых числах. И получившийся результат, как уже было сказано, <1 округляется в 0.

  7.  

    В release notes упоминается поддержка семейства Blackfin 51x. НО. Ни сайт AD ни Google ничего об этих процессорах не знает.. :05:

    Ни у кого нет какой либо информации об этом семействе?

  8. Если цену заломят и 10 штук заставят брать, придется потом продавать, так или иначе. Но главное - выход есть.
    А не хотите попробовать sample у производителя запросить? Может и пришлют :rolleyes:
  9. Непонятно откуда левые значения. Достаточно написать

    #include <sysreg.h>

    static inline unsigned long sclock(void)

    {

    volatile unsigned long clk;

    clk = sysreg_read(reg_CYCLES);

    return clk;

    }

     

    Здесь использован только один регистр (на самом деле их два, но для замера быстродействия достаточно одгого), но это регистр аппаратный и он ниразу не глючит.

    Дык clock() делает тоже самое...

     

    На старте программы регистр сбрасывается ресетом, потом прежде чем стать на брекпойнт в начале Вашей программы выполняется стартап - вот он и прыгнул. Если где ещё прыгает, так это от отладчика житаг
    Стартап на 4 секунды? :07:

    По-моему (но могу и ошибаться - проверить не на чем), jtag счетчик тактов останавливает.

  10. Я понял, что компилятор не хочет делать для этих выводов (подключенных к MIG) применять IOSTANDARD равный SSTL18_II (что я делаю в файле временных и топологических ограничений). Но в описании на мой девайс прямо указанно, что необходимо использовать именно SSTL18_II.

    Может все-таки DIFF_SSTL18_II ?

  11. У BF53x такие регистры есть. У двухядерника тоже должно быть.
    У 561-го тоже есть.

     

    В VDSP, насколько помню, кое-какие средства для этого имеются (макросы, в доке описаны).

    Если конкретизировать, то

    START_CYCLE_COUNT
    STOP_CYCLE_COUNT

    - одиночное измерение и

    CYCLES_INIT
    CYCLES_START
    CYCLES_STOP

    - измерение со статистикой (максимальное, минимальное и среднее время исполнения).

     

    Эти макросы описаны в <cycles.h> и определенны при наличии символа препроцессора DO_CYCLE_COUNTS

     

    PS. Есть еще функция clock(), возвращающая значение этих регистров.

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