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

DmitryR

Свой
  • Публикаций

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

  • Посещение

Репутация

0 Обычный

Информация о DmitryR

  • Звание
    Профессионал
  • День рождения 23.02.1974

Контакты

  • Сайт
    http://
  • ICQ
    254349511

Информация

  • Город
    Siegen
  1. Драйвер отключается в BSP Edtor убиранием соответствующей галочки в закладке "Drivers".
  2. А это всё, там нет никакой инициализации. Записывается 1 в CSR, и он начинает работать.
  3. const float adc_vref = 3.0f; const volatile int* const adc_sample_array = (int*) ADC_SAMPLE_STORE_CSR_BASE; float adc_voltage; *(unsigned*)ADC_SEQUENCER_CSR_BASE = 1; adc_voltage = adc_vref * adc_sample_array[0] / 4095; Драйвер ADC выкинул, экономия 600 байт.
  4. На странице Linker Script в BSP Editor, в какую область памяти размещён BSS?
  5. Потому что неиспользуемые ресурсы продолжают жрать статику. Надо чип выбрать так, чтобы он был максимально заполнен.
  6. А что у вас конкретно делается на Verilog? Мы тоже традиционно делали ПЛИС+ARM, только ARM всегда стоял отдельно, и я сейчас начинаю понимать, что при современных процессорах ПЛИС в некоторых проектах больше не нужна. Например у TI есть процессоры (AM57xx), имеющие как ядро общего назначения, так и весьма мощный DSP (и плюс ещё несколько маленьких ядер для RTOS до кучи), и я прикинул, что когда не нужна быстрая реакция на события, этот DSP всё решит запросто.
  7. А теперь почитайте документацию на все используемые блоки.
  8. Цитата(Jenya7 @ Apr 3 2018, 11:47) Configuration mode specified as Remote but remote update block is not found in design Надо сделать так, чтобы он бы found. Вставить то есть. Ибо без него вы не сможете сделать даже программную перезагрузку, и тем более не сможете сказать чипу, что он должен загрузиться из второй партиции. Блок этот правда называется не Remote Update, а Dual Configuration или Dual Boot, в этом подстава.
  9. Цитата(Shaeto @ Mar 3 2018, 23:05) плохо что не отладить это дело нифига, USB Blaster II впадает в буйство Попробуйте первый бластер. У меня случалось, что дебаггер к ниосу через второй бластер вообще не подключался, а через первый - запросто.
  10. Я бы скорее поставил на то, что вы пишете что-то не то или не туда, в результате чего PLL теряет работоспособность и обратно залочится уже не может.
  11. Так после того, как PLL перенастроена, она вроде перестаёт что-либо генерировать. Её надо сбросить и дождаться, пока она залочится с новыми параметрами, или я не прав?
  12. Цитата(Dantist2k17 @ Jan 25 2018, 13:53) Сам не пробовал, ну а вдруг Объявите `define EDGE_CLK posedge ну или `define EDGE_CLK negedge и используйте always@(`EDGE_CLK my_clk) begin end Это несомненно возможно, только мне не это надо. Надо, чтобы это зависело от parameter. А в верилоге условная компиляци работает только от define (ifdef/ifndef), параметр как аргумент эти директивы принимать не могут.
  13. Цитата(Shivers @ Jan 25 2018, 12:55) Выходные данные DDR - те же два флопа с мультиплексором по выходу. Т.е. выходной поток двойной ширины (и работой по райзу) делится, но и передается наружу по двум фронтам - райзу и фоллу. Так что, все довольно просто. Я в итоге к этому решению и склоняюсь, но оно имеет массу недостатков: код получается совсем не такой уж и компактный, плюс непереносимость на другую архитектуру. Мы это переживём, так как работаем только с Альтерой, но чувство прекрасного это ранит.
  14. Цитата(Shivers @ Jan 25 2018, 11:47) Если же Вы хотите получить флоп, тактируемый передним фронтом, либо тот же флоп. но тактируемый задним фронтом (в зависимости от параметра компиляции) то используйте конструкцию generate, либо дефайны. Но на мой вкус, это уже ветвление архитектуры, и совмещать такое ветвление в одном файле - неправильно. Спасибо, мне это всё понятно. Но define - это устаревшая конструкция, а использование generate в данном случе приводит к удвоению объёма кода. Цитата(Shivers @ Jan 25 2018, 11:47) Но на мой вкус, это уже ветвление архитектуры, и совмещать такое ветвление в одном файле - неправильно. Возьмите хотя бы SPI - там в зависимости от параметров CPHA и CPOL меняются фронты, по которым происходят захват и выдача данных. Другое дело, что в реальных реализациях клок там чаще всего так или иначе эмулируется, но с точки зрения теории это уже детали.
  15. Цитата(RobFPGA @ Jan 25 2018, 11:16) А Вы пробовали в реальном проекте ? И для какого типа FPGA? Пробовал, но это не важно, так как я хочу написать универсальный библиотечный код, который будет гарантированно правильно компилироваться везде. Цитата(RobFPGA @ Jan 25 2018, 11:16) Как Вы думаете если напишете Кодmodule bla_bla_bla (.... always @(posedge clk) begin ... end always @(negedge clk) begin ... endКак синтезатор сделает Вам тригера с инверсными клоками? Никак, но этого и не требуется. Вы не поняли вопрос.