Balmer 0 25 сентября, 2020 Опубликовано 25 сентября, 2020 · Жалоба Что-ж, по советам сделал новый проект и все заработало. То-есть дело было не в коде, не в sdc, а в тонких настройках проекта. Не факт правда, что правильно все сделал. В новом проекте надо нажимать кнопку Program FPGA (в Xilinx SDK), а потом уже кнопку "Run system Debugger". Причем понял в чем был косяк в старом проекте. Там было design_1_wrapper_hw_platform_0 и design_1_wrapper_hw_platform_1 . По умолчанию выбирался не тот, что требуется wrapper. Если поставить правильный wrapper, то мой код на Verilog начинает работать. Я так и не понял почему их два и как выбирать в какой пишет Vivado. Ладно, спишем все на "хаос при тыканье кнопочек", который возникает у любого новичка. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ovn 0 28 сентября, 2020 Опубликовано 28 сентября, 2020 (изменено) · Жалоба Использовать AXI GPIO и код на Си #include <stdio.h> #include "xparameters.h" #include "xil_printf.h" #include "xgpio.h" int main() { XGpio leds; int status; volatile int Delay; const int LED_DELAY = 10000000; // initialize GPIO driver for LEDs and RGB LEDs // Both are connected to GPIO1 in the design as dual channel print("Initializing LEDs & RGB LEDs\n"); status = XGpio_Initialize(&leds, XPAR_AXI_GPIO_0_DEVICE_ID); if (status != XST_SUCCESS) { return XST_FAILURE; } // set the direction to outputs for both LEDs and RGB LEDs XGpio_SetDataDirection(&leds, 1, 0x0); // Channel 1 // set initial LED outputs to low XGpio_DiscreteWrite(&leds, 1, 0x0); while(1) { // Blink the LEDs (there are 4 of them) for (int i = 0; i < 16; i++) { XGpio_DiscreteWrite(&leds, 1, i); for (Delay = 0; Delay < LED_DELAY/2; Delay++); } XGpio_DiscreteClear(&leds, 1, 0xFF); } } Изменено 28 сентября, 2020 пользователем ovn Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Balmer 0 28 сентября, 2020 Опубликовано 28 сентября, 2020 · Жалоба 41 minutes ago, ovn said: Использовать AXI GPIO и код на Си Попробую объяснить. Есть у меня дисплейчики 480x320 с ILI9481 и параллельным дисплеем, которые я давно и успешно использую в разных железках. Вот буду прикручивать к Zynq. Естественно хочется FPGA часть задействовать и не напрягать ARM часть пересылкой картинок на дисплей. Пока научился использовать AXI Lite. На очереди AXI Stream и DMA. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ovn 0 28 сентября, 2020 Опубликовано 28 сентября, 2020 (изменено) · Жалоба Вот я экранчиком SSD1306 на Zynq 7000 управлял, всё на Си, FPGA там так и так будет использована. Изменено 28 сентября, 2020 пользователем ovn Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Balmer 0 28 сентября, 2020 Опубликовано 28 сентября, 2020 · Жалоба 21 minutes ago, ovn said: Вот я экранчиком SSD1306 на Zynq 7000 Для того, чтобы управлять таким экранчиком достаточно STM32F0, хотя лично мне больше нравятся дисплейчики от старых телефонов для мелочевки. Zynq нужен для быстрых ADC, гигабитного Ethernet и других плюшек. Смысл использовать Zynq в вышеозвученным вами режиме? Под какую задачу? Если использовать как ARM процессор, то лично мне больше нравится либо STM32H750 либо Allwinner V3S. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ovn 0 28 сентября, 2020 Опубликовано 28 сентября, 2020 · Жалоба 3 минуты назад, Balmer сказал: Для того, чтобы управлять таким экранчиком достаточно STM32F0, хотя лично мне больше нравятся дисплейчики от старых телефонов для мелочевки. Zynq нужен для быстрых ADC, гигабитного Ethernet и других плюшек. Смысл использовать Zynq в вышеозвученным вами режиме? Под какую задачу? Если использовать как ARM процессор, то лично мне больше нравится либо STM32H750 либо Allwinner V3S. Учебная задача, отработка SPI и I2C, просто посложнее чем на STM32 и т.п., библиотек нет. Вы вопрос задали, как моргнуть светодиодом на zynq 7000, я ответил. В Си лезть придётся, zynq это больше SoC а не ПЛИС. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Balmer 0 28 сентября, 2020 Опубликовано 28 сентября, 2020 · Жалоба 26 minutes ago, ovn said: Учебная задача, отработка SPI и I2C, просто посложнее чем на STM32 и т.п., библиотек нет. Вы вопрос задали, как моргнуть светодиодом на zynq 7000, я ответил. В Си лезть придётся, zynq это больше SoC а не ПЛИС. Да, отлично всё. Вопрос только другой был. См. первый пост: Купил отладку - стандартные сэмплы на ней запускаются отлично (Blink LED, Ethernet, Mem test). Но вот застопорился на совсем простой вещи - управлении ножкой FPGA из PL части. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ovn 0 28 сентября, 2020 Опубликовано 28 сентября, 2020 (изменено) · Жалоба 1 час назад, Balmer сказал: Да, отлично всё. Вопрос только другой был. См. первый пост: Купил отладку - стандартные сэмплы на ней запускаются отлично (Blink LED, Ethernet, Mem test). Но вот застопорился на совсем простой вещи - управлении ножкой FPGA из PL части. https://www.jianshu.com/p/b83c663ecaaa Вот пример пошагово светодиодами моргают на верилоге в zynq 7000, главное выводы назначить, запись во флешь можно упустить, запуская из под JTAG. Изменено 28 сентября, 2020 пользователем ovn Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Nick_K 0 28 сентября, 2020 Опубликовано 28 сентября, 2020 · Жалоба Встретился как-то эмбеддед программист и ФПГА девелопер, и начался у них холивар, не на жизнь, а на КЗ... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Balmer 0 28 сентября, 2020 Опубликовано 28 сентября, 2020 · Жалоба 1 hour ago, ovn said: Вот пример пошагово светодиодами моргают на верилоге в zynq 7000, главное выводы назначить, запись во флешь можно упустить, запуская из под JTAG. Дык это, работает у меня всё. Три дня уже как работает. См сообщение в начале второй странице. "Что-ж, по советам сделал новый проект и все заработало. " Я жеж уже и на Verilog помигал, и AXI lite воспользовался для общения FPGA<>ARM. Набил шишек при создании IP блоков (кстати так и не нашел, где ревизия меняется). Всё в Vivado достаточно разумно и понятно. Теперь надо научиться замерять максимальную частоту дизайна и радоваться, насколько Zynq быстрее, чем Cyclone IV работает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Nick_K 0 28 сентября, 2020 Опубликовано 28 сентября, 2020 · Жалоба 1 hour ago, Balmer said: (кстати так и не нашел, где ревизия меняется) Лучше не менять. Она если нужно автоматом сама изменится, когда переходите на Edit in IP Packager через интерфейс BD. Иначе только заново создавать. Я как-то пробовал вручную поменять, так сломал весь IP блок Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ovn 0 28 сентября, 2020 Опубликовано 28 сентября, 2020 · Жалоба ну и в качестве офтопа мигать можно мимо драйвера AXI GPIO обращаясь непосредственно к регистрам блока https://stackoverflow.com/questions/29576636/use-of-xil-out32-in-xilinx-sdk Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться