Next Article in Journal
Diagnosis of DC-DC Converter Semiconductor Faults Based on the Second-Order Derivative of the Converter Input Current
Previous Article in Journal
Evaluation of Haptic Textures for Tangible Interfaces for the Tactile Internet
Previous Article in Special Issue
Design of High-Reliability Low-Dropout Regulator Combined with Silicon Controlled Rectifier-Based Electrostatic Discharge Protection Circuit Using Dynamic Dual Buffer
 
 
Font Type:
Arial Georgia Verdana
Font Size:
Aa Aa Aa
Line Spacing:
Column Width:
Background:
Article

Toward Memory-Efficient Analog Design Using Precomputed Lookup Tables

Integrated Circuits Laboratory (ICL), Faculty of Engineering, Ain Shams University, Cairo 11517, Egypt
Electronics 2024, 13(18), 3776; https://doi.org/10.3390/electronics13183776
Submission received: 8 August 2024 / Revised: 14 September 2024 / Accepted: 21 September 2024 / Published: 23 September 2024
(This article belongs to the Special Issue Feature Papers in Circuit and Signal Processing)

Abstract

:
Analog design productivity remains a challenge in the digitally driven semiconductor chip design field. Knowledge-based and simulation-based analog automation approaches have not achieved widespread acceptance in the analog design community. Systematic analog design using precomputed lookup tables (LUTs) is a promising approach that can address the design productivity challenge. Although modern computing systems have powerful memory capabilities, which make the LUT approach viable, reducing the memory footprint of the LUTs remains a challenge. A memory-efficient design technique using LUTs is proposed by using an incomplete grid in the MOSFET degrees-of-freedom (DoFs) space. An efficient indexing technique for the incomplete grid is also proposed, using a precomputed offset array in various scenarios, such as two-sided constraints and three-dimensional LUTs. The results show that the proposed technique can achieve up to a 67% reduction in memory footprint, in addition to improving LUT generation time and query performance.

1. Introduction

The number of transistors that can be integrated into a single chip is still steadily increasing, as predicted by Moore’s law. The FinFET has powered the industry throughout the previous decade, and the vertically stacked gate-all-around nanosheets will power the industry for two more decades. Although CMOS analog/mixed-signal blocks usually represent a tiny fraction of the billions of transistors on-chip, they are the dominant players from the perspective of design time and design effort. This can be explained by noting that, while digital design automation has been the industry standard for decades, analog design automation is still lagging, and the majority of the analog/mixed-signal circuits are still hand-crafted at the transistor level [1,2,3].
Traditionally, analog designers used the concept of overdrive voltage ( V o v ) to define the transistor bias point in the strong-inversion region. The overdrive voltage is based on the long-channel square-law MOSFET model. But as the technology minimum feature size has steadily scaled down, transistors have deviated from these simple models, and the designers resorted to lengthy iterations using simulation tools. Not only is this a tedious, time-consuming process but it also leads to sub-optimal designs. The overdrive voltage has also gradually been replaced with a simulation-based design knob, the drain saturation voltage ( V d s a t ). Since the transition from the triode region to the saturation region is a gradual process, V d s a t is an ill-defined parameter that mimics the legacy of V o v . With the increased importance of low-voltage and low-power design, more transistors are now biased in moderate and weak-inversion regions. Consequently, the overdrive voltage concept has lost its significance. Other design knobs that describe the MOSFET bias point across all operating regions, such as the gm/ID and the inversion coefficient, have been proposed [4,5].
Analog design automation efforts have been ongoing for more than 30 years. These efforts can generally be divided into two categories: knowledge-based approaches and simulation-based approaches [1,2,3,6]. In the knowledge-based approach, the designer tries to turn their design procedure into a computer program. This can be useful for “personal” design automation, where the designer automates some of their own time-consuming operations. However, it is difficult to generalize and lacks the accuracy of real simulation models. Moreover, it does not lead to optimal solutions. On the other hand, the simulation-based approach relies on invoking the simulator in an optimization loop. This has the advantages of accuracy and optimal solutions, but invoking SPICE in the loop results in long computation times. Moreover, the resultant point may not make sense from a designer’s perspective; thus, the optimization sampling process must be guided by detailed and careful constraints. Hybrid approaches and machine learning/artificial intelligence approaches have also been proposed, but they suffer from accuracy issues when surrogate models are used, or from long computation times when the simulator is invoked in the loop [7,8,9,10,11].
The design of analog circuits using precomputed lookup tables (LUTs) is a promising approach that bridges the gap between the two distant islands of classical handcrafting and black-box simulation-based optimization [12,13,14,15,16,17,18]. The precomputed LUTs are generated by a simulator to abstract the complexity of modern device models; thus, simulation accuracy is preserved. The device data in the LUTs can be manipulated in different scenarios to enable the seamless integration of different design methodologies, such as the gm/ID design methodology, which enables intuitive biasing of transistors across all inversion levels [4,5]. The LUTs can be used in a knowledge-based approach to address the accuracy problem at the transistor level. The accuracy problem at the circuit level can be addressed by LUT-based custom solvers in an optimization loop or in a design-space exploration setting. Compared to SPICE-in-the-loop approaches, this will solve the long computation time problem.
The precomputed LUTs are generated once for a given technology; thus, the overhead of the generation process (a few hours per device) is tolerable. However, the memory footprint of the LUTs, which can be up to a few GBs per device depending on the LUT accuracy, is a drawback that the user encounters with every usage. The memory capabilities of computing devices have significantly improved in recent decades, making the usage of large LUTs viable. However, it is still desirable to minimize the memory footprint of the LUTs, especially when designing a circuit that involves a large number of different device types. In this paper, an incomplete-grid LUT is proposed to reduce the MOSFET LUT memory footprint by up to 67%.
The rest of this paper is organized as follows. Section 2 presents an overview of the MOSFET LUTs. Section 3 describes the proposed incomplete-grid memory-reduction technique. Section 4 presents the results and discussion. Section 5 concludes this paper.

2. The MOSFET Lookup Table (LUT)

Figure 1 shows the testbench used to characterize the MOSFET and build the lookup tables (LUTs). An N-type MOSFET is used for illustration purposes, but the discussion applies to P-type MOSFETs as well. The MOSFET has five degrees of freedom (DoFs). The DoFs are divided into two groups: first, the three terminal voltages V G S , V D S , and V S B , and second, the sizing parameters, channel width W , and length L . To build an LUT that captures these five DoFs, the LUT would need to be 5D and would have a large size. Fortunately, the MOSFET parameters are directly proportional to the width regardless of the inversion level (weak/moderate/strong inversion) or the mode of operation (triode, pinch-off, velocity saturation). Thus, the LUT can be constructed for a single reference width W r e f , and linear scaling can be used to calculate the MOSFET parameters at any other width. This linear scaling may incur errors due to stress and narrow-width effects, but these errors can be corrected using small auxiliary LUTs [15].
In the context of the gm/ID design methodology, the V G S DOF can be replaced with the gm/ID ratio in order to zoom in on the region of interest for analog design and, consequently, reduce the LUT size. However, the gm/ID vs. V G S characteristics depend on other variables, such as V S B , and the extreme values of V G S are needed for analog/mixed-signal design (e.g., sizing a sampling switch). Thus, building the LUT using the full range of V G S is necessary.
By exploiting the linear scaling property, the LUT is reduced to a 4D array, as depicted in Figure 2. Each 4D array stores one of the MOSFET parameters, e.g., drain current, small signal parameters, capacitances, noise parameters, etc. The LUT generation process is automated using a computer program that generates the testbench netlists, parses the simulation results, and stores the data in the appropriate structure. The process can be applied to devices of different types and at multiple temperatures and process corners to fully characterize a technology node. The LUT generation process can take up to a few hours per device, but it is carried out only once for a given technology. Thus, it is a one-time sunk cost to generate the LUTs, which can then be used by multiple designers across different projects.
An interpolation operation is required when an off-grid point is queried. This represents an inherent accuracy limitation. Thus, building the LUTs involves a size–accuracy trade-off. The step size used for every DoF is the knob that controls this trade-off. Using a fine step size improves the accuracy but results in a large memory footprint. Although the smart interpolation techniques proposed in [14] can relax this trade-off, the overall memory footprint is still significant, especially when designing a circuit that involves many device types across different corners.

3. Memory Reduction Using an Incomplete-Grid LUT

3.1. The Incomplete-Grid LUT

The process of building the LUT involves sweeping the four MOSFET DoFs to create a 4D array for every MOSFET parameter. Each array has gridded data, meaning a value exists at every grid point, where the grid points are defined by the DoFs’ sweep points, i.e., the grid vectors. A key observation that can lead to substantial memory savings is that a full grid is not really required. The full grid may contain many values that are not practically needed or may violate the MOSFET safe operating region.
As an example, assume that a MOSFET has the voltage ratings given in Table 1. It is important to note that the sweep variables used to build the LUT are V G S , V D S , and V S B . Thus, the information given for V G B and V D B in Table 1 is not utilized in the case of a full-grid LUT. Figure 3 shows an illustration of a 2D grid using the V G S and V S B grid vectors, with a coarse step of 0.3 V for illustration purposes. The grid points that do not satisfy the condition of V G B 1.2 V are marked in red, where V G B = V G S + V S B . It is clear that filtering out these invalid points will result in a substantial saving in the LUT memory footprint. While the observation that an incomplete grid should be used may seem obvious, it has not been reported in previous works discussing LUT-based analog design [12,14,17].

3.2. Indexing the Incomplete-Grid LUT

The process of evaluating the LUT output at a given query point involves querying the surrounding grid points and then performing an interpolation operation. The query of a value in an N-dimensional full grid requires defining the index of each grid vector, i.e., the index is an N-dimensional vector. For the 2D example shown in Figure 3, it is necessary to define the V G S index (column index) and the V S B index (row index) to identify the query grid point. When the invalid points are removed from the array, it is no longer possible to use the full-grid indexing methodology.
To address this problem, the full-grid array is unrolled into a 1D vector, as shown in Figure 4. The full-grid 1D index ( F G i ) can be calculated as follows:
F G i = V G S i + V S B i 1 × F G S
where V G S i and V S B i are the indices in the V G S and V S B grid vectors, and the full-grid stride F G S is the number of columns per row, i.e., the length of the V G S grid vector. Note that it is assumed that the first index is equal to 1.
Next, the incomplete grid is unrolled into a 1D vector, as shown in Figure 5. The cells marked in red are shown for clarity, but they do not exist in the incomplete grid. Thus, their index is represented by a dash (-), i.e., they do not have an index. The incomplete-grid 1D index ( I G i ) cannot be calculated using (1). The stride in this case is not constant and depends on the number of points discarded in each row. The I G i can be expressed as
I G i = V G S i + i = 1 j 1 I G S i
where I G S i is the incomplete-grid stride of r o w i , i.e., the number of valid points in r o w i . The I G S vector, as illustrated in Figure 6, is an additional overhead vector that is crucial for correctly mapping elements from the original array to the incomplete-grid 1D vector.

3.3. Incomplete Grid with Two-Sided Constraints

The previous incomplete-grid example considered a one-sided constraint, e.g., V G B V G B m a x . In some practical scenarios, it is necessary to apply a two-sided constraint, e.g., V G B m i n V G B V G B m a x . For example, it may be necessary to extend the characterization range of the device to include negative values of V G S and V S B . Negative values of V G S may occur naturally in stacked devices and can be used to decrease the leakage current if the device does not suffer from gate-induced drain leakage (GIDL). Negative values of V S B may be also used in a body biasing scheme to tune the MOSFET’s behavior.
Figure 7 shows an example of a 2D ( V G S , V S B ) array with a two-sided constraint applied to V G B . It is assumed that both V G S and V S B can be negative, but V G B is always positive. The solution given by (2) will not work for this case since there can be invalid elements at the beginning of every row; thus, another solution has to be developed.
An effective solution to this problem is to use an offset vector to replace the I G S vector. The offset vector will simply store the difference between the F G i and the I G i . In this case, the I G i can be expressed as
I G i = F G i + O S i
where F G i is given by (1) and O S i is the offset of r o w i . Figure 8 shows the offset vector, where an offset value is calculated and stored for every row in the array depicted in Figure 7. The offset vector is calculated during the LUT generation process and represents an additional overhead vector that is crucial for correctly indexing the incomplete-grid 1D vector.

3.4. Three-Dimensional Incomplete Grid

The previous sections considered the case of a 2D grid. Practically, the constraint applied to V G B in the V G S vs. V S B space can be similarly applied to V D B in the V D S vs. V S B space, as shown in Figure 9. Thus, by combining the two spaces, a 3D V G S , V D S , V S B array is formed. The unrolled 1D full-grid index ( F G i ) for the 3D array is given by
F G i = V G S i + V D S i 1 × S V D S + V S B i 1 × S V S B
where V G S i , V D S i , V S B i are the indices of the V G S , V D S , V S B grid vectors, S V D S is the V D S stride, defined as
S V D S = l e n g t h V G S
and S V S B is the V S B stride, defined as
S V S B = l e n g t h V G S × l e n g t h V D S
One important point to consider is that the V G B and V D B constraints must be applied concurrently to check the valid points. Thus, the condition of the valid points is given by ANDing all the following constraints:
V G S V G S i + V S B V S B i V G B m a x
V G S V G S i + V S B V S B i V G B m i n
V D S V D S i + V S B V S B i V D B m a x
V D S V D S i + V S B V S B i V D B m i n
These conditions are also used when a query point is requested from the LUTs to ensure that the eliminated points are not included in the automated design flow.
For every V G S row, the incomplete-grid offset is calculated and stored in the offset array ( O S ). Thus, the offset becomes a 2D array with a total number of elements equal to
n u m e l O S = l e n g t h V D S × l e n g t h V S B
The incomplete-grid index ( I G i ) for the query point V G S i , V D S i , V S B i is now given by
I G i = F G i V G S i , V D S i , V S B i + O S V D S i , V S B i
which can be used to access the unrolled 1D incomplete grid.

4. Results and Discussion

The proposed incomplete-grid implementation for the LUT can result in significant savings in the LUT memory footprint. An overhead exists due to the offset array ( O S ), but this overhead is negligible, especially when the length of the V G S grid vector is large. The offset array overhead, expressed as a percentage of the device LUT size, is given by
O S o v e r h e a d % = 1 N × C × l e n g t h L × l e n g t h V G S × 100
where N is the number of LUTs, i.e., the number of parameters stored for a given device, e.g., I D , g m , g d s , etc., and C is the number of process and temperature corners. Practically, if it is assumed that N > 10 and the length of the L and V G S grid vectors > 10 , the overhead will be less than 0.1%. Note that the offset array is shared among all the LUTs of a given device because all the LUTs use the same grid vectors and the same constraints to filter the full grid and create the incomplete grid. It should be noted that the offset array does not add a performance overhead because it is precomputed during the LUT generation process and stored with the LUT structure.
Figure 10 compares the sizes of the full-grid LUT and the incomplete-grid LUT. The number of points of the three grid vectors V G S , V D S , V S B is assumed to be the same, i.e., a 3D square array. The figure clearly shows that the incomplete grid can result in significant memory savings. The percentage of memory saving can be calculated as
M e m o r y S a v i n g % = F u l l G r i d S i z e I n c o m p l e t e G r i d S i z e F u l l G r i d S i z e × 100
and is plotted in Figure 11. As the number of grid vector points increases, the memory saving approaches 67%, which means reducing two-thirds of the full-grid LUT size.
The previous results assume that the grid vectors have a uniform step. Practically, the step may be variable, with a small step used at the beginning and then an increased step afterward. The justification for the variable step is that, for analog circuits, the devices are usually biased with low to moderate values of V G S , V D S , V S B ; thus, more accuracy is needed in this region. Consider the case where the number of points used in the 0 V m a x / 2 range is double the number of points used in the V m a x / 2 V m a x range. The memory savings in this case are plotted in Figure 12. As expected, the memory savings are less than in the uniform step case, but a significant memory saving (around 50%) can still be achieved.
For rectangular arrays, the incomplete grid may suffer from data loss at the array edges. For example, consider the case shown in Figure 13, where the number of points in the V S B vector is less than the number of points in the V G S vector. Assume it is necessary to query a point that has V G S = 0.85 and V S B = 0.3 . This point is valid because V G B = 1.15 < 1.2 . However, since the neighboring point from the right V G S = 1 , V S B = 0.3 has been removed, the interpolation process will fail to obtain the grid points that surround the query point. The same problem applies to the case of V G S = 0.8 and V S B = 0.35 but in the downward direction. A simple solution to this problem is to always add one extra point after the last valid point. This will reduce memory savings, especially when the grid vector is small. However, the memory footprint is problematic when the grid vectors are large, and in this case, the extra grid point will not add significant overhead.
It is worth noting that the advantage of using the incomplete-grid LUT is not only the memory savings. The device characterization testbenches can also utilize only the valid points; thus, the LUT generation time will be reduced by the same memory-saving factor. Another advantage is that the time to query data from the LUT will also be reduced due to the smaller LUT size.
In order to demonstrate a design example using the incomplete-grid LUTs, we consider the two-stage CMOS Miller amplifier shown in Figure 14. The design space of the circuit is generated by substituting the device parameters from the LUTs into symbolic expressions for the circuit’s performance metrics. A database containing 100k design points is generated in 24 s using a standard machine with a quad-core processor and 8 GB of RAM. Figure 15 illustrates the circuit design space showing the gain-bandwidth product (GBW) vs. the total bias current while applying constraints on the circuit’s DC gain and phase margin (PM). Such a design chart can be used to evaluate the feasibility limits of a given circuit in a given technology and to obtain the Pareto optimal fronts for the design performance metrics.

5. Conclusions

This paper presented a technique to reduce the memory footprint of lookup tables (LUTs) used in CMOS analog design by using an incomplete grid. The one-dimensional unrolled grid can be indexed using a precomputed offset array that typically represents less than 0.1% overhead. The proposed technique supports one-sided/two-sided constraints and 2D/3D arrays. A 67% reduction in the LUT size can be achieved, along with a similar speedup in LUT generation time. Handling the loss of information at the valid/invalid boundary of the incomplete grid was also discussed.

Funding

This research was funded by Egypt’s Information Technology Industry Development Agency (ITIDA) grant number ARP2022.R33.4.

Data Availability Statement

Data are contained within the article.

Acknowledgments

The author would like to thank the Analog Designer’s Toolbox (ADT) team at Master Micro LLC for supporting this work.

Conflicts of Interest

The author declares no conflicts of interest. The funders had no role in the design of the study; in the collection, analyses, or interpretation of data; in the writing of the manuscript; or in the decision to publish the results.

References

  1. Scheible, J. Optimized is Not Always Optimal—The Dilemma of Analog Design Automation. In Proceedings of the 2022 International Symposium on Physical Design; Association for Computing Machinery, New York, NY, USA, 27–30 March 2022; pp. 151–158. [Google Scholar] [CrossRef]
  2. Barros, M.F.; Guilherme, J.M.; Horta, N.C.G. Analog Circuits and Systems Optimization Based on Evolutionary Computation Techniques; Springer: Berlin/Heidelberg, Germany, 2010. [Google Scholar]
  3. Rutenbar, R.A.; Gielen, G.G.E.; Antao, B.A. (Eds.) Computer-Aided Design of Analog Integrated Circuits and Systems; Wiley-IEEE Press: Hoboken, NJ, USA, 2002. [Google Scholar]
  4. Silveira, F.; Flandre, D.; Jespers, P.G. A gm/ID based methodology for the design of CMOS analog circuits and its application to the synthesis of a silicon-on-insulator micropower OTA. IEEE J. Solid-State Circuits 1996, 31, 1314–1319. [Google Scholar] [CrossRef]
  5. Jespers, P. The gm/ID Methodology, a Sizing Tool for Low-Voltage Analog CMOS Circuits: The Semi-Empirical and Compact Model Approaches; Springer Science & Business Media: Berlin/Heidelberg, Germany, 2010. [Google Scholar]
  6. Crossley, J.W. BAG: A Designer-Oriented Framework for the Development of AMS Circuit Generators. Ph.D. Thesis, EECS Department, University of California, Berkeley, CA, USA, 2014. [Google Scholar]
  7. Linán-Cembrano, G.; Lourenço, N.; Horta, N.; de la Rosa, J.M. Design Automation of Analog and Mixed-Signal Circuits Using Neural Networks—A Tutorial Brief. IEEE Trans. Circuits Syst. II Express Briefs 2023, 71, 1677–1682. [Google Scholar] [CrossRef]
  8. Sajjadi, S.A.; Sadrossadat, S.A.; Moftakharzadeh, A.; Nabavi, M.; Sawan, M. DNN-Based Optimization to Significantly Speed Up and Increase the Accuracy of Electronic Circuit Design. IEEE Trans. Circuits Syst. I Regul. Pap. 2024, 71, 1273–1284. [Google Scholar] [CrossRef]
  9. Choi, Y.; Park, S.; Choi, M.; Lee, K.; Kang, S. MA-Opt: Reinforcement Learning-Based Analog Circuit Optimization Using Multi-Actors. IEEE Trans. Circuits Syst. I Regul. Pap. 2024, 71, 2045–2056. [Google Scholar] [CrossRef]
  10. Budak, A.F.; Gandara, M.; Shi, W.; Pan, D.Z.; Sun, N.; Liu, B. An Efficient Analog Circuit Sizing Method Based on Machine Learning Assisted Global Optimization. IEEE Trans. Comput.-Aided Des. Integr. Circuits Syst. 2021, 41, 1209–1221. [Google Scholar] [CrossRef]
  11. Li, Z.; Carusone, A.C. Design and Optimization of Low-Dropout Voltage Regulator Using Relational Graph Neural Network and Reinforcement Learning in Open-Source SKY130 Process. In Proceedings of the 2023 IEEE/ACM International Conference on Computer Aided Design (ICCAD), San Francisco, CA, USA, 28 October–2 November 2023; pp. 1–9. [Google Scholar] [CrossRef]
  12. Jespers, P.G.; Murmann, B. Systematic Design of Analog CMOS Circuits Using Pre-Computed Lookup Tables; Cambridge University Press: Cambridge, UK, 2017. [Google Scholar]
  13. Elmeligy, K.; Omran, H. Fast Design Space Exploration and Multi-Objective Optimization of Wide-Band Noise-Canceling LNAs. Electronics 2022, 11, 816. [Google Scholar] [CrossRef]
  14. Youssef, A.A.; Murmann, B.; Omran, H. Analog IC Design Using Precomputed Lookup Tables: Challenges and Solutions. IEEE Access 2020, 8, 134640–134652. [Google Scholar] [CrossRef]
  15. Mohamed, K.; Yasseen, K.Y.; Murmann, B.; Omran, H. Capturing Layout Dependent Effects in MOSFET Circuit Sizing Using Precomputed Lookup Tables. IEEE Access 2023, 11, 41205–41217. [Google Scholar] [CrossRef]
  16. Mohamed, K.; Nafea, S.; Omran, H. Design Automation of Low Dropout Voltage Regulators: A General Approach. Electronics 2022, 12, 205. [Google Scholar] [CrossRef]
  17. Murmann, B. Practical Aspects of Script-Based Analog Design Using Precomputed Lookup Tables. In Proceedings of the 2024 IEEE International Symposium on Circuits and Systems (ISCAS), Singapore, 19–22 May 2024; pp. 1–5. [Google Scholar] [CrossRef]
  18. Arevalos, D.; Marín, J.; Herman, K.; Rojas, C.A. Leveraging Lookup Tables for Efficient LDO Design Exploration using Open-Source CAD Tools and IHP-Open130-G2 PDK. In Proceedings of the 2024 31st International Conference on Mixed Design of Integrated Circuits and System (MIXDES), Gdansk, Poland, 27–28 June 2024; pp. 124–129. [Google Scholar] [CrossRef]
Figure 1. A schematic of the testbench used to build the MOSFET LUT showing the five DOFs of the MOSFET.
Figure 1. A schematic of the testbench used to build the MOSFET LUT showing the five DOFs of the MOSFET.
Electronics 13 03776 g001
Figure 2. A simplified illustration of a device’s LUT structure. The structure contains a 4D LUT for every MOSFET parameter.
Figure 2. A simplified illustration of a device’s LUT structure. The structure contains a 4D LUT for every MOSFET parameter.
Electronics 13 03776 g002
Figure 3. A 2D full grid using V G S and V S B grid vectors. The value of V G B is shown at every grid point. The green and red colors show the valid and invalid points, respectively.
Figure 3. A 2D full grid using V G S and V S B grid vectors. The value of V G B is shown at every grid point. The green and red colors show the valid and invalid points, respectively.
Electronics 13 03776 g003
Figure 4. The 2D array in Figure 3 unrolled into a 1D vector. The full-grid index ( F G i ) is shown for each grid point.
Figure 4. The 2D array in Figure 3 unrolled into a 1D vector. The full-grid index ( F G i ) is shown for each grid point.
Electronics 13 03776 g004
Figure 5. The 2D array in Figure 3 unrolled into a 1D vector. The incomplete-grid index ( I G i ) is shown for each grid point.
Figure 5. The 2D array in Figure 3 unrolled into a 1D vector. The incomplete-grid index ( I G i ) is shown for each grid point.
Electronics 13 03776 g005
Figure 6. Two examples of the incomplete-grid stride vector ( I G S ).
Figure 6. Two examples of the incomplete-grid stride vector ( I G S ).
Electronics 13 03776 g006
Figure 7. A 2D full grid using V G S and V S B grid vectors. The value of V G B is shown at every grid point. The green and red colors show the valid and invalid points, respectively. A two-sided constraint is applied to V G B .
Figure 7. A 2D full grid using V G S and V S B grid vectors. The value of V G B is shown at every grid point. The green and red colors show the valid and invalid points, respectively. A two-sided constraint is applied to V G B .
Electronics 13 03776 g007
Figure 8. The 2D array in Figure 7 with the additional offset vector ( O S ), which stores the cumulative offset at every row.
Figure 8. The 2D array in Figure 7 with the additional offset vector ( O S ), which stores the cumulative offset at every row.
Electronics 13 03776 g008
Figure 9. A 2D full grid using V D S and V S B grid vectors. The value of V D B is shown at every grid point. The green and red colors show the valid and invalid points, respectively.
Figure 9. A 2D full grid using V D S and V S B grid vectors. The value of V D B is shown at every grid point. The green and red colors show the valid and invalid points, respectively.
Electronics 13 03776 g009
Figure 10. The number of points per LUT vs. the number of points per grid vector. The incomplete-grid LUT can achieve significant memory savings.
Figure 10. The number of points per LUT vs. the number of points per grid vector. The incomplete-grid LUT can achieve significant memory savings.
Electronics 13 03776 g010
Figure 11. The percentage of memory saving due to using the incomplete grid vs. the number of points per grid vector for grid vectors with a uniform step.
Figure 11. The percentage of memory saving due to using the incomplete grid vs. the number of points per grid vector for grid vectors with a uniform step.
Electronics 13 03776 g011
Figure 12. The percentage of memory saving due to using the incomplete grid vs. the number of points per grid vector for grid vectors with a non-uniform step.
Figure 12. The percentage of memory saving due to using the incomplete grid vs. the number of points per grid vector for grid vectors with a non-uniform step.
Electronics 13 03776 g012
Figure 13. An example of a rectangular array showing loss of data at the edges.
Figure 13. An example of a rectangular array showing loss of data at the edges.
Electronics 13 03776 g013
Figure 14. Schematic of the two-stage CMOS Miller amplifier used as a design example.
Figure 14. Schematic of the two-stage CMOS Miller amplifier used as a design example.
Electronics 13 03776 g014
Figure 15. Design space of the two-stage Miller amplifier showing the GBW vs. the total bias current under DC gain and PM constraints.
Figure 15. Design space of the two-stage Miller amplifier showing the GBW vs. the total bias current under DC gain and PM constraints.
Electronics 13 03776 g015
Table 1. Example of a MOSFET device’s voltage ratings.
Table 1. Example of a MOSFET device’s voltage ratings.
Minimum (V)Maximum (V)
V G S 01.2
V D S 01.2
V S B 01.2
V G B 01.2
V D B 01.2
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content.

Share and Cite

MDPI and ACS Style

Omran, H. Toward Memory-Efficient Analog Design Using Precomputed Lookup Tables. Electronics 2024, 13, 3776. https://doi.org/10.3390/electronics13183776

AMA Style

Omran H. Toward Memory-Efficient Analog Design Using Precomputed Lookup Tables. Electronics. 2024; 13(18):3776. https://doi.org/10.3390/electronics13183776

Chicago/Turabian Style

Omran, Hesham. 2024. "Toward Memory-Efficient Analog Design Using Precomputed Lookup Tables" Electronics 13, no. 18: 3776. https://doi.org/10.3390/electronics13183776

Note that from the first issue of 2016, this journal uses article numbers instead of page numbers. See further details here.

Article Metrics

Back to TopTop