Inflearn brand logo image
Inflearn brand logo image
Inflearn brand logo image
Hardware

/

Semiconductor

Verilog FPGA Program 4 (MCU Porting, Arty A7-35T)

How to port and use free MCU IP into an FPGA.

(5.0) 1 reviews

58 learners

  • ihil
fpga
xilinx
verilog
MCU
FPGA

What you will learn!

  • FPGA MCU Porting and Usage

  • Bootloader Structure

  • Configuring MCU Memory in FPGA

FPGA MCU porting,
Level up by creating with my skills! ✨

Opportunities for FPGA developer growth,
MCU Porting 🔦

I've been working with FPGAs for about 20 years, and most of my projects involve porting an MCU into an FPGA. Porting an MCU into an FPGA offers many advantages. It eliminates the need for a separate external MCU, and the design can be separated into an MCU and a logic component.

I've ported MCUs to most FPGAs (Spartan, Artix, Kintex, Virtex). Knowing the basic architecture can be applied to most FPGAs. This lecture details this process. It explains how to port MCU IP into an FPGA to implement a System-on-Chip (SOC) . I hope this lecture will help developers who program FPGAs take their skills to the next level.

Wait! ✋ What is the MCU?

This refers to a microcontroller unit (MCU). It's a device that integrates a processor, memory, and input/output devices within a single chip. Programming allows for control and computational tasks. It's used in a wide range of applications, from automobiles to home appliances and toys. Programming is required to implement specific functions.

This lecture provides source code so that you can directly implement all the contents using a practice board (Arty A7-35T(100T), (Digilent)). The provided source code is ready for immediate use in the field . I have been applying this solution to all FPGAs for the past 15 years. The lecture is based on Xilinx's Arty A7 board, but it can be applied to all Xilinx FPGAs . If you do not understand any part of the lecture, please post a question through the Inflearn community or the cafe I run, and I will answer it.

📢 Please make sure to check before taking the class!

  • This course is a text lecture in electronic format. All course participants will receive free MCU IP and all source files included in the course.
  • Lecture materials can be downloaded from 'Section 0 - Material Sharing Link - Attachments'.

I recommend this to these people 🙋‍♀️

Anyone with experience designing FPGAs with Verilog

Anyone who has tried FW using C language


Learn things like this ✨

There's a lot of content, but if you understand it step by step and internalize it, you'll be able to apply it to most future FPGA-related tasks. 💪

System Block and
Understanding the Bootloader

MCU Memory and
LOGIC implementation

Application FW
Implementation and Application

For FW download
Windows Program Implementation

Want to know the detailed curriculum? 1. Overview (5) 2HW Configuration(8) 2.1 Method using USB-JTAG (8)2.2 Method using JTAG-HS3(HS2)(9) 2.3 RS-232 Connector(10) 2.4 Serial Flash Connection(10) 3System Block(11) 3.1 Bootloader ROM(11) 3.2Serial Flash(14) 3.3Ext_Mem_SRAM(External Memory SRAM)(14) 3.4FW_SRAM(14) 3.5 Int_Mem (Internal Memory)(14) 3.6MCU Core(15) 3.7LOGIC(15) 3.8 Register Map(15) 4 Memory Configuration(16) 4.1Ext_Mem_SRAM (External Memory SRAM)(15) 4.2FW_SRAM(20) 4.3 Bootloader ROM(21) 5Clock Configuration(23) 6Bootloader(26) 6.1 Sequence(26) 6.2Memory Map(27) 6.3 Code Implementation(29) 6.3.1 Project Creation(29) Creating 6.4coe file(35) 6.5 Bootloader Source(36) 6.5.1main()(36) 6.5.2update_data()(38) Implementing 7LOGIC(40) 7.1mcu_top(40) 7.1.1mcu_core(40) 7.1.2addr_map.v(42) 7.1.3mcs_reg(45) 7.2pwm_top(45) 8Application fw(46) 8.1 Project Creation(46) 8.2 Project Build(51) 8.3 Source Analysis(52) 8.3.1main1.c(52) 8.3.2ax_pwm.h(55) 8.3.3ax_string.h(55) 8.3.4al8051_func.h(56) 8.3.5isp_reg.h(56) 9Windows Application Program (Win_App)(57) 9.1 Screen Layout(57) 9.2App_fw download sequence(58) 9.3pwm control protocol(62) 9.3.1write pwm frequency(62) 9.3.2write pwm duty(62) 9.3.3read pwm frequency(63) 9.3.4read pwm duty(63) 10FPGA Configuration file download(64) 10.1 Project Environment Setup(64) 10.2 Configuration file download(64) 11 Result Confirmation(68) 11.1 PWM Verification(68) 11.2 Button Confirmation(69) 12UART Baudrate Change(70) 12.1 UART Baudrate Configuration(70) 12.2 Bootloader fw Change(72) 12.3 Bootloader ROM Regeneration(73) 12.4mcuProtingTop.v modification(75) 12.5Application fw modification(77) 12.6 Result Verification(78) 13Using I2C in Application fw(81) 13.1I2C Master Controller(81) 13.1.1I2CTP – Timer Period Register(81) 13.1.2I2CCR – Control and Status Register(83) 13.1.3I2CSA – Slave Address Register(83) 13.1.4I2CBUF – Receiver and Transmitter Register(84) 13.2 Logic Configuration(84) 13.2.1AL8051EX(84) 13.2.2mcu_core.v(85) 13.2.3mcu_top.v(86) 13.2.4mcuPortingTop.v(87) 13.2.5mcuPortingTop.xdc(87) 13.3Application fw(88) 13.4 Result Verification(94) 14W5500 High-Speed Interface Implementation (95) 14.1 System Block (96) 14.2 Logic Implementation (96) 14.2.1clock (96) 14.2.2fw_sram (98) 14.2.3External memory (ext_sram) (99) 14.2.4spi_sram (100) 14.2.5Memory Map (101) 14.2.6 addr_map.v modification (102) 14.2.7 Bootloader fw Modification (103) 14.2.8 mcs_reg Module Modification (104) 14.3W5500 SPI Timing (105) 14.4 SPI Interface Implementation (106) 14.4.1 Code Implementation (106) 14.4.2 simulation (115) 14.5 Top Module Implementation (122) 14.6 Application fw Implementation (126) 14.6.1 Using External Flash Memory (125) 14.6.2 Project Configuration (127) 14.6.3flash api (129) 14.6.4w5500 api (130) 14.6.5main1.c (134)14.6.6Build (137) 14.7Windows Application Program (138) 14.8 Result Verification (140) 14.8.1 Bitstream Download (143) 14.8.2 PC Network Environment Configuration (143) 14.8.3 Application fw Download (144) 14.8.4 Measuring Transmission Time (148) 14.9 Conclusion (151)15 References (152)16 Revision History (153)

Introducing the Knowledge Sharer ✒️

History

I've worked as a developer for over 20 years at both large and small companies, and I currently run a small business. I've developed an ISP (Image Signal Processing) ASIC for CCTV, and I've developed numerous FPGA-based products, including OLED inspection equipment and DAQ (Data Acquisition System). Beyond FPGAs, I have extensive experience in software development (STM32, PIC32, AVR, ATMEGA, etc.), circuit design, and Windows programming.


Recommended for
these people

Who is this course right for?

  • FPGA skill-up seekers

  • Those wishing FPGA SOC implementation

  • Those wishing to port and use MCU on FPGA

Need to know before starting?

  • C language

  • Verilog language

  • FPGA Design

Hello
This is

1,647

Learners

66

Reviews

123

Answers

4.8

Rating

19

Courses

저는 지난 20여년 동안 대기업, 중소기업에서 개발자로 일해왔고

현재는 작은 기업의 대표로 있습니다.

주요 경력사항은

  • Verilog HDL을 이용한 FPGA 설계

    • CCTV용 ISP ASIC 개발 (약 10년)

    • OLED Display 검사장비 개발 (약 3년)

    • FPGA를 이용한 장비 개발

  • MCU FW

    • STM32

    • PIC32

    • AVR, ATMEGA

    • DSP (TI)

  • Windows Application Program

    • Visual Studio MFC, C++

입니다.

Curriculum

All

151 lectures

Course Materials:

Lecture resources
Published: 
Last updated: 

Reviews

All

1 reviews

5.0

1 reviews

  • sunny75님의 프로필 이미지
    sunny75

    Reviews 94

    Average Rating 5.0

    5

    100% enrolled

    2024/12/15/일 16:05 아주 좋은 문서로 아주 많은 정보를 얻었습니다. bootloader에 대해서 이제서야 이해가 되었네요. 그리고 FPGA로 어떻게 활용하는 지도 알게되었습니다. 좋은 문서 아주 아주 감사합니다.

    • alex
      Instructor

      강의가 도움이 되셨다니 감사합니다. 훌륭한 개발자 되시길 바랍니다 ~!!

$102.30

ihil's other courses

Check out other courses by the instructor!

Similar courses

Explore other courses in the same field!