Jump to content
  • 1

Microblaze issues for a beginner


macellan

Question

Hello everyone,

For a while I am thinking to play with embedded processor of my cmod a7 fpga board and eventually started. I followed the example designs shared on reference designs in digilent pages and also searched the net for other examples. I would like to ask a few questions regarding to some points that I' m having trouble to understand. 

First of all (maybe easier), I followed this ref example using vivado 2019.1 (SDK, Not Vitis), but it didn' t work for me. For example, I got more options at step 4.11 than given at tutorial. I didn' t think it is an important issue but in the end, I didn' t get any response from the buttons contrary to the tutorial??

Second one, almost all tutorials follow different steps and not clear for me to understand why? For example one of them starts with locating microblaze, run connection automation and insert some other components/IPs later... For some other examples, it starts with locating buttons, leds and later on microblaze... They look doing the same thing but how they decide on the order of placing components and running connection automation etc?? 

I' m pretty sure that  there are detailed explanations on the net but I feel like lost in documents and some support explaning critical points(?) could be very hepful to put things in order.

Best regards

Link to comment
Share on other sites

4 answers to this question

Recommended Posts

Hi,

>> but I feel like lost in documents

Welcome to FPGAs. This is pretty much the name of the game (but it also makes the struggle worthwhile - if it were easy, everybody would do it ? ).
As a general direction, a solid (basic) tutorial is good but don't expect to be led by the hand all the way. The constant version changes make this quite difficult (good news: it means there is technological progress ... well at least in theory but the guys from the marketing department said so and they'll surely know ...).

More specific directions: Have a look at Microblaze MCS. It's fairly simple - set up the most basic system with some BRAM (=memory "internal" to the FPGA fabric) and one UART. Once you've got that printing "Hello World" - which is mostly a question of baud rates and not mixing Tx/Rx pins, you can add features one by one and the sky is the limit.
Well, at least until the little girl next door pulls out her Raspberry Pi, running four cores at 10x the clock frequency - don't complain no one told you: by absolute standards, the performance of any softcore CPU is pathetic, compared to a regular ASIC CPU on the same technology node. So eventually you'll have to move into FPGA territory, or it makes little sense except as a learning exercise.

Link to comment
Share on other sites

Hi @macellan,

Could you attach a picture of your block design? The description of your steps sound correct (and the running connection automation can add some more items depending on when individual pieces of the block diagram was added and when connection automation was run).

As for when different pieces were added to the block diagram, it can make a difference, but really only during the Connection Automation and Block Automation when you tell Vivado what sort of connections you would like it to make. Otherwise, the 2018.2 guide should work fine for 2019.1.

Thanks,
JColvin

Link to comment
Share on other sites

Dear @xc6lx45

thank you for detailed comments. The main purpose of me in here is some curiosity and some necessity. My current system includes an FPGA for main measurement and an arduino for some other controls and measurements (temperature meas., start/stop a pump etc. ). This was more practical for me than a complete vhdl design. So I thought to carry the uController inside the FPGA and build a more compact system. Also this is going to be a new experience. Additionally I was not aware of the speed issue, thank you for that, although speed is not a matter for now.  I' ll look at microblaze docs as well.

Thank you. 

 

 

Link to comment
Share on other sites

Dear @JColvin

I made it work. I don' t have all steps registered right now but the pushbutton decleration part has a missing step. Since we have a reset button we need to specify it. I know that from other example designs. So when adding pushbutton, I only add button1 because button0 is dedicated as a reset button. I' ll try that again and can update this answer, as well. 

Thank you. 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...