Instructions for GOWIN models including: EMPU M1, Provides Four Download Methods of Hardware Design and Software, Methods of Hardware Design and Software, Hardware Design and Software, Design and Software, EMPU M1, Software
Arm DesignStart FPGA Program | GOWIN Semiconductor
File Info : application/pdf, 25 Pages, 591.26KB
DocumentDocumentGowin_EMPU_M1 Download Reference Design IPUG532-1.9E, 10/12/2021 Copyright © 2021 Guangdong Gowin Semiconductor Corporation. All Rights Reserved. , , Gowin, GOWINSEMI, and GowinSynthesis are trademarks of Guangdong Gowin Semiconductor Corporation and are registered in China, the U.S. Patent and Trademark Office, and other countries. All other words and logos identified as trademarks or service marks are the property of their respective holders. No part of this document may be reproduced or transmitted in any form or by any denotes, electronic, mechanical, photocopying, recording or otherwise, without the prior written consent of GOWINSEMI. Disclaimer GOWINSEMI assumes no liability and provides no warranty (either expressed or implied) and is not responsible for any damage incurred to your hardware, software, data, or property resulting from usage of the materials or intellectual property except as outlined in the GOWINSEMI Terms and Conditions of Sale. All information in this document should be treated as preliminary. GOWINSEMI may make changes to this document at any time without prior notice. Anyone relying on this documentation should contact GOWINSEMI for the current documentation and errata. Revision History Date Versi 02/19/2019 1.0E 07/18/2019 1.1E 08/18/2019 09/27/2019 1.2E 1.3E 01/16/2020 1.4E Description Initial version published. Supports the automated merging tool used for MCU hardware design and software programming design. MCU supports off-chip SPI-Flash downloading and startup. MCU hardware design and software programming design support extended peripheral: DD3 Memory. Fixed known issues of ITCM, DTCM Size and IDE. The description of software configuration updated. MCU hardware design and software programming design supports PSRAM. Updated MCU compiling software GMD V1.0. RTOS reference design updated. Hardware and software reference design of AHB2 and APB2 extension bus interface added. 03/03/2020 06/12/2020 01/25/2021 07/21/2021 1.5E 1.6E 1.7E 1.8E Known issues of ITCM, DTCM Size and IDE fixed. The FPGA devices of GW2A-18C/GW2AR-18C/GW2A-55C supported. MCU supports External instruction memory. MCU supports External data memory. 6 AHB bus interfaces extended. 16 APB bus interfaces extended. GPIO supports multiple interface types. I2C supports multiple interface types. Merge_bit tool supports GowinSynthesis® to parse the rules of naming. The reference design of GW1N-9C, GW2A-18C, GW2A-55C (Version C) updated. The download auxiliary tools called Merge_bit and make_hex updated. The reference design and the version of Gowin Software updated. GW1N-9C/GW1NR-9C supports embedded UserFlash as instruction memory. Merge_bit tool updated. The SynplifyPro deleted. The version of FPGA and MCU software updated. 10/12/2021 1.9E GW2AN-9X/GW2AN-18X merge_bit download deleted. Contents Contents Contents ............................................................................................................... i List of Figures .................................................................................................... iii List of Tables...................................................................................................... iv 1 Download Methods ......................................................................................... 1 2 Software Programming Output as ITCM Initialization Value ....................... 3 2.1 Tool ..................................................................................................................................... 3 2.2 Command Parameters........................................................................................................ 3 2.3 Software Configuration ....................................................................................................... 3 2.4 Hardware Configuration...................................................................................................... 4 2.5 Design Flow ........................................................................................................................ 5 2.6 Devices Supported ............................................................................................................. 5 2.7 Reference Design ............................................................................................................... 5 3 Merge Software Design and Hardware Design ............................................. 6 3.1 Tool ..................................................................................................................................... 6 3.2 Command Parameters........................................................................................................ 6 3.3 Hardware Configuration...................................................................................................... 7 3.4 Design Flow ........................................................................................................................ 7 3.4.1 Merge............................................................................................................................... 7 3.4.2 Download ......................................................................................................................... 8 3.5 Devices Supported ............................................................................................................. 8 3.6 Application Software ........................................................................................................... 8 3.7 Reference Design ............................................................................................................... 8 4 Off-chip SPI-Flash Download ......................................................................... 9 4.1 Software Configuration ....................................................................................................... 9 4.2 Hardware Configuration.................................................................................................... 10 4.2.1 ITCM Initialization Configuration.................................................................................... 10 4.2.2 Dual-Purpose Pin Configuration .................................................................................... 11 4.3 Design Flow ...................................................................................................................... 11 4.4 Download .......................................................................................................................... 12 4.4.1 Download Bitstream Files in Hardware Design ............................................................. 12 IPUG532-1.9E i Contents 4.4.2 Download BIN File in Binary Format in Software Design .............................................. 13 4.5 Devices Supported ........................................................................................................... 14 4.6 Reference Design ............................................................................................................. 14 5 Embedded UserFlash Download ................................................................. 15 5.1 Software Configuration ..................................................................................................... 15 5.2 Hardware Configuration.................................................................................................... 16 5.3 Design Flow ...................................................................................................................... 16 5.4 Download .......................................................................................................................... 16 5.5 Devices Supported ........................................................................................................... 17 5.6 Reference Design ............................................................................................................. 17 IPUG532-1.9E ii List of Figures List of Figures Figure 2-1 Configure External Tool .................................................................................................... 4 Figure 2-2 Configure ITCM Initialization ............................................................................................ 5 Figure 3-1 Configure Post-Place File................................................................................................. 7 Figure 3-2 Merge Software Programming Design and Hardware Design ......................................... 8 Figure 4-1 ROM Start Address and Size Configuration ..................................................................... 9 Figure 4-2 Configure ITCM Initialization Path .................................................................................... 10 Figure 4-3 Onfiure Dual-Purpose Pin ................................................................................................ 11 Figure 4-4 Device configuration for Hardware Download .................................................................. 13 Figure 4-5 Device Configuration for Software Download .................................................................. 14 Figure 5-1 ROM Start Address and Size Configuration ..................................................................... 15 Figure 5-2 ITCM Select Configuration ............................................................................................... 16 Figure 5-3 GW1N(R)-9C Device Configuration ................................................................................. 17 IPUG532-1.9E iii List of Tables List of Tables Table 3-1 merge_bit Commands and Parameters ............................................................................. 6 Table 4-1 Bootload Corresponding to ITCM Size .............................................................................. 10 IPUG532-1.9E iv 1 Download Methods 1 Download Methods IPUG532-1.9E Gowin_EMPU_M1 provides four download methods of hardware design and software programming design: 1. Use the mapping files generated by software programming design as the ITCM initial value of hardware design. a) Use Gowin_EMPU_M1 software programming design to generate BIN files in software design. b) Use make_hex tool to convert the BIN files in software design to four mapping files in a hexadecimal format: itcm0, itcm1, itcm2, and itcm3. c) Use itcm0, itcm1, itcm2, and itcm3 as the ITCM initial value files in hardware design to read in. d) Synthesis, place & route to generate the bitstream files in hardware design including software programming design and hardware design. e) Use Programmer, the download tool, to download the bitstream files in hardware design. 2. Merge the BIN files in software design generated by software programming design and the BIN files in hardware design generated by hardware design. a) Use Gowin_EMPU_M1 hardware design to generate bitstream files in hardware design. b) Use Gowin_EMPU_M1 software programming design to generate BIN files in software design. c) Use merge_bit tool to merge the BIN files in software design and bitstream files in hardware design. d) Generate new bitstream files in hardware design after merging the software design and the hardware design. e) Use Programmer, the download tool, to download the bitstream files in hardware design after merging. 3. Use off-chip SPI-Flash to download the BIN files generated by software programming design. 1(17) 1 Download Methods a) In Gowin_EMPU_M1 hardware design, configure ITCM Size and select different bootload as the initial value of ITCM according to ITCM Size. b) In Gowin_EMPU_M1 hardware design, generate bitstream files in hardware design with the off-chip SPI-Flash that provides download functions. c) Use Programmer, the download tool, to download the bitstream files in hardware design generated by hardware design. d) Use Gowin_EMPU_M1 software programming design to generate BIN files in software design. e) Use Programmer, the download tool, to download the BIN files generated by software programming design. 4. Use embedded UserFlash to download the BIN files generated by software programming design. a) In Gowin_EMPU_M1 hardware design, ITCM Select is configured as External Instruction Memory. b) Instantiate UserFlash Controller (GW1N-9C/GW1NR-9C FLASH608K) with Memory Map as the instruction memory of Gowin_EMPU_M1. c) Synthesize, place, and route Gowin_EMPU_M1 hardware design to generate bitstream files in hardware design. d) Build and link Gowin_EMPU_M1 software programming design to generate BIN files in software design. e) Use Programmer, the download tool, to download the bitstream files in hardware design and BIN files in software design. IPUG532-1.9E 2(17) 2 Software Programming Output as ITCM Initialization Value 2.1 Tool 2 Software Programming Output as ITCM Initialization Value 2.1 Tool Gowin_EMPU_M1\tool\make_hex\bin\make_hex.exe Access the above software tools via this link: http://cdn.gowinsemi.com.cn/Gowin_EMPU_M1.zip 2.2 Command Parameters make_hex.exe bin-file 2.3 Software Configuration Use software programming design to generate BIN files in software design. Use make_hex tool to convert the BIN files in software design to four mapping files in a hexadecimal format: itcm0, itcm1, itcm2, and itcm3. In ARM Keil MDK (V5.26 and above), configure make_hex.exe as external tool, as shown in Figure 2-1. Run #1fromelf.exe --bin -o bin-file axf-file Run #2make_hex.exe bin-file Automatically call make_hex.exe tool to generate the BIN files in software design to four mapping files in a hexadecimal format. IPUG532-1.9E 3(17) 2 Software Programming Output as ITCM Initialization Value Figure 2-1 Configure External Tool 2.4 Hardware Configuration 2.4 Hardware Configuration In IP Core Generator in Gowin Software: Select "Cortex-M1 > Memory > ITCM > ITCM Select > Internal Instruction Memory". Select "Cortex-M1 > Memory > ITCM > Initialize ITCM". Select "Cortex-M1 > Memory > ITCM > ITCM Initialization Path" and import the path of the four mapping files in a hexadecimal format of itcm0, itcm1, itcm2, and itcm3 as the initial value of ITCM, as shown in Figure 2-2. Import itcm0itcm1itcm2itcm3 as the initial value of ITCM, as well as Gowin_EMPU_M1 hardware design generated after the external tool configuration of Cortex-M1 and AHB/APB in IP Core Generator. The hardware design includes software programming design. IPUG532-1.9E 4(17) 2 Software Programming Output as ITCM Initialization Value Figure 2-2 Configure ITCM Initialization 2.5 Design Flow 2.5 Design Flow 1. Use the software programming design of ARM Keil MDK (V5.26 and above) and GOWIN MCU Designer (V1.1 and above) to compile four mapping files in a hexadecimal format of itcm0, itcm1, itcm2, and itcm3. 2. Use IP Core Generator in Gowin Software to generate Gowin_EMPU_M1 hardware design. and itcm0, itcm1, itcm2, and itcm3 generated by software programming design are used as the initial value of ITCM in hardware design. 3. Instantiate Gowin_EMPU_M1 Top Module, and connect user design. 4. Add physical and timing Constraints. 5. Use GowinSynthesis® as the synthesis tool to synthesize. 6. Use Place & Route tool to generate the bitstream files in hardware design including software programming design. 7. Use Programmer, the download tool, to download the bitstream files in hardware design. 2.6 Devices Supported GW1N-9/GW1NR-9/GW1N-9C/GW1NR-9C GW2AN-9X/GW2AN-18X GW2A-18/GW2A-18C/GW2AR-18/GW2AR-18C/GW2ANR-18C GW2A-55/ GW2A-55C/ GW2AN-55C 2.7 Reference Design Access the reference design via this link: Gowin_EMPU_M1\tool\make_hex\example IPUG532-1.9E 5(17) 3 Merge Software Design and Hardware Design 3.1 Tool 3 Merge Software Design and Hardware Design 3.1 Tool Gowin_EMPU_M1\tool\merge_bit\bin\merge_bit.bat Access the above software tools via this link: http://cdn.gowinsemi.com.cn/Gowin_EMPU_M1.zip 3.2 Command Parameters Software commands and parameters: call make_loc.exe i posp-file s itcm_size [-d] t synthesis_tool call merge_bit.exe bin-file itcm.loc fs-file For the description of commands and parameters, please refer to Table 3-1. Table 3-1 merge_bit Commands and Parameters Parameter Description make_loc.exe -i Input posp-file and generate itcm.loc file, the ITCM layout information. Post-Place File, generated by configure "Place & Route > General > Generate Post-Place File" in Gowin Software. -s ITCM Size, configured according to Gowin_EMPU_M1 hardware design -d Optional If configure Enable Debug, then enable -d. If configure Disable Debug, then disable -d. -t Specify the synthesis tool: gowin_syn. merge_bit.exe Merge Gowin_EMPU_M1 software design and hardware design. bin-file Use Gowin_EMPU_M1 software programming design to generate BIN files in software design. itcm.loc fs-file Itcm.loc file, ITCM layout information generated by make_loc.exe. Bitstream files in hardware design generated by Gowin_EMPU_M1 hardware design. IPUG532-1.9E 6(17) 3 Merge Software Design and Hardware Design 3.3 Hardware Configuration Merge the BIN files in software design generated by software programming design and the bitstream files in hardware design generated by hardware design. During the use of merge_bit.bat, you can modify the parameters, such as -i posp-file, -s itcm_size, -dbin-file, fs-file, according to your requirements. 3.3 Hardware Configuration In Gowin Software configuration options, select "Place & Route > General > Generate Post-Place File", and set "True" to generate Post-Place File as the posp input file of make_loc.exe -i parameter, as shown in Figure 3-1. Figure 3-1 Configure Post-Place File 3.4 Design Flow 3.4.1 Merge 1. Gowin_EMPU_M1 hardware design can generate bitstream files in hardware design and Post-Place File. 2. Gowin_EMPU_M1 software programming design can generate BIN files in software design. 3. Perform merge_bit.bat, merge the bitstream files in hardware design generated by hardware design and the BIN files in software design generated by software programming design to generate new bitstream files, as shown in Figure 3-2. IPUG532-1.9E 7(17) 3 Merge Software Design and Hardware Design 3.5 Devices Supported Figure 3-2 Merge Software Programming Design and Hardware Design 3.4.2 Download After merging, use Programmer to download the new bitstream files in hardware design. For the usage of Gowin Programmer, please see SUG502, Gowin Programmer User Guide. 3.5 Devices Supported GW2A-18/GW2A-18C/GW2AR-18/GW2AR-18C/GW2ANR-18C GW2A-55/ GW2A-55C/ GW2AN-55C 3.6 Application Software Gowin_V1.9.8.01 and above 3.7 Reference Design Access the reference design via this link: Gowin_EMPU_M1\tool\merge_bit\example IPUG532-1.9E 8(17) 4 Off-chip SPI-Flash Download 4.1 Software Configuration 4 Off-chip SPI-Flash Download 4.1 Software Configuration In Gowin_EMPU_M1 Software Programming Design: If you use ARM Keil MDK (V5.26 and above) software development environment, set the IROM1 start address to 0x400 and set the IROM1 Size according to the actual ITCM Size hardware configuration. Taking DK-START-GW2A18 V2.0 reference design in SDK for an instance, set IROM1 to 0x7C00, as shown in Figure 4-1. Figure 4-1 ROM Start Address and Size Configuration If you use GOWIN MCU Designer (V1.1 and above) software development environment, change the Flash start address of the Flash linker GOWIN_M1_flash.ld to 0x00000400. IPUG532-1.9E 9(17) 4 Off-chip SPI-Flash Download 4.2 Hardware Configuration 4.2 Hardware Configuration 4.2.1 ITCM Initialization Configuration Use IP Core Generator tool in Gowin Software to configure and generate Gowin_EMPU_M1 hardware design: Select Internal Instruction Memory as the instruction memory of Gowin_EMPU_M1. Select ITCM Size. Select Initialized ITCM. Select different bootload as the initial value of ITCM according to ITCM Size. Import bootload path to ITCM Initialization Path. Configure ITCM Initialization as shown in Figure 4-2. Figure 4-2 Configure ITCM Initialization Path The bootload corresponding to different ITCM Size are as show in Table 4-1. Table 4-1 Bootload Corresponding to ITCM Size ITCM Size (KByte) bootload 2 Gowin_EMPU_M1\bootload\boot\ITCM_Size_2KB 4 Gowin_EMPU_M1\bootload\boot\ITCM_Size_4KB 8 Gowin_EMPU_M1\bootload\boot\ITCM_Size_8KB 16 Gowin_EMPU_M1\bootload\boot\ITCM_Size_16KB 32 Gowin_EMPU_M1\bootload\boot\ITCM_Size_32KB 64 Gowin_EMPU_M1\bootload\boot\ITCM_Size_64KB 128 Gowin_EMPU_M1\bootload\boot\ITCM_Size_128KB IPUG532-1.9E 10(17) 4 Off-chip SPI-Flash Download 4.3 Design Flow ITCM Size (KByte) 256 bootload Gowin_EMPU_M1\bootload\boot\ITCM_Size_256KB 4.2.2 Dual-Purpose Pin Configuration In Gowin Software configuration options, select "Place & Route > Dual-Purpose Pin" to configure MSPI as universal IO, as shown in Figure Figure 4-3. Figure 4-3 Onfiure Dual-Purpose Pin 4.3 Design Flow 1. Gowin_EMPU_M1 hardware design configuration: - Select Internal Instruction Memory. - Select ITCM Size. - Select Initialized ITCM. - Select different bootload as the initial value of ITCM according to ITCM Size. 2. Generate Gowin_EMPU_M1 hardware design. 3. Synthesize, place & route to generate bitstream files in hardware design with the off-chip SPI-Flash that provides download function. 4. Configure Device configuration with Programmer to download the bitstream files in hardware design. 5. Gowin_EMPU_M1 software programming design can generate BIN files in software design. 6. Configure Device configuration in Programmer to download the BIN file in software design. IPUG532-1.9E 11(17) 4 Off-chip SPI-Flash Download 4.4 Download 4.4 Download For the usage of Gowin Programmer, please see SUG502, Gowin Programmer User Guide. 4.4.1 Download Bitstream Files in Hardware Design Gowin_EMPU_M1 hardware design generates bootload as the initial value of ITCM and bitstream files with the off-chip SPI-Flash that provides download functions. Use Programmer, the download tool, to download the bitstream files in hardware design. Select "Tools > Programmer" in the menu bar or "Programmer" ( ) in the tool bar in Gowin Software to open Programmer, the download tool. Select "Edit > Configure Device" in the menu bar or "Configure Device" ( ) in the tool bar to open the "Device configuration". Select "External Flash Mode" in "Access Mode" drop-down list. Select "exFlash Erase, Program thru GAO-Bridge" or "exFlash Erase, Program, Verify thru GAO-Bridge" in "Operation" drop-down list. Import the hardware design bitstream file required to download in "Programming Options > File name" option. Select "External Flash Options > Device" based on the on-board Flash chip types (such as on-board Winbond W25Q64BV of DK-START-GW2A18 V2.0). Select "External Flash Options > Start Address" to set the start address as 0x000000. Click "Save" to configure the download of bitstream files in hardware design, as shown in Figure 4-4. IPUG532-1.9E 12(17) 4 Off-chip SPI-Flash Download Figure 4-4 Device configuration for Hardware Download 4.4 Download After device configuration, click "Program/Configure" ( ) in the Programmer tool bar to download bitstream files in hardaware design. 4.4.2 Download BIN File in Binary Format in Software Design After downloading the bitstream files in Gowin_EMPU_M1 hardware design, download the BIN files in binary format in software design with Programmer, the download tool. Open Programmer, the download tool, in Gowin Software or under the software installation path. Click "Edit > Configure Device" in the menu bar or "Configure Device" ( ) in the tool bar to open the "Device configuration". Select "External Flash Mode" in "Access Mode" drop-down list. Select "exFlash C Bin Erase, Program thru GAO-Bridge" or "exFlash C Bin Erase, Program, Verify thru GAO-Bridge" in "Operation" drop-down list. Select "FW/MCU Input Options > Firmware/Binary File" to import the BIN files in software design to download. Select "External Flash Options > Device" based on the on-board Flash chip types (such as on-board Winbond W25Q64BV of DK-START-GW2A18 V2.0). Select "External Flash Options > Start Address" to set the start address as 0x400000. Click "Save" to configure the download of BIN files in software design, IPUG532-1.9E 13(17) 4 Off-chip SPI-Flash Download as shown in Figure 4-5. Figure 4-5 Device Configuration for Software Download 4.5 Devices Supported After device configuration, click "Program/Configure" ( ) in the Programmer tool bar to download BIN files in software design. 4.5 Devices Supported GW2AN-9X/GW2AN-18X GW2A-18/GW2A-18C/GW2AR-18/GW2AR-18C/GW2ANR-18C GW2A-55/ GW2A-55C/ GW2AN-55C 4.6 Reference Design Access the reference design via this link: Gowin_EMPU_M1\bootload\example IPUG532-1.9E 14(17) 5 Embedded UserFlash Download 5.1 Software Configuration 5 Embedded UserFlash Download 5.1 Software Configuration Take DK-START-GW1N9 V1.1 reference design in SDK for an instance: If you use ARM Keil MDK (V5.26 and above) software development environment, set the IROM1 start address to 0x0 and set the IROM1 Size to 0x10000 (64KB), as shown in Figure 5-1. Figure 5-1 ROM Start Address and Size Configuration If you use GOWIN MCU Designer (V1.1 and above) software development environment, set "FLASH ORIGIN", the Flash start address of the Flash linker GOWIN_M1_flash.ld to 0x00000000, and set Flash Size "LENGTH" to 64K. IPUG532-1.9E 15(17) 5 Embedded UserFlash Download 5.2 Hardware Configuration 5.2 Hardware Configuration Use IP Core Generator tool of Gowin Software to configure and generate Gowin_EMPU_M1 hardware design. In this process, select External Instruction Memory as the instruction memory of Gowin_EMPU_M1 in ITCM Select options, as shown in Figure 5-2. Figure 5-2 ITCM Select Configuration 5.3 Design Flow 1. For Gowin_EMPU_M1 hardware design configuration, configure ITCM Select as External Instruction Memory. 2. IP Core Generator generates Gowin_EMPU_M1 hardware design. 3. Instantiate UserFlash Controller (GW1N-9C/GW1NR-9C FLASH608K) Memory Map as the instruction memory of Gowin_EMPU_M1. 4. Synthesize, place & route to generate bitstream files in hardware design. 5. Build and link to generate BIN files in software design. 6. Use Programmer to download the bitstream files in Gowin_EMPU_M1 hardware design and BIN files in Gowin_EMPU_M1 software design. 5.4 Download For the usage of Gowin Programmer, please see SUG502, Gowin Programmer User Guide. Select "Tools > Programmer" in the menu bar or "Programmer" ( ) in the tool bar in Gowin Software to open Programmer, the download tool. Select "Edit > Configure Device" in Programmer menu bar or "Configure Device" ( ) in the tool bar to open the "Device configuration", IPUG532-1.9E 16(17) 5 Embedded UserFlash Download 5.5 Devices Supported as shown in Figure 5-3. Select "MCU Mode L" in "Access Mode" drop-down list. Select "Firmware Erase, Program" or "Firmware Erase, Program, Verify" in "Operation" drop-down list. Import the hardware design bitstream file required to download in "Programming Options > File name" option. Select "FW/MCU/Binary Input Options > Firmware/Binary File" to import the BIN files in software programming design required to download. Click "Save" to complete the download configuration of the bitstream files in hardware design and BIN files in software design. Figure 5-3 GW1N(R)-9C Device Configuration After device configuration, click "Program/Configure" ( ) in the Programmer tool bar to downloadthe bitstream files in hardware design and the BIN files in software programming design at the same time. 5.5 Devices Supported GW1N-9C GW1NR-9C 5.6 Reference Design Access the reference design via this link: Gowin_EMPU_M1\solution\running_in_userflash\DK_START_GW1N9 _V1.1 IPUG532-1.9E 17(17)