Harnessing the Power of AI: An Easy Start with Lattice s sensai

Similar documents
AI Application Processing Requirements

Embedding Artificial Intelligence into Our Lives

TOOLS AND PROCESSORS FOR COMPUTER VISION. Selected Results from the Embedded Vision Alliance s Spring 2017 Computer Vision Developer Survey

TOOLS & PROCESSORS FOR COMPUTER VISION. Selected Results from the Embedded Vision Alliance s Computer Vision Developer Survey

Creating Intelligence at the Edge

TOOLS & PROCESSORS FOR COMPUTER VISION. Selected Results from the Embedded Vision Alliance s Fall 2017 Computer Vision Developer Survey

Computer Vision at the Edge and in the Cloud: Architectures, Algorithms, Processors, and Tools

5G R&D at Huawei: An Insider Look

REVOLUTIONIZING THE COMPUTING LANDSCAPE AND BEYOND.

Multiband NFC for High-Throughput Wireless Computer Vision Sensor Network

MACHINE LEARNING Games and Beyond. Calvin Lin, NVIDIA

White Paper Kilopass X2Bit bitcell: OTP Dynamic Power Cut by Factor of 10

23270: AUGMENTED REALITY FOR NAVIGATION AND INFORMATIONAL ADAS. Sergii Bykov Technical Lead Machine Learning 12 Oct 2017

Creating the Right Environment for Machine Learning Codesign. Cliff Young, Google AI

Machine Learning and Decision Making for Sustainability

INTRODUCTION. In the industrial applications, many three-phase loads require a. supply of Variable Voltage Variable Frequency (VVVF) using fast and

Fpga Implementations Of Neural Networks Springer

SMART PLACES WHAT. WHY. HOW.

Challenges in Transition

Vision with Precision Webinar Series Augmented & Virtual Reality Aaron Behman, Xilinx Mark Beccue, Tractica. Copyright 2016 Xilinx

PV SYSTEM BASED FPGA: ANALYSIS OF POWER CONSUMPTION IN XILINX XPOWER TOOL

Control Systems Overview REV II

GPU ACCELERATED DEEP LEARNING WITH CUDNN

HeroX - Untethered VR Training in Sync'ed Physical Spaces

The Key to the Internet-of-Things: Conquering Complexity One Step at a Time

Neural Networks The New Moore s Law

Technology Trends for Government

Exploring Computation- Communication Tradeoffs in Camera Systems

CHAPTER 4 FIELD PROGRAMMABLE GATE ARRAY IMPLEMENTATION OF FIVE LEVEL CASCADED MULTILEVEL INVERTER

JESD204A for wireless base station and radar systems

Hardware-Software Co-Design Cosynthesis and Partitioning

Pramod Kumar Naik Senior Application Engineer MathWorks Products

Policy-Based RTL Design

Deep Learning Overview

LOW-POWER SOFTWARE-DEFINED RADIO DESIGN USING FPGAS

Looking ahead : Technology trends driving business innovation.

Using the VM1010 Wake-on-Sound Microphone and ZeroPower Listening TM Technology

The Role of the Internet of Things in the Development of Smart Cities- Peter Knight PhD.

The Key to the Internet-of-Things: Conquering Complexity One Step at a Time

Semiconductors: A Strategic U.S. Advantage in the Global Artificial Intelligence Technology Race

From Antenna to Bits:

KÜNSTLICHE INTELLIGENZ JOBKILLER VON MORGEN?

AI Frontiers. Dr. Dario Gil Vice President IBM Research

{ TECHNOLOGY CHANGES } EXECUTIVE FOCUS TRANSFORMATIVE TECHNOLOGIES. & THE ENGINEER Engineering and technology

Shared Investment. Shared Success. ReMAP Call for Proposals by Expression of Interest

REINVENT YOUR PRODUCT

Development and Integration of Artificial Intelligence Technologies for Innovation Acceleration

SHAPING THE FUTURE OF IOT: PLATFORMS FOR CO-CREATION, RAPID PROTOTYPING AND SUCCESSFUL INDUSTRIALIZATION

Analog Custom Layout Engineer

Liquid Benchmarks. Sherif Sakr 1 and Fabio Casati September and

Aiming to Realize People-Oriented IoT and an 8K Ecosystem

CSTA K- 12 Computer Science Standards: Mapped to STEM, Common Core, and Partnership for the 21 st Century Standards

RANA: Towards Efficient Neural Acceleration with Refresh-Optimized Embedded DRAM

Journal of Engineering Science and Technology Review 9 (5) (2016) Research Article. L. Pyrgas, A. Kalantzopoulos* and E. Zigouris.

By Mark Hindsbo Vice President and General Manager, ANSYS

Industrial radar sensing. April 2018

ARMY RDT&E BUDGET ITEM JUSTIFICATION (R2 Exhibit)

OECD WORK ON ARTIFICIAL INTELLIGENCE

MS Project :Trading Accuracy for Power with an Under-designed Multiplier Architecture Parag Kulkarni Adviser : Prof. Puneet Gupta Electrical Eng.

Powering Human Capability

Roles of Artificial Intelligence and Machine Learning in Future Mobility

Toshiba Global Internship 2018

VSI Labs The Build Up of Automated Driving

A Digital Signal Processor for Musicians and Audiophiles Published on Monday, 09 February :54

Architecting Systems of the Future, page 1

A GENERAL SYSTEM DESIGN & IMPLEMENTATION OF SOFTWARE DEFINED RADIO SYSTEM

Digital Filters Using the TMS320C6000

Localized HD Haptics for Touch User Interfaces

Efficient UMTS. 1 Introduction. Lodewijk T. Smit and Gerard J.M. Smit CADTES, May 9, 2003

TU Dresden uses National Instruments Platform for 5G Research

PLACEMENT BROCHURE COMMUNICATION ENGINEERING

Image Enhancement using Hardware co-simulation for Biomedical Applications

Deep Learning. Dr. Johan Hagelbäck.

An energy-efficient coarse grained spatial architecture for convolutional neural networks AlexNet

TO LEARN MORE ABOUT MULLENLOWE MEDIAHUB VISIT mullenlowemediahub.com

CHAPTER 5 IMPLEMENTATION OF MULTIPLIERS USING VEDIC MATHEMATICS

Audio Sample Rate Conversion in FPGAs

INTEL INNOVATION GENERATION

How do you teach AI the value of trust?

IEEE IoT Vertical and Topical Summit - Anchorage September 18th-20th, 2017 Anchorage, Alaska. Call for Participation and Proposals

Stanford Center for AI Safety

CROSS-LAYER FEATURES IN CONVOLUTIONAL NEURAL NETWORKS FOR GENERIC CLASSIFICATION TASKS. Kuan-Chuan Peng and Tsuhan Chen

Leading the Agenda. Everyday technology: A focus group with children, young people and their carers

SMART MANUFACTURING: A Competitive Necessity. SMART MANUFACTURING INDUSTRY REPORT Vol 1 No 1.

In this lecture, we will look at how different electronic modules communicate with each other. We will consider the following topics:

2015 The MathWorks, Inc. 1

Esri and Autodesk What s Next?

DEEP DIVE ON AZURE ML FOR DEVELOPERS

ARDUINO. Gianluca Martino.

Society Co-creating the future - Keidanren. (Excerpt)

Radio Deep Learning Efforts Showcase Presentation

Copyright 2018, Technology Futures, Inc. 1

MORE POWER TO THE ENERGY AND UTILITIES BUSINESS, FROM AI.

A.I in Automotive? Why and When.

Figures from Embedded System Design: A Unified Hardware/Software Introduction, Frank Vahid and Tony Givargis, New York, John Wiley, 2002

AI AND SAFETY: 6 RULES FOR REIMAGINING JOBS IN THE AGE OF SMART MACHINES H. JAMES WILSON MANAGING DIRECTOR, ACCENTURE

Comparison ibeacon VS Smart Antenna

11/13/18. Introduction to RNNs for NLP. About Me. Overview SHANG GAO

Workplace Service. Contents

Transforming while performing Deep Dive: Artificial Intelligence. Hype or not?

Transcription:

Harnessing the Power of AI: An Easy Start with Lattice s sensai A Lattice Semiconductor White Paper. January 2019 Artificial intelligence, or AI, is everywhere. It s a revolutionary technology that is slowly pervading more industries than you can imagine. It seems that every company, no matter what their business, needs to have some kind of AI story. In particular, you see AI seriously pursued for applications like self-driving automobiles, the Internet of Things (IoT), network security, and medicine. Company visionaries are expected to have a good understanding of how AI can be applied to their businesses, and success by early adopters will force holdouts into the fray. Not all AI is the same, however, and different application categories require different AI approaches. The application class that appears to have gotten the most traction so far is embedded vision. AI for this category makes use of so-called convolutional neural networks, or CNNs, which attempt to mimic the way that the biological eye is believed to operate. We will focus on vision in this AI whitepaper, even though many of the concepts will apply to other applications as well. Learn more: www.latticesemi.com Contact us online: www.latticesemi.com/contact www.latticesemi.com/buy Rev. 1

2 // 13 TABLE OF CONTENTS Section 1 AI Edge Requirements Page 3 Section 2 Inference Engine Options Page 5 Section 3 Building an Inference Engine in a Lattice FPGA Page 7 Section 4 Building the Inference Model in a Lattice FPGA Page 8 Section 5 Two Detection Examples Page 10 Section 6 Summary Page 13

3 // 13 AI Edge Requirements AI involves the creation of a trained model of how something works. That model is then used to make inferences about the real world when deployed in an application. This gives an AI application two major life phases: training and inference. Training is done during development, typically in the cloud. Inference, on the other hand, is required by deployed devices as an ongoing activity. Because inference can also be a computationally difficult problem, much of it is currently done in the cloud. But there is often little time to make decisions. Sending data to the cloud and then waiting until a decision arrives back can take time and by then, it may be too late. Making that decision locally can save precious seconds. This need for real-time control applies to many application areas where decisions are needed quickly. Many such examples detect human presence: Smart-home appliances Consumer smart audio/video electronics Smart doorbells Vending machines Security cameras Smart doors

4 // 13 Other always-on applications include: Smart speakers Retail store cameras Selfie drones Toll-gate cameras Machine vision After-market automotive cameras Because of this need for quick decisions, there is a strong move underway to take inference out of the cloud and implement it at the edge that is, in the devices that gather data and then take action based on the AI decisions. This takes the delays inherent in the cloud out of the picture. There are two other benefits to local inference. The first is privacy. Data enroute to and from the cloud, and data stored up in the cloud, is subject to hacking and theft. If the data never leaves the equipment, then there is far less opportunity for mischief. The other benefit relates to the bandwidth available in the internet. Sending video up to the cloud for real-time interpretation chews up an enormous amount of bandwidth. Making the decisions locally frees that bandwidth up for all of the other demanding uses. In addition: Many such devices are powered by a battery or, if they are mains-supplied, have heat constraints that limit how much power is sustainable. In the cloud, it s the facility s responsibility to manage power and cooling. AI models are evolving rapidly. Between the beginning and end of training, the size of the model may change dramatically, and the size of the required computing platform may not be well understood until well into the development process. In addition, small changes to the training can have a significant impact on the model, adding yet more variability. All of this makes it a challenge to size the hardware in the edge device appropriately. There will always be tradeoffs during the process of optimizing the models for your specific device. That means that a model might operate differently in different pieces of equipment. Finally, edge devices are often very small. This limits the size of any devices used for AI inference.

5 // 13 All of this leads to the following important requirements for interference at the edge: Engines for making AI inference at the edge must: Consume very little power Be very flexible Be very scalable Have a small physical footprint Lattice s sensai offering lets you develop engines with precisely these four characteristics. It does so by including a hardware platform, soft IP, a neural-net compiler, development modules, and resources that will help get the design right quickly. Inference Engine Options There are two aspects to building an inference engine into an edge device: developing the hardware platform that will host the execution of the model, and developing the model itself. Execution of a model can, in theory, take place on many different architectures. But execution at the edge, taking into account the power, flexibility, and scalability requirements above, limits the choices particularly for always-on applications. MCUs - The most common way of handling AI models is by using a processor. That may be a GPU or a DSP, or it may be a microcontroller. But the processors in edge devices may not be up to the challenge of executing even simple models; such a device may have only a low-end microcontroller (MCU) available. Using a larger processor may violate the power and cost requirements of the device, so it might seem like AI would be out of reach for such devices. This is where low-power FPGAs can play an important role. Rather than beefing up a processor to handle the algorithms, a Lattice ECP5 or UltraPlus FPGA can act as a co-processor to the MCU, providing the heavy lifting that the MCU can t handle while keeping power within the required range. Because these Lattice FPGAs can implement DSPs, they provide computing power not available in a low-end MCU.!%&'() *+,#$%&'() %&$'($')$ *#+,-.,//0,1.2345 +*#,!:;<:4 66, 78841452-.59 &'('),4:;<:49, -%./0)#$12 *)34%&#0'54('6 Figure 1: FPGA as a Co-Processor to MCU

6 // 13 ASICS and ASSPs - For AI models that are more mature and will sell in high volumes, ASICs or application-specific standard products (ASSPs) may be appropriate. But, because of their activity load, they will consume too much power for an always-on application. Here Lattice FPGAs can act as activity gates, handling wake-up activities involving wake words or recognition of some broad class of video image (like identifying something that looks like it might be a person) before waking up the ASIC or ASSP to complete the task of identifying more speech or confirming with high confidence that an artifact in a video is indeed a person (or even a specific person). The FPGA handles the always-on part, where power is most critical. While not all FPGAs can handle this role, since many of them still consume too much power, Lattice s ECP5 and UltraPlus FPGAs have the power characteristics necessary for this role. %&'()*+,(-. /01& 23+45&657.8* >8?7&.@+(5& )8&AB&C&AB "+35*+&29= 6:1F %&'()*) +,'$-+'$./(0 D5-*+(& D5)?8*E&2,& :#6';<6 162"9166, Figure 2: FPGA as activity gate to ASIC/ASSP Stand-Alone FPGA AI Engines - Finally, low-power FPGAs can act as stand-alone, integrated AI engines. The DSPs available in the FPGAs take the starring role here. Even if an edge device has no other computing resources, AI capabilities can be added without breaking the power, cost, or boardarea budgets. And they have the flexibility and scalability necessary for rapidly evolving algorithms..0123*4(5"%!(67 10!?@A? "%&&%'()*+!,-*+%'"./ "%&&%'()*+!,-*+%'"./ %&'()* +#%&,-&./012&345 %&'( $!"%%%&'()* 678&5-&./012&345 )*+,-*./012$ 3*(4*56( 378*+,-*./012$ 819* :-;- <1=4>; 819* :-;- <1=4>; Figure 3: Stand-alone, Integrated FPGA Solution

7 // 13 Building an Inference Engine in a Lattice FPGA Designing hardware that will execute an AI inference model is an exercise in balancing the number of resources needed against performance and power requirements. Lattice s ECP5 and UltraPlus familes provide this balance. The ECP5 family has three members of differing sizes that can host from one to eight inference engines. They contain anywhere from 1 Mb to 3.7 Mb of local memory. They run up to 1 W of power, and they have a footprint. The UltraPlus family, by contrast, has power levels as low as one thousandth the power of the ECP5 family, at 1 mw. Consuming a mere 5.5 mm 2 of board area, it contains up to eight multipliers and up to 1 Mb of local memory. Lattice also provides CNN IP designed to operate efficiently on these devices. For the ECP5 family, Lattice has a CNN Accelerator. %"&'(#)$ *+,"%-'.""& %&'()* +%,$-.).) /(&()$ %&0123) /)<.)30) /)< =)3$> %)?$> 123* /#0)#+'.""& 9&*&?)()*' /)< =)3$@ %)?$@ +435$67 +435$67 8+$67 944:23;$67 %&'()* /&5)BC4&D #3E.(BF.(E.(B#3()*?)D2&() /)< =)3$@A %)?$@A Figure 4: CNN Accelerator for the ECP5 family For the UltraPlus family, Lattice provides a CNN Compact Accelerator.!"%/4"5)6%,/!"##$%&' ()*+,-./'!"!# $%&'(%) 7%-,%+ 0%12/ 32/12/ 6.',*/',%&7 8'%(/90 $%&*%)+',%& -./)0( 102+ 3%%)!+))4 $%&&0.'05 Figure 5. Compact CNN Accelerator for the UltraPlus family

8 // 13 We won t dive into the details here; the main point is that you don t have to design your own engine from scratch. Much more information is available from Lattice regarding these pieces of IP. Finally, you can run examples like this and test them out on development modules, with one for each device family. The Himax HM01B0 UPduino shield uses an UltraPlus device, requiring 22 x 50 mm 2 of space. The Embedded Vision Development Kit uses an ECP5 device, claiming 80 x 80 mm 2 of space. Himax HM01B0 UPduino Shield Embedded Vision Development Kit Figure 6. Development modules for evaluation of AI application Given an FPGA, soft IP, and all of the other hardware details needed to move data around, the platform can be compiled using Lattice s Diamond design tools in order to generate the bitstream that will configure the FPGAs at each power-up in the targeted equipment. Building the Inference Model in a Lattice FPGA Creating an inference model is very different from creating the underlying execution platform. It s more abstract and mathematical, involving no RTL design. There are two main steps: creating the abstract model and then optimizing the model implementation for your chosen platform. Model training takes place on any of several frameworks designed specifically for this process. The two best-known frameworks are Caffe and TensorFlow, but there are others as well. A CNN consists of a series of layers convolution layers, along with possible pooling and fully connected layers each of which has nodes that are fed by the result of the prior layer. Each of those results is weighted at each node, and it is the training process that decides what the weights should be. The weights output by the training frameworks are typically floating-point numbers. This is the most precise embodiment of the weights and yet most edge devices aren t equipped with floating-point capabilities. This is where we need to take this abstract model and optimize it for a specific platform a job handled by Lattice s Neural Network Compiler. The Compiler allows you to load and review the original model as downloaded from one of the CNN frameworks. You can run performance analysis, which is important for what is likely the most critical aspect of model optimization: quantization.

9 // 13 Because we can t deal with floating-point numbers, we have to convert them to integers. That means that we will lose some accuracy simply by virtue of rounding off floating-point numbers. The question is, what integer precision is needed to achieve the accuracy you want? 16 bits is usually the highest precision used, but weights and inputs may be expressed as smaller integers. Lattice currently supports 16-, 8-, and 1-bit implementations. 1-bit designs are actually trained in the single-bit integer domain to maintain accuracy.clearly, smaller data units mean higher performance, smaller hardware, and, critically, lower power. But, make the precision too low, and you won t have the accuracy required to faithfully infer the objects in a field of view. 23'4&5&*"#$-5'6*"0&,-*. 7&898'/"::&;'<&5=-*6+-,> %&'$()*+,-./-*&$012(3*01$4 %&'$()*+,-.5670$4!"##$%&'(&)*"+ (&#,-*.'/-01$+&*!"##$%&'(&)*"+ (&#,-*.'/-01$+&*!"##$%&'(&)*"+ (&#,-*.'/-01$+&* 5;670$ 89:-,9,1$&$0*1 5;<=6"0$ 89:-,9,1$&$0*1 56"0$ 89:-,9,1$&$0*1 Figure 7. A single model can be optimized differently for different equipment So the neural-network compiler lets you create an instruction stream that represents the model, and those instructions can then be simulated or outright tested to judge whether the right balance has been struck between performance, power, and accuracy. This is usually measured by the percentage of images that were correctly processed out of a set of test images (different from the training images). Improved operation can often be obtained by optimizing a model, including pruning of some nodes to reduce resource consumption, and then retraining the model in the abstract again. This is a design loop that allows you to fine-tune the accuracy while operating within constrained resources.

10 // 13 Two Detection Examples We can see how the tradeoffs play out with two different vision examples. The first is a face-detection application; the second is a human-presence-detection application. We can view how the differences in the resources available in the different FPGAs affects the performance and power of the resulting implementations. Both of these examples take their inputs from a camera, and they both execute on the same underlying engine architecture. For the UltraPlus implementation, the camera image is downsized and then processed through eight multipliers, leveraging internal storage and using LEDs as indicators. %&"'( )**+),-.%/#+0//1"1$%#,$ =,>? (%-."1 2+3'"#4."41$( 567+8 9+3:4# ;,/%"+31-,$<!"# $%&'() Figure 8. UltraPlus platform for face-detection and human-presence applications The ECP5 family has more resources, and so it provides a platform with more computing power. Here the camera image is pre-processed in an image signal processor (ISP) before being sent into the CNN. The results are combined with the original image in an overlay engine that allows text or annotations to be overlaid on the original image. "%%& '(()*)+,-.+ / 0 1&)2342)5 678$&0 8&9:4- ;.(,*&9)<.+=& >?#&!2342) @A)+*,=&!2342)?#>&-.&BBC&&*.,D)+ ++, %&'()* %&'()* Figure 9. ECP5 platform for face-detection and human-presence applications

11 // 13 We can use a series of charts to measure the performance, power, and area of each implementation of the applications. We also do two implementations of each application: one with fewer inputs and one with more inputs. For the face-detection application, we can see the results in Figure 7. Here the two implementations use 32 x 32 inputs for the simple version and 90x90 inputs for the more complex one. 32 x 32 Input 90 x 90 Input 0.06 1 mw* 6000 5.5 mm 2 0.05 5000 5.00 4.50 4.00 0.5 W 120 100 Cycles (M) 0.5 W 0.04 4000 0.03 0.6 W 0.8 W 3000 0.02 2000 Cycles (M) 3.50 3.00 2.50 2.00 1.50 0.6 W 0.8 W 80 60 40 0.01 1000 1.00 20 0.50 0 0 0 UltraPlus ECP5-25 ECP5-45 ECP5-85 UltraPlus ECP5-25 ECP5-45 ECP5-85 0 Other FC Pool Conv DRAM FPS Scale FC Pool Conv DRAM FPS *Running at 5 frames per second Figure 10. Performance, power, and area results for simple and complex implementations of the face-recognition application in UltraPlus and ECP5 FPGAs The left-hand axis shows the number of cycles required to process an image and how those cycles are spent. The right-hand axis shows the resulting frames-per-second (fps) performance for each implementation (the green line). Finally, each implementation shows the power and area. The orange bars in the 32 x 32 example on the left represent the cycles spent on convolution. The UltraPlus has the fewest multipliers of the four examples; the other three are ECP5 devices with successively more multipliers. As the number of multipliers increases, the number of cycles required for convolution decreases. The 90 x 90 example is on the right, and the results are quite different. There is a significant new blue contribution to the cycles on the bottom of each stack. This is the result of the more complex design using more memory than is available internally in the devices. As a result, they have to go out to DRAM, which hurts performance. Note also that this version cannot be implemented in the smaller UltraPlus device. A similar situation holds for the human-presence application. Here the simple version uses 64 x 64 inputs, while the complex version works with 128 x 128 inputs.

12 // 13 64 x 64 Input 128 x 128 Input Cycles (M) 1.6 1.4 1.2 1.0 0.8 0.6 0.4 7 mw* 5.5 mm 2 0.5 W 10 mm 2 0.6 W 10 mm 2 0.8 W 10 mm 2 400 350 300 250 200 150 100 Cycles (M) 60 50 40 30 20 0.5 W 10 mm 2 0.6 W 10 mm 2 0.8 W 10 mm 2 6 5 4 3 2 0.2 50 10 1 0 UltraPlus ECP5-25 ECP5-45 ECP5-85 0 0 UltraPlus ECP5-25 ECP5-45 ECP5-85 0 Scale FC Pool Conv DRAM FPS Scale FC Pool Conv DRAM FPS *Running at 5 frames per second Figure 11. Performance, power, and area results for simple and complex implementations of the human-presence application in UltraPlus and ECP5 FPGAs Again, more multipliers reduce the convolution burden, and relying on DRAM hurts performance. The performance for all versions is summarized in Figure 9. This includes a measure of the smallest identifiable object or feature in an image, expressed as a percent of the full field of view. Using more inputs helps here, providing additional resolution for smaller objects. Device Size / Power / Performance Network Face Detection 32 x 32 Input Face Detection 90 x 90 Input Human Presence Detect 64 x 64 Input Human Presence Detect 128 x 128 Input Smallest Object UltraPlus 1-7 mw 2 5.5 mm 2 ECP5-25 0.5 W ECP5-45 0.8 W ECP5-85 0.8 W 50% 465 3360 4511 5251 20% -- 28 82 101 20% 18 115 161 338 10% -- 2.3 3.5 5.4 Figure 12. Performance summary of the two example applications in four different FPGAs

Summary In summary, then, edge-inference AI designs that demand low power, flexibility, and scalability can be readily implemented in Lattice FPGAs using the resources provided by the Lattice sensai offering. It makes available the critical elements needed for successful deployment of AI algorithms: Neural network compiler Neural engine soft IP Diamond design tools Development boards Reference designs Much more information is available from Lattice; go to www.latticesemi.com to start using the power of AI in your designs. Learn more: www.latticesemi.com Contact us online: www.latticesemi.com/contact www.latticesemi.com/buy Rev. 1