As a field engineer at Xilinx, I often ask the question: Can we provide a DSP core whose features meet all of our customers' unique design requirements. Sometimes the kernel will be too big, too small or not fast enough. At times, we develop a core that exactly meets our customers' needs and quickly launches under the COREGeneratorTM trademark. But even in this case, customers still want a specific set of DSP functions, and there is no time to delay. In these cases, I often advise them to customize their DSP capabilities using the interpolation lookup table in our device.
A lookup table (LUT) is essentially a storage element that can "find" the output based on any given combination of input states to ensure that each input has an exact output. Using LUTs to implement DSP functions has some significant advantages:
ï¬ You can change the LUT content with a high abstraction layer programming language such as MATLAB® or Simulink®.
You can design a DSP function to run mathematical functions that are extremely difficult with discrete logic operations, such as y=log(x), y=exp(x), y=1/x, y=sin(x), etc. .
The LUT can also easily perform complex mathematical functions that may require excessive FPGA resources in terms of configurable logic block (CLB) chips, as well as embedded multiply units or DSP48 programmable multiply-accumulate (MAC) units.
However, using LUTs in this way will of course have some drawbacks. When you use the LUT to implement DSP functions, you must use block RAM (BRAM) components. If the function y=sqrt(x) is executed (where x is a 16-bit input and y is an 18-bit output), each variable requires approximately 64 18KB BRAM cells. If, for example, your goal is to implement a miniaturized Spartan® device, or if you have too many operations to perform and you cannot save 64 BRAM cells for each variable, we recommend that you abandon this method that requires such a large number of BRAM cells. From the perspective of system architecture, this method is too costly.
The interpolated LUT method not only has the advantages of the LUT method in implementing DSP functions, but also does not require the use of too many BRAM cells. In this way, you can linearly interpolate from a continuous output from a smaller LUT (for example, a 1000-word LUT) to simulate a larger capacity LUT. This way, you can achieve a higher numerical resolution than the 1000 word LUT. In addition, with this method, only one BRAM, one embedded multiplier (or DSP48), and a few CLB chips can implement the control logic, so the cost of using the LUT becomes more rational. Moreover, from the point of view of signal-to-noise ratio, the numerical accuracy is also very satisfactory.
Of course, applying the interpolation LUT (ILUT) method requires some skill. For example, when this method is used to execute the y=sqrt(x) function, the performance of the ILUT in terms of area occupancy, timing, and numerical precision can be clearly displayed. Let's take a look at this example first, and then I will explain some examples of how to use this method to meet the different needs of customers, such as linearizing the sensor with non-linear transfer functions and implementing adaptive finite impulse response ( FIR) Filter to eliminate speckle noise on Synthetic Aperture Radar (SAR) images.
To implement the DPS algorithm on Xilinx FPGAs, I used System Generator for DSP design and synthesis tools based on MathWorks Simulink's model-based design methodology. System Generator benefits from Xilinx's DSP blockset in the Simulink environment, which automatically calls COREGenerator to generate highly optimized netlists for DSP building blocks. Simulink is a double-precision floating-point design tool, and SystemGenerator is a fixed-point computing tool. Either way, by using these two tools together, you can define the total number of bits per signal and the binary position of each signal, so that the scores are handled ingeniously in fixed-point operations. The simulation results are accurate and bit-true, so you can easily compare them to MATLAB scripts or floating-point reference values ​​generated by Simulink blocks to check for quantization errors.
Figure 1 shows the top-level structure of the ILUT scheme in System Generator. To make this method as general as possible, assume that the input variable x in nx=16 bits has a value range of 0≤x<1, so its format is “unsigned 16 bits plus 16 bits to the right of the binary pointâ€. It is called Ufix_16_16 format. The most significant bit (MSB) and least significant bit (LSB) modules correspond to the highest bit of the input data nb=10 and the lowest bit of nx-nb=6, respectively. These signals are named x0 and dx. The y=sqrt(x) output is represented by a ny=17-bit binary number in the format: Ufix_17_17.
Figure 2 shows the deployment steps for a 1000-word small-capacity LUT through a dual-port RAM module. Since the module is read-only memory, the Boolean constant module We_const forces the write to zero. Signals X0 and X0+1 are used as the next two addresses on the ROM table. The zero constant of the Data_const module defines the size of any ROM word (ie ny in this example).
The following formula shows how to insert a point with coordinates (x, y) between two known points (x0, y0) and (x1, y1) with x0 being the most significant bit of x:
Note that X1 and X0 are the adjacent addresses of this small-capacity LUT with only one least significant bit separated. Since the address space of this small-capacity LUT is the nb bit, the value of the LSB is 2-nb.
The interpolation step is shown in Figure 3. The "Reinterpret" module can change the dx=x-x0 signal without changing the binary representation. It resets the binary point (from UFix_6_0 to UFix_6_6 format) and outputs a fraction of the nx-nb bit binary number to calculate the value of (x-x0)/2-nb.
From a hardware perspective, these modules are not occupied. In general (and depending on the type of function we apply through the ILUT method), if y1=0 and y0=0, we can force y1-y0=1 so that we can get 1/2-nb instead of 0. We use the Mux, RaTIonal, Constant, and Constant1 modules to perform this work. The remaining Mult, Add, and Sub modules perform linear interpolation formulas. In this example, I force the output signal of the Mult module to be 17-bit resolution instead of the theoretically required 23 bits, because the overall numerical accuracy is sufficient for this test. In addition, since the y-sqrt(x) function is monotonically increasing, all results are unsigned. In other words, different functions require different fine-tuning of the data types, but they are not far from the principle shown in Figure 3.
Suppose we target the Spartan-3E 1200 (fg320-4) and now use the ISE Design Suite and System Generator for DSP 10.1 SP3 tools to lay out and route it. The overall FPGA resources are as follows:
The design is fully pipelined and can provide new outputs in any one clock cycle. The delay is 10 clock cycles and the maximum data rate is 194.70MSPS (million samples per second). In terms of numerical accuracy, for a 1000 or 2000 word ILUT, the ratio between the reference floating point result and the quantization error of the System Generator for DSP fixed point output, ie, the signal to noise ratio is 71.94 dB or 77.95 dB, respectively.
In addition to ILUT, we can also use the CORDIC SQRT module in the Reference MathBlockset provided by Xilinx System Generator for DSP. In this example, the total delay is 37 clock cycles, the maximum data rate is 115.18MSPS, the area resource occupancy is 940 flip-flops, a total of 885 four-input LUTs, 560 occupied chips and two MULT18x18 embedded multiplications. Device. The signal to noise ratio is 40.64 dB. These results show that CORDIC is an ideal way to implement fixed-point math, but ILUT is better in many ways.
Concerned about electronic enthusiast WeChat
Download Enthusiast App
Focus on the enthusiast classroom
related suggestion
The timer in PLC programming can trigger the timer by setting the preset time. Incorrect placement of the timer completion bit component may cause the timer to be completed...
Programming is the Chinese abbreviation for writing a program. It is to let the computer solve a certain problem on behalf of a certain computing system. It is a computing system...
If you like programming, then you are really taken care of by God. You are one of the very lucky few who can make a living from what they like.
This article begins to introduce the concept of human-machine interface and the use of human-machine interface, and secondly describes the programming of human-machine interface and analyzes the difficulties and techniques of programming...
In order to store, search, and read block and transaction information in memory and disk, Bitcoin introduces some access classes. They include: CBlockI...
In the related fields of artificial intelligence, the content involved includes: algorithm, deep learning, machine learning, natural language processing, data structure, Tensor...
The focus of our explanation today is offline programming, through the teaching of online programming in the actual application of the main problems, speaking robot offline programming software...
The Lisp language is used in AI development because its flexibility makes rapid modeling and experimentation possible, which in turn promotes Lisp in A...
For developers who only touch IPv4 in daily development and have not studied the regular expression in depth, facing IPv6 and regular expressions, it is easy to generate...
Classification problems are common problems in machine learning applications, and two classification problems are typical, such as the identification of spam. This article is based on UCI machines...
Written in front: This answer is not about how programmers buy apples in life, but to buy apples as an example to illustrate how programmers solve problems.
Deadlocks occur mainly when there are multiple dependencies latched, which occurs when one thread tries to lock the mutex in the reverse order of another thread. How to avoid...
In the process of MCU programming, if a designer can master multiple programming languages ​​at the same time, then this designer is definitely a very good talent...
"Action-Oriented Programming (AcOP) model and related frameworks can be rooted...
Today, I can claim to be a mixed IT person, and can make a living. In the future, everyone can make a living, thank you two people: Claude Shannon and about...
After completing the algorithm design and system architecture, the next step in many development cycles is the FPGA implementation and digital part verification, sometimes as an ASIC...
Python, which was originally used as a configuration management language, has become one of the most popular programming languages, especially with the AI ​​application...
Ten years ago, the Internet cafes at that time were not called Internet cafes. At that time, there was no king glory and no League of Legends. At that time, Fantasy Westward Journey just launched the Treasure Pavilion system, then...
Another reason is that we can use Python in many places: data science, web development, machine learning, etc. can use P...
This paper mainly introduces the modeling and simulation of Cuk chopper circuit in MATLAB. Cuk chopper circuit is an output voltage that can be greater or less than the input...
Looking at open source code is a good way for programmers to advance, and many open source software is implemented in C language. Linux/Unix system...
In this study, we solved the second limitation of time and memory in visual reasoning. The reasoning agent must remember the phase of its visual history...
This article demonstrates one of the simplest examples of programming based on libevent. Libevent is event-driven IO, suitable for "Hollywood...
Recommend 10 highly acclaimed and unique open source artificial intelligence projects on artificial intelligence projects
The following are the top 9 algorithm-related concepts in a programming interview. I will illustrate these concepts with some simple examples.
David analyzed the data for August 4, 2016. Why did you choose August to avoid David...
Because OB35 is a cyclic interrupt function, here we can use OB35 to do its own cycle clock pulse (put it in OB35...
Sometimes the manufacturer is Fronius, set to Ceneral Purpose, OK. Change back to the Fronius type design...
MathWorks today introduced Release 2018a (R2018a), which includes a series of M...
The LD-Ladder Diagram language is the first programming language used by PLC. It is also the most popular PLC...
There are many kinds of programming languages, each with its own advantages. The statement table is similar to the instruction list. It is a kind of programming language. It is more common in PLC...
The process of executing a program by a microcontroller is actually the process of executing the program we have programmed. That is, the process of instruction by instruction. Every time the computer executes an instruction, it can...
The eight-segment LED digital tube display consists of eight LEDs. The seven long strips of light-emitting tubes in the base are arranged in a "day" shape, and the other is a point-shaped hair...
Python is very versatile, and different programmers use it for unused fields. Different programmers package their own code into libraries for other...
The basic logic instructions of the Mitsubishi FX series plc. Instruction fetch and output instruction (LD/LDI/LDP/LDF/OUT) (...
Recently, TIOBE announced the programming language ranking in February. In expectation, Java ranked first, and C and C++ ranked second and third respectively.
The subroutine P1 is continuously called → the subroutine P2 is called in the subroutine P1 (the subroutine is underset): first make X2=ON, X1=OFF, then...
The bug occurred at MIT, when the system administrator received a call for help from the head of the statistics department. The director said on the phone: "Our mail system has no...
A programming language is a formal language used to define a computer program. It is a standard...
The embedded barrel shifter produces more complex instructions. The barrel shift register is a hardware component that is used before a register is used by an instruction...
This article mainly introduces the basic concept of plc ladder programming example _plc ladder programming. Some programming components in the PLC ladder diagram follow relay...
What is the difference between industrial robot teaching programming and offline programming?
My programming journey began in the late 1990s, when I was in college, I was mainly involved in form-based web design.
MATLAB is a commercial mathematics software produced by MathWorks, USA, for algorithm development, data visualization, data analysis, and...
There are thousands of programming languages, but there are only 10 popular ones. Who created the programming languages ​​we used often when?
Liu Jianshu, the first person to weld robot programming, has made tremendous contributions to welding robots. This article details the labor results of Liu Jianshu's efforts and...
This article begins with a detailed introduction to the programming skills of the welding robot, followed by an introduction to the Yaskawa welding robot programming tutorial, and finally the teaching of the welding robot...
HackerRank released the 2018 Development Skills Report, which explores some of the things that are critical to understanding the developer environment, this...
Do not know what programming language to choose, operating system to do IoT development? Look at this right. Linux is the most widely used IoT gateway...
Scale-invariant feature transform (SIFT) is a...
DoraHacks is a decentralized global geek organization and the most active Hacker community in China, in China and...
Share and join the self-media error correction subscription guide: Compared with the degree of foreign programming education development, China's programming education is still in the beginning...
Python has become the industry standard in the field of vulnerability development, and readers will find that most proof-of-concept tools are written in Python...
I believe that everyone and Xiaobian know about Matlab and FPGA development, but you have thought about using Matlab to your FPGA...
First, the common object operation: In addition to the usual function keys of the general windows window. 1, !dir can view the current work...
The source function randerr generates a bit error sample randint to produce a uniformly distributed random integer matrix ...
Traditionally, industrial robots use complex proprietary language programming, which is difficult for outsiders and can only be understood by robot programmers. Motion controller is now...
Learning the underlying programming or reverse children's shoes, is certainly no stranger to these two terms?! Today, I will introduce you to these two concepts.
This paper introduces Matlab's design of Apriori algorithm in detail. Apriori algorithm is one of the most influential mining Boolean associations...
Method: A floating-point operation is changed to a fixed-point operation because the C6x DSP board does not support floating-point operations, but our original program code is floating...
Dialog has introduced the configurable mixed-signal IC (CMIC) GreenPAKTM SLG46824 and SLG4...
This microblog mainly elaborates on the ant colony algorithm, that is, the detailed implementation of related code. Ant colony algorithm is a stochastic optimization method that has just been born in recent years. It is a kind of self...
This article analyzes the ant colony algorithm matlab program code in detail, please see below for the specific steps.
Exception handling is a topic of concern in any programming language. Good exception handling can make your program more robust and clear...
Architectural patterns are a common, reusable solution for problems that often arise in software architectures in a given context. Architecture mode and...
Only our middle-aged and old people will write this content with a tearful nose. I graduated from university in 1999, and I was studying FORTRA...
Fourier transform in physics, electronics, number theory, combinatorial mathematics, signal processing, probability theory, statistics, cryptography, acoustics, optics, oceanography...
The role of the low-pass filter in signal processing is equivalent to that of other fields such as the moving average in the financial sector...
The first-order Butterworth filter has a decay rate of 6 dB per octave and 20 dB per decade. The attenuation rate of the second-order Butterworth filter is 12 points per octave...
A complete PLC program is not only simple to make the system work, it also requires complete annotations, excellent architecture, good...
The Raspberry Pi is a very inexpensive, palm-sized fully programmable computer. Although the Raspberry Pi is small, its potential is unlimited. you can...
We have all done this before: when the mother does not pay attention, secretly eat candy snacks, and then lead to tooth decay. In the same way, we all violated...
In the image, the text information contains rich high-level semantic information, and the text is extracted. The understanding, indexing and retrieval of the high-level semantics of the image are very...
This article mainly introduces matlab serial data acquisition, matlab is powerful, serial port operation is also very simple, through the following examples you will...
The video images obtained by the camera are affected by the surrounding environment, and there is a lot of useless information and various noise interference. For accurate detection...
Over the past three years, we have been investigating developers on the Semaphore blog to investigate their development of commercial projects...
The ladder diagram follows the form of the relay control circuit. It simplifies the symbolic operation based on the relay and contactor logic control commonly used in electrical control systems...
This article mainly introduces the SIMULINK oscilloscope parameter settings and the steps to set up the oscilloscope in matlab. At SIMUL...
This paper mainly introduces the design of digital low-pass filter. The digital filter has infinite impulse response (IIR) system and finite impulse response (FIR) system...
In the field of MATLAB digital image processing, how to achieve gray-scale transformation of spatial domain image enhancement, and image histogram equalization and matching (registration)...
The gradation transformation is realized by reallocating the pixel values ​​of the original image, and the purpose is to make the dark pixel values ​​in the image be mapped by the gradation transformation function...
1. ABB robot Pdisp track offset use 1) If there are two products in the figure below, the right product track has been completed...
This paper mainly introduces the example of matlab wavelet denoising function, using MATLAB to wavelet decomposition of a speech signal, using strong threshold, soft...
This paper mainly introduces the wavelet denoising matlab program code, steps and functions.实现æ¥éª¤ä¸»è¦åˆ†ä¸ºä¸‰æ¥ï¼šäºŒç»´ä¿¡å·çš„å°æ³¢åˆ†è§£...
MatLab的底层是C写的,C的效率比MatLabè¦é«˜ï¼Œä½†MatLabè¯æ³•ç®€å•å¤šäº†ï¼Œè€Œä¸”简å•ï¼Œä½†æ‰§è¡Œ...
项目分æžéœ€è¦å¯¹é¡¹ç›®çš„生产工艺ã€å·¥ä½œçŽ¯å¢ƒã€ç¡¬ä»¶éœ€æ±‚和控制è¦æ±‚ç‰æ–¹é¢è¿›è¡Œå…¨é¢åˆ†æžã€‚这项工作是整个系统设计...
如何看懂芯片的时åºå›¾ï¼Œè¿›è¡Œç¼–程设计是å•ç‰‡æœºå¯¹å¤–接芯片进行æ“作的基础。本文以1602为例,解æžå•ç‰‡æœºå¯¹...
Which programming language is most popular, some people say that programmers are updated quickly, because programming languages ​​are easily outdated.è¿™å¥è¯è™½ç„¶æœ‰ç‚¹ç»å¯¹...
åšæ•°æ®åˆ†æžã€ç§‘å¦è®¡ç®—ç‰ç¦»ä¸å¼€å·¥å…·ã€è¯è¨€çš„使用,目å‰æœ€æµè¡Œçš„æ•°æ®è¯è¨€ï¼Œæ— éžæ˜¯MATLAB,Rè¯è¨€ï¼ŒPy...
本文介ç»æœ‰å…³JavaScript获å–电å秤串å£æ•°æ®çš„编程代ç 。
Description of Automotive Cable Sleeving for wire harness
High flame retardant braided sleeving is braided by UL 94 VO grade raw material PET mono filaments. It has excellent expandability, abrasive resistance and high flame retardant. Its flame rating can be up to VW-1.
With excellent flexibility, flame resistance, wear resistance and heat insulation.
Strong corrosion resistance and abrasion resistance.
Excellent softness, easy to bend.
Durable in use.
Can be used for wire and cable protection, pipe and hose, indoor wiring etc.
Cable sleeve offers durable abrasion resistance in a wide range of industrial applications.
The open weave construction allows an easy installation on a bundle of hoses and cables, even if some with bulky or large connectors.
Totally expanded the sleeving can reach at least one point five times than the initial dimension.
Flame Retardant Cable Sleeves,Flexible Cable Sleeve,Heat Resistant Cable Sleeves,Automotive Cable Sleeving
Shenzhen Huiyunhai Tech.Co.,Ltd , https://www.hyhbraidedsleeve.com