The book introduces basic programming of ARM Cortex-M cores in assembly and C at the register level, and the fundamentals of embedded system design. It presents basic concepts such as data representations (integer, fixed-point, floating-point), assembly instructions, stack, and implementing basic controls and functions of C language at the assembly level. It covers advanced topics such as interrupts, mixing C and assembly, direct memory access (DMA), system timers (SysTick), multi-tasking, SIMD instructions for digital signal processing (DSP), and instruction encoding/decoding. The book also gives detailed examples of interfacing peripherals, such as general purpose I/O (GPIO), LCD driver, keypad interaction, stepper motor control, PWM output, timer input capture, DAC, ADC, real-time clock (RTC), and serial communication (USART, I2C, SPI, and USB).
The book introduces basic programming of ARM Cortex-M cores in assembly and C at the register level, and the fundamentals of embedded system design. It presents basic concepts such as data representations (integer, fixed-point, floating-point), assembly instructions, stack, and implementing basic controls and functions of C language at the assembly level. It covers advanced topics such as interrupts, mixing C and assembly, direct memory access (DMA), system timers (SysTick), multi-tasking, SIMD instructions for digital signal processing (DSP), and instruction encoding/decoding. The book also gives detailed examples of interfacing peripherals, such as general purpose I/O (GPIO), LCD driver, keypad interaction, stepper motor control, PWM output, timer input capture, DAC, ADC, real-time clock (RTC), and serial communication (USART, I2C, SPI, and USB).
Develop solid FPGA programming skills in SystemVerilog and VHDL by crafting practical projects - VGA controller, microprocessor, calculator, keyboard - and amplify your know-how with insider industry knowledge, all in one handbook.
Purchase of the print or Kindle book includes a free eBook in PDF format
Key Features:
- Explore a wide range of FPGA applications, grasp their versatility, and master Xilinx FPGA tool flow
- Master the intricacies of SystemVerilog and VHDL to develop robust and efficient hardware circuits
- Refine skills with CPU, VGA, and calculator projects for practical expertise in real-world applications
Book Description:
In today's tech-driven world, Field Programmable Gate Arrays (FPGAs) are foundation of many modern systems. Transforming ideas into reality demands a deep dive into FPGA architecture, tools, and design principles. This FPGA book is your essential companion to FPGA development with SystemVerilog and VHDL, tailored for both beginners and those looking to expand their knowledge.
In this edition, you will gain versatility in FPGA design, opening doors to diverse opportunities and projects in the field. Go beyond theory with structured, hands-on projects, starting from simple LED control and progressing to advanced microcontroller applications, highly sought after in today's FPGA job market. You will go from basic Boolean logic circuits to a resource-optimized calculator, showcasing your hardware design prowess. Elevate your knowledge by designing a VGA controller, demonstrating your ability to synthesize complex hardware systems. Use this handbook as your FPGA development guide, mastering intricacies, igniting creativity, and emerging with the expertise to craft hardware circuits using SystemVerilog and VHDL. This isn't just another technical manual; it's your exhilarating journey to master both theory and practice, accelerating your FPGA design skills to soaring new heights.
Grab your copy today and start this exciting journey!
What You Will Learn:
- Understand the FPGA architecture and its implementation
- Get to grips with writing SystemVerilog and VHDL RTL
- Make FPGA projects using SystemVerilog and VHDL programming
- Work with computer math basics, parallelism, and pipelining
- Explore the advanced topics of AXI and keyboard interfacing with PS/2
- Discover how you can implement a VGA interface in your projects
- Explore the PMOD connectors-SPI and UART, using Nexys A7 board
- Implement an embedded microcontroller in the FPGA
Who this book is for:
This FPGA design book is for embedded system developers, engineers, and programmers who want to learn FPGA design using SystemVerilog or VHDL programming from scratch. FPGA designers looking to gain hands-on experience with real-world projects will also find this book useful. Whether you are new to FPGA development or seeking to enhance your skills, this book provides a solid foundation and practical experience in FPGA design.
Table of Contents
- Introduction to FPGA Architectures
- FPGA Programming Languages and Tools
- Combinational Logic
- Counting Button Presses
- Let's Build a Calculator
- FPGA Resources and How to Use Them
- Math, Parallelism, and Pipelined Design
- Introduction to AXI
- Lots of data? MIG and DDR2
- A Better Way to Display - VGA
- Bringing It All Together
- Using the PMOD Connectors - SPI and UART
- Embedded Microcontrollers Using the Xilinx MicroBlaze
- Advanced Topics
The big push on cloud computing and AI has shifted a focus to big server farms, high-end silicon processors, and a different set of programming processes. The real key to the success of these technologies is all the little processors and MCU platforms that manage the much-needed data flow. With two basic driving questions, Starter Guide for STM32Cube(TM) and Eclipse ThreadX(R) dives into the STM32Cube tools from STMicroelectronics and demonstrates how ThreadX, along with the Azure IoT C SDK, can connect and send data to the cloud. There are 17 chapters with 16 hands-on projects. Topics include:
ARM 64-Bit Assembly Language carefully explains the concepts of assembly language programming, slowly building from simple examples towards complex programming on bare-metal embedded systems. Considerable emphasis is put on showing how to develop good, structured assembly code. More advanced topics such as fixed and floating point mathematics, optimization and the ARM VFP and NEON extensions are also covered. This book will help readers understand representations of, and arithmetic operations on, integral and real numbers in any base, giving them a basic understanding of processor architectures, instruction sets, and more.
This resource provides an ideal introduction to the principles of 64-bit ARM assembly programming for both the professional engineer and computer engineering student, as well as the dedicated hobbyist with a 64-bit ARM-based computer.
From smart sensors to cloud integration and the world of TinyML, this book is your comprehensive guide to the IoT ecosystem, using the ESP32 and industry-standard tools and technologies
Key Features:
Book Description:
ESP32, a low-cost and energy-efficient system-on-a-chip microcontroller, has become the backbone of numerous WiFi devices, fueling IoT innovation. This book offers a holistic approach to building an IoT system from the ground up, ensuring secure data communication from sensors to cloud platforms, empowering you to create production-grade IoT solutions using the ESP32 SoC.
Starting with IoT essentials supported by real-world use cases, this book takes you through the entire process of constructing an IoT device using ESP32. Each chapter introduces new dimensions to your IoT applications, covering sensor communication, the integration of prominent IoT libraries like LittleFS and LVGL, connectivity options via WiFi, security measures, cloud integration, and the visualization of real-time data using Grafana. Furthermore, a dedicated section explores AI/ML for embedded systems, guiding you through building and running ML applications with tinyML and ESP32-S3 to create state-of-the-art embedded products.
This book adopts a hands-on approach, ensuring you can start building IoT solutions right from the beginning. Towards the end of the book, you'll tackle a full-scale Smart Home project, applying all the techniques you've learned in real-time.
Embark on your journey to build secure, production-grade IoT systems with ESP32 today!
What You Will Learn:
Who this book is for:
If you are an embedded software developer, an IoT software architect or developer, a technologist, or anyone who wants to learn how to use ESP32 and its applications, this book is for you.
A basic understanding of embedded systems, programming, networking, and cloud computing concepts is necessary to get started with the book.
Table of Contents:
Build a strong foundation in designing and implementing real-time systems with the help of practical examples
Key Features
Book Description
A real-time operating system (RTOS) is used to develop systems that respond to events within strict timelines. Real-time embedded systems have applications in various industries, from automotive and aerospace through to laboratory test equipment and consumer electronics. These systems provide consistent and reliable timing and are designed to run without intervention for years.
This microcontrollers book starts by introducing you to the concept of RTOS and compares some other alternative methods for achieving real-time performance. Once you've understood the fundamentals, such as tasks, queues, mutexes, and semaphores, you'll learn what to look for when selecting a microcontroller and development environment. By working through examples that use an STM32F7 Nucleo board, the STM32CubeIDE, and SEGGER debug tools, including SEGGER J-Link, Ozone, and SystemView, you'll gain an understanding of preemptive scheduling policies and task communication. The book will then help you develop highly efficient low-level drivers and analyze their real-time performance and CPU utilization. Finally, you'll cover tips for troubleshooting and be able to take your new-found skills to the next level.
By the end of this book, you'll have built on your embedded system skills and will be able to create real-time systems using microcontrollers and FreeRTOS.
What you will learn
Who this book is for
This book is for embedded engineers, students, or anyone interested in learning the complete RTOS feature set with embedded devices. A basic understanding of the C programming language and embedded systems or microcontrollers will be helpful.
The book introduces basic programming of ARM Cortex chips in assembly language and the fundamentals of embedded system design. It presents data representations, assembly instruction syntax, floating-point operations, SIMD instructions, implementing fundamental controls of C language at the assembly level, and instruction encoding and decoding. The book also covers many advanced components of embedded systems, such as software and hardware interrupts, general purpose I/O, LCD driver, keypad interaction, real-time clock, stepper motor control, PWM input and output, digital input capture, direct memory access (DMA), digital and analog conversion, serial communication (USART, I2C, SPI, and USB), and digital signal processing.