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

bugdesigner

Участник
  • Постов

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

  • Посещение

Весь контент bugdesigner


  1. У меня была похожая проблема. Помогла установка переменных tmp и temp на каталог в корне(C:/tmp) По умолчанию винда создает временный каталог в C:/Users/... Сильно не копал, но, вероятно, генератору корок не нравятся сильно длинные пути.
  2. MAX240/570 перепаивал термофеном десятки раз - ни один не пострадал. Ищите проблему в дизайне. PS: частота 5MHz для MAX II - это уж точно не проблема.
  3. Вот есть статья на хабре, А лучше внимательно изучить материалы с rocketboards.org, мне сильно помгло.
  4. У циклонов нет flash, а прошивка хранится либо в конфигурационном ПЗУ (типа epcsxxx) либо "заливается" внешним контроллером в режиме passive serial. В любом случае прошивку "слить" можно, тк циклон не имеет средств защиты от копирования.
  5. 10G хлопотное дело - его ведь еще чем-то принять нужно. Может PCI express будет более уместен в данном приложении?
  6. Попробуйте еще триггер Шмидта включить на этом пине. Если фронт сигнала клока "завален" это может помочь. А частота клока у Вас какая? И что за источник клока? Может у Вас согласование неправильно сделано (или совсем не сделано)?
  7. А каким образом у Вас плата подключена к ПК - напрямую или через свитч? Чем Вы принимаете пакеты, какой программой? Эта программа принимает какое-либо число нормальных пакетов или они совсем не доходят? Может проблема в софте? И еще вопрос - после того, как трафик пропал, плата пингается? Тут причин много может быть. Посмотрите трафик анализатором, например wireshark - многое прояснится. Обратите внимание на icmp пакеты.
  8. Мне rocketboards.org сильно помог в своё время. Там есть альтеровские семинары с примерами.
  9. Такое не сработает, если отключен вывод RESET (RSTDISBL). В этом случае - только HV программатор спасет. tiny2313 можно легко "вылечить" AVR Dragon-ом, если таковой имеется.
  10. Там пишут, что Nios II EDS бесплатный, а корку покупать нужно. Если я не ошибаюсь, при покупке подписки на квартус, лицензия на Nios входит в комплект.
  11. У Altera кора triple speed ethernet (TSE) всегда платная была. Входит в Embedded IP Suite вместе с Nios и еще некоторыми корками. 10G ethernet тоже за деньги. Такая политика, что поделать :( Посмотрите на opencores.org, 1000-100-10 ethernet там точно есть.
  12. Схема для Cyclone следующая - пины MSEL[x] нужно установить согласно документации в режим Passive Serial Programming - пин DATA0 - последовательные данные (MOSI) - пин DCLK - клок данных (SCLK) - пин nCONFIG - вход управления режимом конфигурирования - поключите к любому GPIO MK в режиме выхода - пины nSTATUS и CONF_DONE - выходные сигналы - подключите к входам MK. Эти сигналы требуют подтяжки к VCCIO. Алгоритм следующий: Настраиваем SPI: LSB First, запись по положителтному фронту клока. Я использую частоту клока 10МГц, хотя можно и выше (см. документацию). Можно соорудить и программный SPI - "ногодрыгом". DCLK = 0; nCONFIG = 0; Delay(1uS); nCONFIG = 1; // начало конфигурирования читаем nSTATUS и ждем пока он не станет =1, теперь можно посылать данные заливаем данные через SPI ( используем данные файла в формате .rbf ) время от времени проверяем nSTATUS - если он стал=0 - это ошибка, конфигурирование нужно начать с начала. когда все данные будут отправлены, проверяем CONF_DONE - если он =1, значит все прошло успешно, если нет - произошла ошибка. Этот алгоритм использовался мной многократно на циклонах 1,3 и 4. Должен работать и на 5-м, тк судя по документации, ничего не изменилось. Если есть вопросы - спрашивайте.
  13. Признаю свою ошибку. :cranky: Всегда считал, что так нельзя делать. Делать можно, только какой в этом смысл?
  14. Чтоб спорить дальше, нужен конкретный пример. Так нельзя: always @(posedge clk) begin a<=a+1; a<=a+2; end
  15. и получим ошибку синтеза типа "Can't resolve multiple constant drivers for net..." Можно сделать только одно присваивание в блоке.
  16. Реализовать на автомате IP стек за считанные часы? Вы серьезно ?
  17. Как я понял, Вам нужно умножить частоту генератора А на 1000, используя другой генератор. Может можно посмотреть на задачу под другим углом и сформировать пачку из 1000 импульсов на каждый фронт согнала 1 Гц? При этом, частота заплнения должна быть гарантировано выше или равна 1000Гц. У этого метода есть недостаток - джиттер фазы, тк моментальное значение частоты будет выше требуемой, но в среднем - получим желанное умножение частоты А на 1000.
  18. Можно не заморачиваться. Главное, чтоб на момент начала конфигурирования питание установилось.
  19. Вариантов много. Зависит от задачи. А любая задача может решаться несколькими способами. В случае MSK в ПЛИС можно пересинхронизировать и подготовить данные, порезать поток на блоки по 2 бита, получить значения I и Q, затем пропустить их через фильтры, чтоб ограничить спектр. Затем можно подать значения IQ на ЦАПы, а полученные аналоговые сигналы на квадратурный смеситель. Можно в ПЛИС реализовать DDS с частотой ПЧ или несущей (если быстродействие позволяет), сделать перемножение-суммирование внутри ПЛИС и на ЦАП получить ПЧ (или готовый сигнал). Можно... можно... Общего шаблона нет, берете ТЗ и решаете, как реализовать, стремясь получить оптимальный результат.
  20. Набираете в google "802.11ac wifi sdio module" и выбираете тот, который Вам больше подходит. По поводу pci-e. Если будете использовать Cyclone V, то нужно выбирать из семейства SX/ST, имеющих на борту аппаратную кору pci-e. Посмотрите на цену чипов, прежде чем браться за разработку. Можно, конечно, поискать какой-нибудь bridge типа PCIE-Local Bus, но такое решение не на много дешевле выйдет.
  21. А может проще купить "швейцарский ножичек" - microtik hap ac lite или что-либо подобное. Делать такой роутер на soc-fpga будет экономически не выгодно, разве только ради изучения технологии? PS: Ну, если уж делать, то кмк, лучше взять какой-нибудь wifi модуль с sdio - будет дешевле и интерфейс проще реализовать
  22. Рассматривайте сигнал wren как сигнал разрешения записи. Запись происходит по переднему фронту клока и занимает один такт. Все точно, как описано в документации. Те Вы устанавливаете адрес, данные и wren, и при приходе переднего фронта данные будут записаны.
  23. Я использую NativeLink, как описано здесь. Может Вам поможет.
  24. Я использую ядро 4.1.22-ltsi+ отсюда: https://github.com/altera-opensource/linux-socfpga.git config.txt Собирал все (ядро и модуль) кросс-компилятором arm-none-eabi-gcc версии 4.8.4 на Debian 8.1. По поводу fpga manager не могу ничего сказать, я его не использую, тк мой проект использует DMA через fpga2sdram и поэтому битстрим загружается бутлоадером u-boot. С ethernet проблем не обнаружено. Что касается SPI. Я "завернул" сигналы SPI0 master в FPGA, чтоб потом вывести их на разъем DE0-Nanao. Такой метод дополнительно позволяет получить контроль над 4 выводами SS. Я не использовал драйверов SPI из ядра, а написал свой модуль - так мне удобней. Сейчас у меня через SPI управляется 3 устройства - 2 DAC и DDS. DAC получает 16-битные команды, а DDS 32-битные. Вот пример кода для 32 бит static void __iomem *SPI0; // ---8<---- from module init request_mem_region(SPIM0_ADDR, SPIM0_LEN, DRV_NAME); SPI0 = ioremap(SPIM0_ADDR, SPIM0_LEN); // ---8<---- // initialize SPI0 iowrite32(0, SPI0+SPIM_SPIENR_OFF); // Disable SPI0 iowrite32(0x1CF, SPI0+SPIM_CTRLR0_OFF); // TxOnly, scpol=1 scph=1 length=16 bit iowrite32(0, SPI0+SPIM_CTRLR1_OFF); iowrite32(0, SPI0+SPIM_SER_OFF); // Disable All SS iowrite32(100, SPI0+SPIM_BAUDR_OFF); // set baudrate iowrite32(1, SPI0+SPIM_SPIENR_OFF); // Enable SPI0 // sending data iowrite16((value >> 16) & 0xFFFF, SPI0+SPIM_DR_OFF); iowrite16(value & 0xFFFF, SPI0+SPIM_DR_OFF); iowrite32(2, SPI0+SPIM_SER_OFF); // Enable SS1 udelay(5); while(ioread32(SPI0+SPIM_SR_OFF) & 1); //wait for busy==0 iowrite32(0, SPI0+SPIM_SER_OFF); // Disable All SS Используемые константы. // SPIMx registers #define SPIM0_ADDR 0xFFF00000 #define SPIM0_LEN 0x1000 #define SPIM1_ADDR 0xFFF01000 #define SPIM1_LEN 0x1000 // #define SPIM_CTRLR0_OFF 0x00 #define SPIM_CTRLR1_OFF 0x04 #define SPIM_SPIENR_OFF 0x08 #define SPIM_MWCR_OFF 0x0C #define SPIM_SER_OFF 0x10 #define SPIM_BAUDR_OFF 0x14 #define SPIM_TXFTLR_OFF 0x18 #define SPIM_RXFTLR_OFF 0x1C #define SPIM_TXFLR_OFF 0x20 #define SPIM_RXFLR_OFF 0x24 #define SPIM_SR_OFF 0x28 #define SPIM_IMR_OFF 0x2C #define SPIM_ISR_OFF 0x30 #define SPIM_RISR_OFF 0x34 #define SPIM_TXOICR_OFF 0x38 #define SPIM_RXOICR_OFF 0x3C #define SPIM_RXUICR_OFF 0x40 #define SPIM_ICR_OFF 0x48 #define SPIM_DMACR_OFF 0x4C #define SPIM_DMATDLR_OFF 0x50 #define SPIM_DMARDLR_OFF 0x54 #define SPIM_DR_OFF 0x60 Подробно о регистрах и режимах написано в документе Cyclone V HPS TRM. Если есть какие-либр вопросы - пишите. Важный момент: при любом изменении в настройках HPS (которые вы делаете в Qsys) нужно пересобирать preloader! Те запускать bsp-editor, потом make. Иначе перефирия может работать некорректно или совсем не работать.
  25. Параметры компонентов подробно описаны в документе Quartus II Handbook volume 1. Смотрите раздел "Creating Qsys Components" , подраздел "Specify parameters in qsys components editor". Там имеется примерчик TCL описания параметров. Возможно это то, что Вы ищите.
×
×
  • Создать...