Vitis: Hello world program using MicroBlaze processor on Artix 7 (AC701)

Поделиться
HTML-код
  • Опубликовано: 3 дек 2024

Комментарии • 63

  • @Avionics2
    @Avionics2 2 года назад +3

    Thank you for your concise tutorial. I tested it on my BASYS3 and it worked!. at first I had problem running the bitstream then I read a comment below and I re-run the clock wizard and I selected single clock and then it worked!. Great step by step tutorial and very helpful for me as a newbie to FPGA. I am now subscribed and looking forward to more videos 🙂

    • @TopicsInControlSystems
      @TopicsInControlSystems Год назад

      Good to hear! I ordered a Basys3 and while waiting for arrival I'm working with Vivado 2022.2 and 2018.3. I hope to get the Microblaze working on one of these. I'm using the Webpack version.

  • @SciHeartJourney
    @SciHeartJourney 2 года назад +1

    Thank you for walking us through Vitis.

  • @TopicsInControlSystems
    @TopicsInControlSystems Год назад +2

    Excellent tutorial. I watched your video on the SDK also. I have Vivado 2022.2 and 2018.3 (Webpack versions) and hope to get one of those running the MicroBlaze code.

  • @gopalkrishna6042
    @gopalkrishna6042 3 года назад +1

    thank you very much. so nicely explained

  • @EngineerAnandu
    @EngineerAnandu 7 месяцев назад +2

    ethupolathe more vids cheyy bro.powli.

  • @prydin
    @prydin 6 месяцев назад

    Very nicely explained. You rock!

  • @Jonathan-ru9zl
    @Jonathan-ru9zl 2 года назад +1

    Hello :) I have a design with microblaze and my ip (arty s7) , and i want to implement FreeRTOS OS in vitis 2020.2. Unfortunately Vitis scream that he can't generate bsp files. Any suggestions?

  • @taisenzhuang2302
    @taisenzhuang2302 2 года назад

    Thank you, very good video and very helpful!!

  • @tomaszhou3405
    @tomaszhou3405 3 года назад

    Hi, As I follow your steps to implement this. But Hello world messages didn't show on the UART port. Does urat port need to open manually?

  • @marwanal-yoonus280
    @marwanal-yoonus280 2 месяца назад

    Dear friend
    Please, I have a problem during reading the status of an output switch on Zybo Z7-10.
    I use Vitis to program the Zynq processor with Gpio connected to a slid switch. I make the switch (input2) status as a condition as shown in the program below if (D == 1) ;
    The following program works only when the input2 signal that was connected to Gpio IP starts from ("1") but the program does not work when input2 signal starts from ("0").
    //////////
    while (1)
    { D = XGpio_DiscreteRead(&input2, 1); // input2 from a slide switch
    if (D == 1)
    { sum_all = XGpio_DiscreteRead(&input, 1); // input is a 32-bit data
    printf("%x
    " , sum_all);
    sleep (1); }
    else
    { XGpio_DiscreteWrite(&output, 1, 0); // output is a LED
    printf("No_Signal
    ");
    sleep (1); }
    }
    /////////////
    i.e. the program works only when I change input2 from "1" to "0" but does not work when the input2 start changes from "0" to "1".

  • @優さん-n7m
    @優さん-n7m 2 года назад

    Can't you run a terminal from within the Vitis?

  • @Jonathan-ru9zl
    @Jonathan-ru9zl Год назад

    Hello. I am using Arty-A7 Digilent board. after i run the program i get: Error while launching program:
    Cannot reset MicroBlaze #0. Cannot stop MicroBlaze. MicroBlaze is held in reset

  • @vishnusatheesh878
    @vishnusatheesh878 3 года назад

    Hi @Let's Learn
    I was using bittware board, after adding the clocking circuit, the error resolved.
    But currently after creating the hello world, not getting serial logs. I am using Linux, ttyUSB1 is present. What might be the issue?

  • @vigneshsekar3171
    @vigneshsekar3171 2 года назад

    Hello !
    I could generate the Bitstream Successfully, I could also Export the Hardware and generate the Vitis Projects as per the steps mentioned in your video. I'm using TeraTerm as well. But on my TeraTerm window, I'm just getting a random UART Character. The Baudrate is 9600. Please help with the same.

  • @danielsolis5529
    @danielsolis5529 4 года назад +1

    Hi, i really like your videos, they're very helpful. I'd like to know if you know how to use the Artix Spi bus to communicate with external composants using MicroBlaze processor. I don't know how to start with that. Thank you so much!

    • @letslearn39
      @letslearn39  4 года назад +2

      I have used a SPI flash with microblaze on artix. It did work. You can try adding AXI Quad SPI module in your block design and then address the peripheral using the axi address range assigned. Remember to configure the axi quad spi IP as per your peripheral.

    • @letslearn39
      @letslearn39  4 года назад +1

      Thank you for the feed back

    • @SciHeartJourney
      @SciHeartJourney 2 года назад

      I have just the thing for you.
      Download their PMOD IPs. One of them is for the OLED.
      You need to add this to your project repository.
      When you install the JA connector you'll see many options. You will want to load the OLED IP. It's an SPI device.
      When you export to SDK, you'll see example code to run it.
      From that you can teach yourself everything you need to use the SPI bus. You can ignore the code you don't need for the display.

  • @ivankouemo8293
    @ivankouemo8293 3 года назад

    Hello @Let's Learm,
    did you add any constraint file or xdc file in your program? Cause your video looks like compiling successfully without physical constraints.

    • @letslearn39
      @letslearn39  3 года назад +1

      Since I am using AC701 board from Xilinx in this demo, the board constraint files are automatically taken by vivado. You need not add anything manually. If you are using a custom board, you will have to add the constraints manually.

    • @ivankouemo8293
      @ivankouemo8293 3 года назад

      ​@@letslearn39 I simulate exactly the same project like you and launch it on Vitis. However, after building:
      1. The Platform, it receive to many errors informing me, they are too many Header files like Xil_printf.h, xil_io.h, ...etc missing in the include folder of the platform under bsp folder. I found all those headers files and add it the include folder. I rebuilt the platform and it works. I've the process like this each time, i'll like to create a platform for a new xsa.file. Now, my questions: Did you face to the same situation before uploading the video?
      2. The application, many failures have occurred:
      -> undefined reference to 'out byte'. Solution: for this i had to comment the line xil_printf("Hello World");
      -> undefined reference to 'microblaze_enable_dcache'. Solution: i had to comment also the line in platform.c
      -> undefined reference to 'microblaze_enable_icache'. Solution: i had to comment also the line in platform.c
      -> undefined reference to '_interrupt_handler' in function '_vector_interrupt'. ==> At this stage found no solution up to now :-( . Do you please have any idea, how i can solve this issue?
      Thanks in advance!

    • @letslearn39
      @letslearn39  3 года назад

      @@ivankouemo8293 For Question 1, I did not face this issue. It compiled without any error. I think you missed something in the hardware configuration itself. Based on the hardware configuration only bsp will made. Did you add uart, enable the interrupt controller in MicroBlaze and connect the interrupt lines?

    • @ivankouemo8293
      @ivankouemo8293 3 года назад +1

      @@letslearn39Thanks for your feedback. I could identify myself the problem. It was a matter of wrong BSP choosed and set in the repositories.

    • @alexanderbalkoni2170
      @alexanderbalkoni2170 3 года назад

      Hello @@ivankouemo8293, Could you please help with a more detailed explanation on your methodology. I am struggling with the same error a few days now.

  • @Jonathan-ru9zl
    @Jonathan-ru9zl 2 года назад

    Hi! my design consists of microblaze mcs .what are the requirements to build upon it freertos os? (sdk 2019.1)

    • @letslearn39
      @letslearn39  2 года назад +1

      For the simple hello world program, internal BRAM memory will be sufficient.. but for bigger programs, you may have to add external Ram interface using MIG.
      This video might be helpful
      ruclips.net/video/QhTYsysSkB0/видео.html

    • @Jonathan-ru9zl
      @Jonathan-ru9zl 2 года назад

      @@letslearn39 Thanks. My design doesn't work on AXI, and i understand that one need an AXI interrupt controller for FreeRTOS os to work. Any suggestions?

    • @letslearn39
      @letslearn39  2 года назад +1

      @@Jonathan-ru9zl A timer and interrupt is necessary for FreeRTOS. I haven't worked on Microblaze design without AXI interface. Not sure how to use FreeRTOS without it.

    • @Jonathan-ru9zl
      @Jonathan-ru9zl 2 года назад

      @@letslearn39 can u see block design . i sent u via mail

  • @vijaydattu709
    @vijaydattu709 3 года назад

    Hello sir,thanks for the video,how to work with lwip tcp server client application on same machine vitis in qemu emulator?if possible please tell us the procedure.

  • @skabdulhaibasha3263
    @skabdulhaibasha3263 15 дней назад

    you didn't show pin constraints assigned.

    • @letslearn39
      @letslearn39  15 дней назад

      @@skabdulhaibasha3263 if you are using standard evaluation board, then the pin assignment is part of the board configuration. If you are using custom board, then you need to define those in your own XDC file

  • @curtisnotestine3134
    @curtisnotestine3134 4 года назад

    Hi, I tried your procedure on a Nexsys A7 board with an Artix-7 FPGA. The generate bitstream failed due to errors regarding the differential clock and reset_0. How did you work around this?

    • @letslearn39
      @letslearn39  4 года назад +2

      Please check whether Nexsys board has a differential clock on the board. IF its not available you can reconfigure the Clocking Wizard IP in your design to take a single ended input. Connection automation should automatically map the board clock to this single ended input. Similar could be the problem with reset. You can manually map it to any of the switches on the board. Be sure about the polarity of the reset line.

    • @curtisnotestine3134
      @curtisnotestine3134 4 года назад +1

      @@letslearn39 Thank you, that helped. It was also necessary to delete the extra reset_0 pin and wire; then I connected the on-chip reset with the correct polarity and it worked.

  • @alexanderbalkoni2170
    @alexanderbalkoni2170 3 года назад

    Hello @Let's Learn
    Can you please tell me if you have added any repositories on either Vivado or Vitis ?

    • @letslearn39
      @letslearn39  3 года назад

      No. It was not necessary add anything for this demo.

    • @alexanderbalkoni2170
      @alexanderbalkoni2170 3 года назад

      @@letslearn39 Thank you for your response, I have the same problem as so I am trying to figure out whats wrong

    • @letslearn39
      @letslearn39  3 года назад

      @@alexanderbalkoni2170 Can you share the exact error message along with a screenshot. You can mail to letslearnembedded@gmail.com

    • @alexanderbalkoni2170
      @alexanderbalkoni2170 3 года назад

      @@letslearn39 When i build the platform project it cannot find a bunch of header files(cache.h, mb_interface.h, bsp_config.h, xil_printf.h, xil_types.h etc), when I included those files myself in both the Standalone and the Includes I stopped getting the errors on the platform project but I could not use any of this included functions on my application project later on(For example i could not use enablecache(), disablecache(), xil_printf() etc). Also i found out that when open the .xsa file there is no Makefile on the libsrc/standalone_v7_2 of the bsp. I tried making the Makefile myself but i kept getting some errors. I did everything according to your tutorial and i have also tried other tutorials which did practically the same thing.

  • @banothbalu92
    @banothbalu92 3 года назад

    Super very helpful

  • @spacial7777
    @spacial7777 3 года назад

    Can you write hello world in C++ and convert it to hdl without adding any IPs to FPGA

    • @letslearn39
      @letslearn39  3 года назад

      Thats what Vivado HLS does. But i havent tried it though.

  • @akhiljoseph3237
    @akhiljoseph3237 4 года назад

    could you do videos on how to fix timing violations

    • @letslearn39
      @letslearn39  4 года назад

      Hi akhil, I do not have enough experience in timing closure to make a tutorial.

  • @akshayn6472
    @akshayn6472 Год назад +1

    are you malayali?

  • @subashiniparamanandan4178
    @subashiniparamanandan4178 3 года назад

    i am getting error with input output pins . My bitstream generation failed

  • @carloss.2548
    @carloss.2548 3 года назад

    In my case appears the beginning message "Vitis IDE launch failed" Please, What should i do?

    • @letslearn39
      @letslearn39  3 года назад

      Is there any other error message? Are you able to open Vivado? Are you using Windows or Linux?

    • @carloss.2548
      @carloss.2548 3 года назад

      @@letslearn39 I use Windows 10 and Vivado goes good. The problem starts when I go to tools/launch...

    • @letslearn39
      @letslearn39  3 года назад

      @@carloss.2548 Did you try launching Vitis directly from windows menu (instead of using Vivado "Tools" menu). If you are facing problem even in that mode, then your Vitis installation is not proper.

    • @carloss.2548
      @carloss.2548 3 года назад +2

      @@letslearn39 Thank you so much! I tried re-installing and choosing the option Vitis (which includes Vivado also). Now goes well. 😎👏Thank you! :)

    • @vejeke
      @vejeke 3 года назад +1

      I'm facing the same issue. You don't need to reinstall everything, you can simply upgrade it from within Vivado by clicking on "Help" -> "Add Design Tools or Devices" 👍

  • @kikoo8795
    @kikoo8795 3 года назад

    During Export step, the error message comes out like below. (Up to Generation Bit stream was successful. with 2020.2 Ver. Win10)
    I followed exactly same as this video. The only difference is the destination directory for the Export. What do you think is wrong?
    ----------------------------------
    [Common 17-70] Application Exception: Unable to get BIT file from implementation run. Please ensure implementation has been run all the way through Bitstream generation. Aborting write_hw_platform..

    • @kikoo8795
      @kikoo8795 3 года назад

      There was an error in generation bit stream!!

    • @letslearn39
      @letslearn39  3 года назад

      This shows that the bit steam generation was not complete. You can check the messages window to know the specific error which resulted in the failure of generation of bit stream

    • @kikoo8795
      @kikoo8795 3 года назад

      @@letslearn39
      Thanks a lot. I am checking the message.

  • @jajajaj666
    @jajajaj666 Год назад