
Set up the account, install the correct Movado version (recommended 2018.4, up to 2019.1), prepare supported devices, add a third-party board, install the hardware chamber, and test the robot’s connection.
Learn how to download and install Xilinx tools: create a tilings account, access the download tab, choose 2018.3 or 2018.2, and run the Windows or Linux installer with proper signing.
Walk through installation part 2 by choosing required options, installing the 2018.3 version, enabling Typekit and tilings certificate, and configuring seven-series hardware with licenses.
Install the 2018.3 toolset, then download the Xilinx license file from the license section, load the Webpack license in the license window, and confirm installation was successful to proceed.
Use the open hardware manager to access hardware tasks and identify the device. Then select private or public network, allow access, and verify the Bolt is identified to start work.
The agenda introduces the embedded system design field with a simple helloworld console example, guiding students through an end-to-end process and exploring project types and when to constrain.
Configure the toolchain by creating a new project, building a microblaze-based block design, connecting clock, reset, memory, and peripherals, then validate, synthesize, and generate HDL and bitstream for FPGA development.
Configure the Xilinx MicroBlaze toolchain by exporting hardware with bitstream, create a C-based application in the SDK, and program the FPGA via a serial terminal at baud rate 9600.
Explore five project types for embedded system design with Xilinx MicroBlaze: example project, expanded existing design, new planning project, synthesis project, and ideal project.
Navigate the flow navigator and project manager to configure language and device settings, and explore IP-integrated options and text-based or schematic-based block design for embedded systems.
Identify the key project structure in Xilinx embedded projects, including source, block design, DCL, wrapper, and SDK folders, and the roles of the runs, synthesis, and implementation files.
Learn to automate Xilinx Vivado workflows with TCL scripts, creating a reusable block design skeleton, adding peripherals, wiring clocks and resets, and validating before generation.
Export hardware into an sdk and inspect default and added files, including hardware specification and peripheral drivers, to prepare and build a complex application on an fpga.
Create an embedded SDK project by naming the application, choosing a standalone or other option, selecting a processor and target language (C or C++), and using drivers, templates, and samples.
Explore three reporting mechanisms for embedded systems, comparing console output with different print options for constant strings, fixed-point values, and floating-point values, while highlighting memory usage.
Explore Xilinx gpio driver patterns in the microblaze sdk, initialize fixed and instance structures, and implement multi-instance and dual channel gpio access with read/write demonstrations.
this lecture explains fundamentals of xil drivers, from simple to complex configurations, standard initialization formats, and how to use APIs and data structures to configure peripherals like GPI and GPO.
Master the driver initialization workflow: use lookup_config to retrieve the device ID, populate instance and config structures, and invoke CFD initialize with the three required arguments.
Declare and initialize status, instance, and config structures, perform lookup config, and call cfg initialize; verify status equals success and report device initialization is successful via the GPIO driver.
Explore using a gpio ip with minimal configuration to drive leds on p1 by building a basic block design, configuring a 16-bit channel, and generating the bitstream.
Create and run a GPIO-based C application for a Xilinx MicroBlaze, initializing GPIO, configuring P2 as an output, and writing data to LEDs to blink them.
Configure GPO IP and GPI IP to read data from 16 VIP switches, map ports to pins, and generate the bitstream to finalize the block design.
Configure and initialize a GPIO peripheral in the Xilinx MicroBlaze SDK, set the GPIO as input, read a 16-bit switch state every second, and display the value on the console.
Learn to configure multiple GPIO IP blocks in a single design: one reads switch states, the other drives an LCD, with validation and bitstream generation.
Create and initialize multiple independent GPIO IP instances with separate config and instance structures, set outputs and inputs, read switch states, and continuously log values to verify initialization and operation.
Explore using multiple GPIO channels for dual channel operation, reading a switch on channel one and writing to an LCD on channel two, with automated connections and design validation.
Configure a two-channel gpio project on a Xilinx MicroBlaze system, initializing the gpo, setting channel directions, reading from channel one, writing to channel two, and debugging via lcd output.
Explore a three-part agenda for embedded system design with Xilinx Microblaze and SDK, covering initialization, debugging, data sending and receiving, and operating mode configurations.
Learn to design and validate embedded systems using Xilinx Microblaze and SDK by configuring AXI uartlite P1, building a block design, generating a wrapper, and using lower-level APIs for peripherals.
Initialize the AXI Uartlite driver with lookup config and device structures, then send 11 bytes from a hello world buffer and wait for completion in pool mode.
Receive bytes with AXI Uartlite, buffer them, and track the byte count until the target is reached. Print the complete data to a serial console for verification.
Plan to use three uartlite instances to debug and validate data transfer between slave interfaces, then generate an HDL wrapper and finalize the block design.
Learn to configure and run two uartlite instances by creating separate instance structures, initializing device 1 and 2, and exchanging data in both directions until transmission completes.
Explore configuring UART16550 on the Xilinx Microblaze platform, including driver setup, base address, clock frequency, and border; enable loopback, adjust options, and verify operation in polling mode.
Explore configuring complex timer variants and compare them with simpler options. Learn to set up timers, including one-shot timers, reload behavior, and mode selection.
Learn to write drivers for the AXI timer and build an application using its API to generate events, profile execution, and compare timers, including watchdog timer.
Configure the AXI timer (XTmrCtr) in the Xilinx MicroBlaze SDK by initializing with the device ID, choosing count up or down, and managing reload, start, and status checks.
Configure the AXI timer P3 for a 1–5 second delay by computing the countdown value from a 100 MHz clock, setting down-count mode, and starting the timer on the FPGA.
Analyze a timer counter to confirm downward counting, read the current counter value, apply 200 ms delays, print updated values, and observe the counter reach five seconds during operation.
Operate timer in auto-reload mode for continuous five-second intervals, or remove auto-reload and rearm the counter using the reset timer API.
Configure and use a time-based watchdog timer with the Xilinx Microblaze software development kit by adding the timer, generating hardware, and initializing, starting, and monitoring expiration.
Learn to configure and operate a watchdog timer on Xilinx MicroBlaze: initialize, start and stop, use polling mode, perform self-tests, check expiration, and manually restart after five seconds.
Explore profiling techniques to measure execution time of a single function or all functions in an embedded application, using built-in capabilities in Xilinx Microblaze with the SDK.
Profile with the AXI Timer P1 in a MicroBlaze design, expanding memory to 128 gb for printer, set a 100 MHz clock, add a timer, and validate before bitstream generation.
Profile function execution on a Xilinx microblaze system using the AXI timer P2 with SDK, measuring nanoseconds and microseconds, configuring DMA and timer initialization, and interpreting clock cycles.
Configure a timer with interrupt enable linked to the interrupt controller and allocate RAM for profiling data, then validate, generate bitstream, and build an SDK-based profiling app with GPO.
Enable profiling in BSP and compile flags, select a timer, build the project, then configure the SDK system debugger to sample at a set frequency and memory addresses.
Explore memory resource strategies for embedded design on Xilinx FPGA: choose between small memory resources and RAM for frequent data access, processing, and updates, with demonstrations and example code.
Explore byte addressable and word addressable memory, where each byte or word has a unique address and word size depends on cpu architecture.
Explore how AXI BRAM P1 adds small memory for fast, frequent data access in a Xilinx Microblaze SDK design, and read and write via pointer matter and Sea Lion Library.
Explore initializing and using AXI BRAM in a Microblaze project, employing pointers to read and write 50 elements at a base address with pointer arithmetic and console output.
Replace a library function to enable AXI BRAM access with XIL_IO drivers, performing 16-, 32-, and 64-bit read and write operations via address-based transfers.
Learn how to configure and connect external DDR memory for a Xilinx MicroBlaze design, build a memory interface, and validate read/write data with a pointer-based example.
Master hardware and software debugging techniques for embedded design, analyzing signals, breakpoints, and memory with Xilinx tools.
Add an integrated logic analyzer (ila) to the Xilinx MicroBlaze design, configure the IP, connect nets for debugging, and validate the design.
Launch the sdk and add an ila in design, program the device, set up a trigger, and analyze transactions and interface signals to validate data paths.
Debug with a serial terminal to write and read memory data, declare variables, verify memory writes, and locate the write position in a Xilinx MicroBlaze SDK environment.
Master debugging embedded software by using breakpoints and a memory viewer to inspect variables, switch between c and cpp perspectives, and step through hardware-executed code in the microblaze sdk.
Learn to use the Xilinx software command line tool (xsct) to read and write memory, set addresses, work with files, and debug embedded systems efficiently.
Explore fundamentals of the driver for handling high-priority interrupts, configure different functions correctly, and demonstrate applying these concepts to a GPIO interrupt scenario.
Explore the fundamentals of interrupt handling in a microblaze system, including initializing the interrupt controller, enabling exception handlers, assigning unique interrupt IDs, and routing signals via switching logic.
Configure GPIO with interrupts in a Xilinx MicroBlaze design using the GPIO IP and interrupt controller. Validate the design and generate the initial wrapper for hardware integration.
Explore configuring interrupts for a gpio in an embedded system by initializing gpio and the interrupt controller, registering handlers, enabling interrupts, and reading pin values in real hardware.
Design and validate embedded timer-driven blinking on an IED by configuring an AXI timer with interrupts in a Microblaze and SDK workflow.
Configure GPO and GPI, initialize the AXI timer interrupt controller, and set up the timer interrupt handler to generate a blinking pattern via a GPIO output.
Explore how to implement and validate a watchdog timer interrupt on a Xilinx MicroBlaze system, covering initialization, device lookup, interrupt setup, self-test, and repeated watchdog resets in software.
Explore building and integrating IP cores with Xilinx Microblaze, focusing on interface types, handshaking, and lifecycle of slimline, slingblade, and stream interfaces.
Build a custom hardware accelerator and interface it through a light interface. Configure an IP core, modify read/write logic, and validate with a microblaze system.
Design and implement a slave lite interface without I/O ports for an FPGA, manipulating registers and byte oriented memory to perform addition and multiplication, and verify hardware accelerator results.
Add a pool to the slave lite, create and integrate a new IP, map 16-bit outputs to the slave interface, and verify and repackage the IP.
Configure the slave lite interface with I/O ports P2 by selecting level two settings, copying a template, replacing references, and fixing all pins before generating the bitstream.
Design a slave lite interface with i/o ports p3 and program a blinking led pattern using a base address and a two-second delay in the Xilinx MicroBlaze SDK.
Implement an AXI stream interface by coordinating valid, ready, and last signals between master and slave, transmitting data bursts and signaling completion.
Build an AXI stream interface for a streaming IP in a Xilinx Microblaze project. Implement valid and ready handshakes and connect clock, reset, and data signals.
Initialize the AXI stream interface driver with a config and instance structure, then transmit a 32-bit word and wait for transmission complete without interrupts. Verify all LEDs turn on.
A faster Reconfigurable system makes FPGA a prominent choice for a large set of applications, but Hardware alone is incomplete without smart software synchronizing all the events fruitfully to achieve the desired Application. This course covers fundamentals of Popular Xilinx drivers viz. UART, AXI Timers, UART16550, AXI GPIO, AXI BRAM, etc. The course also illustrates the usage of the AXI interrupt controller for handling Interrupts. Also to felicitate incorporation of Hardware accelerators with Microblaze based design few examples on building Custom AXI Peripherals are also included. Software and Hardware Debugging, Profiling fundamentals are demonstrated with Microblaze to felicitate performance measurement.
The Microblaze is an FPGA-based Soft Processor capable of executing single instruction per cycle with few exceptions. The MicroBlaze interconnect is reconfigurable capable of communicating with a large set of peripherals to fit most of the medium-scale applications. It allows configuration of cache size, pipeline depth, peripherals, memory management unit, and bus interface suitable to fit different application requirements. As systems complexities are growing day by day, Microblaze will play central role in the non-Zynq based FPGA families whereas it will be the best light-weight alternative working in tandem with the Zynq hard processor for Zynq and Ultrascale based FPGA families.