**RFIC-GPT Wiki** This wiki provides a user guide for RFIC-GPT and includes some basic knowledge of radio frequency circuits design. ---- ====== Overview of RFIC Design ====== RFIC (Radio Frequency Integrated Circuit) design is a highly complex and challenging field that involves multiple technical disciplines, including but not limited to microwave engineering, electromagnetics, circuit design and simulations. Therefore, interdisciplinary knowledge is required to achieve high-quality RFIC design and eventually lead to high-performance RFIC chips. RFIC Design normally includes a series of IP (Intellectual Property) circuits, such as: * [[:wiki#pa_active_circuit|Power Amplifiers, PA]] * Low Noise Amplifiers, LNA * Voltage-Controlled Oscillators, VCO These RF IP circuits encompass not only active components but also a significant number of passive components, such as: * [[:wiki#inductor|Inductor]] * [[:wiki#transformer|Transformer]] * [[:wiki#matching_network|Matching Network]] These passive components play a crucial role in RFIC design, often used for the conversion of single-ended signals and differential signals, and matching input or output impedances. Traditional RFIC Design requires precise design and optimization of both active and passive partitions, and it is not only a time-consuming iterative process, but also heavily depends on particular designers' experience. ---- ====== RFIC-GPT ====== ===== Introduction ===== Targeted at RF chip design, **RFIC-GPT** from **IC Prophet** utilizes AI algorithms to calculate and generate schematics or GDSII layouts of RF devices and circuits that meet designers' specifications(e.g. Q-factor, inductance, coupling coefficient of transformers, gain of Power Amplifiers, etc.). With an accuracy of at least 95%, designers can directly apply the generated results in their design. RFIC-GPT is capable of assisting RF designers in expeditiously finding optimal design parameters, substantially reducing the tedious and iterative manual searching process. RFIC-GPT has already been silicon-proven and commercial chips enabled by RFIC-GPT are shipping. Currently support: * Passive devices/circuits: [[:wiki#inductor|Inductor]], [[:wiki#transformer|Transformer]], [[:wiki#matching|Matching Network]], [[:wiki#multi-value_matching|Multi-value Matching Network]] * Active circuits: [[:wiki#pa_active_circuit|PA Active Circuit]] RFIC-GPT simplifies and accelerates the complex RF design process. Users only need to input design specifications, and within seconds the GDSII or schematics will be generated. The results can be downloaded and applied in standard design platforms such as Cadence Virtuoso, Keysight ADS, etc. **RFIC-GPT **Online version: [[http://www.rfic-gpt.com|www.RFIC-GPT.com]] The offline version is **RFIC-GPT Pro**, which offers a broader spectrum of application scenarios, with more complete functions and customized services. For inquiries, please email: sales@icprophet.com. ---- ===== Quick Start: RFIC-GPT ===== You can get the design of RF circuits and GDSII files from RFIC-GPT within 3 steps. **Step 1: Enter Design Specifications** Select passive devices or active circuits on the leftside navigation bar, and enter your design specifications. {{https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wiki/rfic_generator/passive/quick_start_step_11.png?nolink&1200x793}} ---- **Step 2: Click "Calculate" and view the calculated results. Each of the calculated results is optimized towards certain specifications. ** {{https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wiki/rfic_generator/passive/quick_start_step_2.png?nolink&1200x785}} ---- **Step 3: ****Select the most suitable result for your design, and click "Download GDSII layout".** You can either: * Import the GDSII directly into your Cadence Virtuoso or * Check the **generation code** in the downloaded ''.txt'' file, and enter it into **[[:wiki#rfic-generator_user_guide|RFIC-Generator]]** . {{https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wiki/rfic_generator/passive/quick_start_step_3.png?nolink&1200x877}} ---- **Demonstration Video** [[https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wwwweb/video/helpvide5.mp4|https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wwwweb/video/helpvide5.mp4]] ---- ====== RFIC-GPT User Guide ====== ===== Inductor ===== ==== About Design Specifications ==== {{https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wiki/rfic_generator/passive/inductor_enter_specifications.png?nolink&500x742}} ---- * **Design Frequency (GHz)** '' input range: 0.5GHz ~ 85GHz '' Design frequency refers to the operating frequency of the inductor in a specific circuit. For now, **RFIC-GPT** supports a range between 0.5GHz and 85GHz. ---- * **Quality Factor Q** '' input range: 2 ~ 50 '' Quality factor Q is one of the most important specifications of an inductor. It indicates an inductor's performance at the operating frequency. Generally, the higher the Q, the lower the loss, and the better the performance. Inductors with high Q are more efficient in signal transmission circuits and filter circuits. Tips for setting the Q: Generally, setting the Q to around 10 would suffice for most on-chip inductor scenarios. If the required Q is unclear, we suggest you to set the inductance $L$ first, then adjust the Q upwards from 10. Observe how high the Q can go while satisfying the required $L$. Note that the technology node and layer thickness should be chosen too. ---- * **Inductance L (pH)** ''input range:40pH-10000pH'' (Exception: the upper boundary is raised to 25000pH for 130nm node) The inductance is measured in picohenries(pH). Choosing the correct inductance is crucial for ensuring impedance matching and efficient signal transmission. The inductance here can be regarded as a summation of both the inductive and capacitive properties of the inductor coil. For an inductor with an impedance of $Z$, its inductance $L$ is calculated as follow: $$L=\frac{imag(Z)}{\omega}, \omega=2\pi\times freq $$ ---- * **Self Resonant Frequency SRF (>GHz) **//(optional)// The SRF of an inductor is the frequency at which the parasitic capacitance of the inductor resonates with the ideal inductance of the inductor, resulting in an extremely high impedance. The inductance only acts like an inductor below its SRF. Therefore, SRF is usually greater than 1.5 times of the operating frequency as a matter of concern in stability and reliability. The default input value for SRF is **1.5 times** the ''Design Frequency''. ---- * **Technology Node** At present, the technology nodes we support include 22nm, 28nm, 40nm, 55nm, 65nm, 110nm and 130nm. ---- * **Metal Layer Thickness (µm)** You should choose the metal layer thickness **in accordance with your design and the corresponding technology files**. Different metal layers have varying thicknesses and dielectric properties, and the electrical performance of inductor coils is primarily related to the thickness of the metal layer. **Please refer to the techfile or the .PROC file of the PDK and check the data.** Tips for setting the metal layer thickness: The accuracy of the results improves as the chosen metal layer thickness closely matches the thickness of the metal layer you used in your design. ---- * **Signal Input Type** ''Signal Input Type'' refers to whether the signal is input into the inductor as a differential(DIFF) or single-ended(SINGLE) signal. Differential signal transmission is commonly used in high-speed data transmission or cases requiring better interference resistance. In contrast, single-ended signal transmission is typically used in general circuits but is more susceptible to electromagnetic interference. Choosing the appropriate signal input type (DIFF or SINGLE) is crucial for circuits' performance and stability. ---- * **Max Layout Length (µm) & Max Layout Width **//(optional)// ''Max Layout Length/Width'' refers to the length and width constraints of the generated layout. Fill in the blanks according to your design requirements. You can also leave these blank. Generally, the larger the area, the more turns of the coil can be wound, resulting in a higher inductance value. ==== Trade-off in Calculation Results ==== Fill in the "Inductor Specifications" according to your design. Click "Calculate" and you will get three sets of results, each of which has a different focus point: - optimized towards Q; - optimized towards $L$; - optimized towards all specifications and error-balanced. The corresponding GDSII files are provided as well. ---- * **If the calculated results meet design specifications:** If any of these three results meets your design specifications, you can proceed to [[:wiki#gdsii_download_and_application|GDSII Download and Application]]. ---- * **If design specifications are not met:** You may need to make trade-offs in your specifications. Here are some suggestions: A. Since SRF is a mandatory constraint, setting it excessively high may lead to an overemphasis on SRF and misleading the results. Keep SRF appropriately above the operating frequency. {{https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wiki/rfic_generator/passive/trade_offs_A_SRF.png?nolink&800x566}} B. The layouts generated may have varying lengths and widths. If conditions permit, you can relax the constraint on either of them to find a better solution. Note: these are optional inputs, leave these blank if no constraints required. {{https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wiki/rfic_generator/passive/trade-offs_B_max_layout_length.png?nolink&1000x713}} C. If you need an inductor with a higher Q, you should choose the thickest layer available in your technology node. D. The generated results are the closest solutions to your input specifications. You can adjust your input for Q and L based on trade-offs if input specificationss are not all met. If RFIC-GPT does not yield results that match your requirements, please contact us: [[service@icprophet.com|]]. We will offer more detailed suggestions and services. ---- ==== GDSII Download and Application ==== Download the layout you want from the lower right side of the webpage. * Check on the application of GDSII: [[:wiki#quick_start_to_gdsii_application|Quick Start to GDSII Application]] * If you cannot directly import the downloaded GDSII file into your design environment, please download our free-provided tool [[:wiki#rfic-generator_user_guide|RFIC-Generator]]. ---- ==== Testbench ==== Note: please refer to Chapter "[[:wiki#draw_a_symbol_in_virtuoso|Draw a symbol in Virtuoso]]" if you have difficulty in symbol drawing. Use the provided GDSII for electromagnetic simulation to obtain the S-parameter file. Create a symbol and a testbench compliant with industry standards as follows: * **differential input** {{https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wiki/图片-lzriuarg.png?nolink&500x209}} * **single-ended input** {{https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wiki/图片-xmdpbwhh.png?nolink&500x231}} ---- === Caculation Formulas in ADE === * **$L$** {{https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wiki/图片-qonpcqmk.png?nolink&400x64}} * **$Q$** {{https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wiki/图片-hurcomif.png?nolink&400x69}} ---- === Example === {{https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wiki/rfic_generator/passive/inductor_tb_example.png?nolink&1000x579}} {{https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wiki/图片-aixwwpom.png?nolink&600x281}} ---- ===== Transformer ===== ==== About Design Specifications ==== {{https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wiki/rfic_generator/passive/xfmr_specs.png?nolink&500x754}} ---- * **Design Frequency (GHz)** '' input range: 0.5GHz ~ 85GHz '' Design frequency refers to the operating frequency of the transformer in a specific circuit. For now, **RFIC-GPT** supports a range between 0.5GHz and 85GHz. ---- * **Primary Coil Quality Factor Q_pri** '' input range: 2 ~ 50 '' ''Q_pri'' indicates the loss and efficiency of the primary coil at the operating frequency. The higher the ''Q_pri'', the lower the energy loss, the higher the performance. The range of ''Q_pri'' typically falls between 2 and 50. Tips for setting the Q: Setting the Q to around 10 suffice for most on-chip transformer scenarios. If the required Q is unclear, we suggest you to set the inductance $L$ first, then adjust the Q upwards from 10. Observe how high the Q can go while satisfying the determined $L$. Note that the technology node and layer thickness should be chosen too. ---- * **Primary Coil Inductance L_pri (pH)** ''input range:40pH-6000pH'' (when the node is 130nm, the upper boundary is raised to 25000pH) The inductance is measured in picohenries(pH). Choosing the correct inductance is crucial for ensuring impedance matching and efficient signal transmission. The inductance here can be regarded as a summation of both the inductive and capacitive properties of the inductor coil. For a two-port network, ''L_pri'' can be calculated as follow: $$L\_pri=\frac{imag(Z_{11})}{\omega}, \omega=2\pi\times freq $$ ---- * **Secondary Coil Quality Factor Q_sec** '' input range: 2 ~ 50 '' ''Q_sec'' indicates the loss and efficiency of the secondary coil at the operating frequency. The higher the ''Q_sec'', the lower the energy loss, the higher the performance. The range of ''Q_sec'' typically falls between 2 and 50. Tips for setting the Q: Setting the Q to around 10 suffice for most on-chip transformer scenarios. If the required Q is unclear, we suggest you to set the inductance $L$ first, then adjust the Q upwards from 10. Observe how high the Q can go while satisfying the determined $L$. Note that the technology node and layer thickness should be chosen too. ---- * **Secondary Coil Inductance L_sec (pH)** ''input range:40pH-6000pH'' (when the node is 130nm, the upper boundary is raised to 25000pH) The inductance is measured in picohenries(pH). Choosing the correct inductance is crucial for ensuring impedance matching and efficient signal transmission. The inductance here can be regarded as a summation of both the inductive and capacitive properties of the inductor coil. For a two-port network, ''L_sec'' can be calculated as follow: $$L\_sec=\frac{imag(Z_{22})}{\omega}, \omega=2\pi\times freq $$ ---- * **Coupling Coefficient k** ''input range:0 ~ 1'' Coupling Coefficient ''k'' represents the degree of electromagnetic coupling between the primary and secondary coils. The closer the coupling coefficient is to 1, the tighter the coupling between the primary and secondary coils, and the higher the energy transfer efficiency. An appropriate value of ''k'' ensures efficient energy transmission in the transformer. ---- * **Technology Node** At present, the technology nodes we support include 22nm, 28nm, 40nm, 55nm, 65nm, 110nm and 130nm. ---- * **Primary Coil Metal Layer Thickness (µm)** You should choose the metal layer thickness **in accordance with your design and the corresponding technology files**. Different metal layers have varying thicknesses and dielectric properties, and the electrical performance of coils is primarily related to the thickness of the metal layer. **Please refer to the techfile or the .PROC file of the PDK and check the data.** Tips for setting the metal layer thickness: The accuracy of the results improves as the chosen metal layer thickness closely matches the thickness of the metal layer you used in your design. ---- * **Secondary Coil Metal Layer Thickness ****(µm)** Please refer to the description of ''Primary Coil Metal Layer Thickness'' above. ---- * **Transformer Type** There are currently 3 available types: **''Type 1'' **, **''Type 2'' ** and **''Type 3'' **. * **''Type 1'' **: a transformer with a phase difference of 180 degrees between the primary ports and the secondary ports; * **''Type 2'' **: a transformer with the primary ports and the secondary ports in phase; * **''Type 3'' **: a transformer in which the two terminals of either coil have a phase difference of 180 degrees. **''Type 2'' ** and **''Type 3'' ** require the primary coil and secondary coil on the same layer. While the primary coil and secondary coil of **''Type 1'' ** can be either in the same layer or in two adjacent layers. {{https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wiki/rfic_generator/passive/web_en_transformer_illustration.png?nolink&600x270}} ---- * **Signal Input Type** Choose the right ''Signal Input Type'' according to your design: * ''DIFF_DIFF'': The signal is differentially input into the primary coil and differentially output from the secondary coil, which is commonly used to preserve the signal's differential characteristics, help resist interference and suppress noise. * ''SINGLE_DIFF'': The signal is input as single-ended into the primary coil and output as differential from the secondary coil, which is commonly used for signal conversion. * ''DIFF_SINGLE'': The signal is input as differential into the primary coil and output as single-ended from the secondary coil, which is commonly used for signal conversion. —- * **Max Layout Length (µm) & Max Layout Width **//(optional)// ''Max Layout Length/Width'' refers to the length and width constraints of the generated layout. Fill in the blanks according to your design requirements. You can also leave this blank. Generally, the larger the area, the more turns of the primary/secondary can be wound, resulting in a higher inductance value. ---- ==== Trade-off in Calculation Results ==== Fill in the "Transformer Specifications" according to your design. Click "Calculate" and you will get six sets of results and their GDSII files, each of which has a different focus point: - optimized towards ''Q_pri''; - optimized towards ''L_pri''; - optimized towards ''Q_sec''; - optimized towards ''L_sec''; - optimized towards ''k''; - optimized towards all specifications and error-balanced. The corresponding GDSII files are provided as well. ---- * **If the calculated results meet design specifications:** If any of these three results meets your design specifications, you can proceed to [[:wiki#gdsii_download_and_application1|GDSII Download and Application]]. ---- * **If design specifications are not met:** You may need to make trade-offs in your specifications. Here are some suggestions: A. If you need a secondary coil with a higher ''Q_sec'', you should select the thickest layer available in your technology node, otherwise the result may not be satisfying. As shown in the following example, ''Q_sec'' is set as 14 and ''L_sec'' is set as 1000. The calculated result will fail to match if you set ''Secondary Coil Metal Layer Thickness'' as 0.85. {{https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wiki/rfic_generator/passive/xfmr_tradeoffs_not_met1.png?nolink&800x547}} {{https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wiki/rfic_generator/passive/xfmr_tradeoffs_not_met2.png?nolink&800x553}} B. The layouts generated may have varying lengths and widths. If conditions permit, you can relax the constraint on either of them to find a better solution. \\ As shown below, when setting the specs as ''Q_pri=14, L_pri=1000pH, Q_sec=13, L_sec=1000pH, k=0.6'', increasing the ''Max Lay. Width'' within your design constraints can achieve a solution close to your target specs. {{https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wiki/rfic_generator/passive/xfmr_layout_width_comp_eng.png?nolink&800x602}} C. When the primary and secondary coils are on the same layer, a higher Q is usually achievable. However, there will be a significant correlation between the inductances of the primary and secondary coil. If the inductances do not meet your target, please try other transformer types with the primary and secondary coil on different layers. D. The calculated results are the closest solutions to your input specifications. You can adjust your input for Q and L based on trade-offs if input specificationss are not all met. If **RFIC-GPT** does not yield results that match your requirements, please contact us through the contact inormation provided below. We will offer more detailed suggestions and services. ---- ==== GDSII Download and Application ==== Download the layout you want from the lower right side of the webpage. * Check on the application of GDSII: [[:wiki#quick_start_to_gdsii_application|Quick Start to GDSII Application]] * If you cannot directly import the downloaded GDSII file into your design environment, please download our free-provided tool [[:wiki#rfic-generator_user_guide|RFIC-Generator]]. ---- ==== Testbench ==== Note: please refer to Chapter "[[:wiki#draw_a_symbol_in_virtuoso|Draw a symbol in Virtuoso]]" if you have difficulty in symbol drawing. Use the provided GDSII for electromagnetic simulation to obtain the S-parameter file. Create a symbol and a testbench compliant with industry standards as follows: * differential input & differential output {{https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wiki/pwiki/202401251027330.png?nolink&600x193}} * single-ended input & differential output {{https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wiki/pwiki/202401251027977.png?nolink&600x180}} * differential input & single-ended output {{https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wiki/pwiki/202401251028829.png?nolink&600x203}} ---- === Calculation Formulas in ADE === * ''**Q_pri**'' {{https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wiki/pwiki/202401251028187.png?nolink&400x81}} * ''**Q_sec**'' {{https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wiki/pwiki/202401251029136.png?nolink&400x80}} * ''**L_pri**'' {{https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wiki/pwiki/202401251029837.png?nolink&400x60}} * ''**L_sec**'' {{https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wiki/pwiki/202401251030172.png?nolink&400x66}} * ''**k**'' {{https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wiki/pwiki/202403201138492.png?nolink&600x72}} ---- === Example === {{https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wiki/rfic_generator/passive/xfmr_example1.png?nolink&1200x794}} {{https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wiki/rfic_generator/passive/微信图片_20240124165609.png?nolink&450x523}} ---- ===== Matching ===== **RFIC-GPT** currently offers transformer-based matching circuit design, consisting of a transformer and parallel capacitors. {{https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wiki/pwiki/202401251135868.jpg?nolink&500x180|icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com_wiki_pwiki_202401251135868.jpg}} ==== About Design Specifications ==== {{https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wiki/rfic_generator/passive/matching_specs.png?nolink&500x765}} ---- * **Freq. lower bound (GHz)** input range: 0.5GHz ~ 85GHz ''Freq. low bound'' refers to the minimum operating frequency of your circuit. Note that ''Freq. lower bound'' **cannot **be higher than the ''Freq. upper bound''. For single-frequency point matching network, please enter the same value for both ''Freq. lower bound'' and ''Freq. upper bound''. ---- * **Freq. upper bound (GHz)** input range: 0.5GHz ~ 85GHz ''Freq. upper bound'' refers to the minimum operating frequency of your circuit. Note that ''Freq. lower bound'' **cannot **be higher than the ''Freq. upper bound''. For single-frequency point matching network, please enter the same value for both ''Freq. lower bound'' and ''Freq. upper bound''. ---- * **Load Z (Real)** ''Load Z (Real)'' refers to the real part of the load impedance $Z_L$. Please enter the exact value at the frequency band midpoint. For example, if ''Freq. upper bound=25GHz'' and ''Freq. lower bound=24GHz'', you should enter the real part of $Z_L$ at 24.5GHz. The load impedance within the frequency band is equivalent to the impedance of the RC parallel circuit ($R_L || C_L$) obtained from $Z_L$ at the frequency band midpoint. {{https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wiki/pwiki/202401251135868.jpg?nolink&500x180|icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com_wiki_pwiki_202401251135868.jpg}} ---- * **Load Z (Imaginary)** ''Load Z (Imaginary)'' refers to the imaginary part of the load impedance $Z_L$. Please enter the exact value at the frequency band midpoint. For example, if ''Freq. upper bound=25GHz'' and ''Freq. lower bound=24GHz'', you should enter the real part of $Z_L$ at 24.5GHz. ---- * **Target Z (Real)** ''Target Z'' refers to the optimal load impedance that allows maximum power transfer and minimum signal reflection, also known as $Z_{opt}$. If a matching network has a low return loss, then $Z_{in}$ approximates $Z_{opt}$. In other words, when a matching network is well-designed and well-tuned to match the load impedance with the source impedance, the input impedance of the matching network closely resembles the optimal impedance for maximum power transfer or other desired performance characteristics. ''Target Z (Real)'', or ''Z_opt (Real)'', refers to the real part of $Z_{opt}$. Please enter the exact value at the frequency band midpoint. For example, if ''Freq. Upper Bound=25GHz'' and ''Freq. Lower Bound=24GHz'', you should enter the real part of $Z_{opt}$ at 24.5GHz. {{https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wiki/pwiki/202401251135868.jpg?nolink&500x180|icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com_wiki_pwiki_202401251135868.jpg}} ---- * **Target Z (Imaginary)** ''Target Z (Imaginary)'', or ''Z_opt (Imaginary)'', refers to the imaginary part of $Z_{opt}$. Please enter the exact value at the frequency band midpoint. For example, if ''Freq. Upper Bound=25GHz'' and ''Freq. Lower Bound=24GHz'', you should enter the real part of $Z_{opt}$ at 24.5GHz. ---- * **Maximum S11_max (dB)** Since S11 is sometimes used interchangeably with return loss and reflection coefficient Γ, we give all the definitions here to help you better understand how to set this metrics. Return loss is a measure of the effectiveness of power transmission from a source to a load. It is defined as the ratio, usually expressed in decibels (dB), of the power reflected from the load to the power incident on the load: $$S11=-RL=10 log⁡|P_r/P_i |=20log|V_r/V_i |=20log|Γ|=20log|(Z_{opt}-Z_{in})/(Z_{opt}+Z_{in} )|$$ As defined above, S11 is the negative return loss. RL will always be positive, and **S11 will always be negative**. A lower S11 value indicates a better impedance match, which corresponds to less energy being reflected and more being absorbed by the load. Therefore, we keep S11 as low as possible in RF design. S11_max is the maximum S11 that a circuit can tolerate. {{https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wiki/rfic_generator/passive/matching_network_s11.png?nolink&500x202}} ---- * **Maximum Insertion Loss IL_max (dB)** Insertion Loss refers to the loss of signal power due to the insertion of the matching network. It is defined as $$ IL=10 log⁡(P_T/P_R) $$ where $P_T$ is the power transmitted to the load before insertion, and $P_R$ is the power received by the load after insertion. According to the diagram of matching network above, IL can also be expressed as $$ IL=10 log⁡(Power(Port1))/(Power(Port0)) $$ The lower the IL, the better the performance. IL_max is the maximum IL that a circuit can tolerate. ---- * **Technology Node** At present, the technology node we support include 22nm, 28nm, 40nm, 55nm, 65nm, 110nm and 130nm. ---- * **Primary Coil Metal Layer Thickness (µm)** You should choose the metal layer thickness **in accordance with your design and the corresponding technology files**. Different metal layers have varying thicknesses and dielectric properties, and the electrical performance of coils is primarily related to the thickness of the metal layer. **Please refer to the techfile or the .PROC file of the PDK and check the data.** Tips for setting the metal layer thickness: The accuracy of the results improves as the chosen metal layer thickness closely matches the thickness of the metal layer you used in your design. ---- * **Secondary Coil Metal Layer Thickness (µm)** Please refer to the description of ''Primary Coil Metal Layer Thickness'' above. ---- * **Signal Input Type** Choose the right ''Signal Input Type'' according to your design: * ''DIFF_DIFF'': The signal is differentially input into the primary coil and differentially output from the secondary coil, which is commonly used to preserve the signal's differential characteristics, help resist interference and suppress noise. * ''SINGLE_DIFF'': The signal is input as single-ended into the primary coil and output as differential from the secondary coil, which is commonly used for signal conversion. * ''DIFF_SINGLE'': The signal is input as differential into the primary coil and output as single-ended from the secondary coil, which is commonly used for signal conversion. —- * **Max Layout Length (µm) & Max Layout Width **//(optional)// ''Max Layout Length/Width'' refers to the length and width constraints of the generated layout. Fill in the blanks according to your design requirements. You can also leave these blank. Generally, the larger the area, the more turns of the primary/secondary can be wound, resulting in a higher inductance value. ---- ==== Trade-off in Calculation Results ==== For a matching network, S11_max and IL_max are a set of competing metrics. When setting the design specifications, you can balance the performance of the matching network by appropriately relaxing the requirement for either of these metrics. As shown in the following example, we want to match between ''Load Z'' and ''Target Z'' within 23GHz ~ 28GHz. Relaxing the requirement for S11 is conductive to achieving the target IL. {{https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wiki/rfic_generator/passive/S11_IL_tradeoff.png?nolink&800x600}} If you repeatedly submit the same set of parameters, the backend calculation may provide different results. Please choose the best one you need. ---- ==== GDSII Download and Application ==== Download the layout you want from the lower right side of the webpage. * Check on the application of GDSII: [[:wiki#quick_start_to_gdsii_application|Quick Start to GDSII Application]] * If you cannot directly import the downloaded GDSII file into your design environment, please download our free-provided tool [[:wiki#rfic-generator_user_guide|RFIC-Generator]]. ---- ==== Testbench ==== Note: please refer to Chapter "[[:wiki#draw_a_symbol_in_virtuoso|Draw a symbol in Virtuoso]]" if you have difficulty in symbol drawing. ​​​​{{https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wiki/rfic_generator/passive/matching_network_diag.png?nolink&600x182}} * DIFF_DIFF {{https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wiki/rfic_generator/passive/matching_network_tb_diagram.png?nolink&1000x496}} * DIFF_SINGLE {{https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wiki/pwiki/202408161024327.png?nolink&1866x369}} * SINGLE_DIFF {{https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wiki/pwiki/202408161025119.png?nolink&1866x413}} ---- === Calculation Formulas in ADE === * ''IL'' example (hb simulation) IL =-db10((pvi('hb "/net3" 0 "/PORT1/PLUS" 0'(1)) / (- pvi('hb "/net01" 0 "/PORTO/PLUS" 0 '1)))) * ''S11'' example (sp simulation) zm1 = zm(1 ?result "sp") S11_zm = db20(abs(zm1 -Zopt) / abs(zm1 +Zopt)) ===== Multi-value Matching ===== ==== Enter Design Specifications ==== {{https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wiki/rfic_generator/passive/multi_value_matching_specs.png?nolink&600x774}} ---- Multi-value Matching Network allows impedance matching on multiple frequencies. On the webpage, you can directly enter a set of load impedances and optimal impedances on varying frequencies. You can also download the excel template, modify and upload. Click on "Edit Parameters" to enter the required impedances: {{https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wiki/pwiki/202403141100950.png?nolink&800x473}} In the above example, we match between $Z_L=22-24i$ and $Z_{opt}=40-5i$ on freq=24GHz; match between $Z_L=26-22i$ and $Z_{opt}=50-0i$ on freq=25GHz; match between $Z_L=28-20i$ and $Z_{opt}=60+5i$ on freq=26GHz. RFIC-GPT will calculate under your given specs and offer an optimal solution. Multi-value matching and matching remain the same in all specs except for one unique requirement: **IL fluctuation ''IL_fluc (dB)'' **, input range 1 ~ 80. IL fluctuation, or IL flatness, refers to the fluctuation amplitude of IL within the frequency band. ''IL_fluc'' can be expressed as: $$ IL\_fluc=max(IL)-min(IL) $$ ---- ==== Trade-off in Calculation Results ==== Click on "Calculate" and you will get three sets of results and their GDSII files. {{https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wiki/rfic_generator/passive/multi_value_web.png?nolink&1200x570}} ---- ==== GDSII Download and Application ==== Download the layout you want from the lower right side of the webpage. * Check on the application of GDSII: [[:wiki#quick_start_to_gdsii_application|Quick Start to GDSII Application]] * If you cannot directly import the downloaded GDSII file into your design environment, please download our free-provided tool [[:wiki#rfic-generator_user_guide|RFIC-Generator]]. ---- ==== Testbench ==== Please refer to [[:wiki#testbench2|Testbench of Matching Network]]. ---- ===== PA Active Circuit ===== Common types of power amplifiers include ''Common Source Power Amplifier(CSPA)'', ''Variable Gain Amplifier(VGA)'', and ''Cascode PA''. Please note: If the Gain can not be met even with the highest Vdd for the technology node in RFIC-GPT, please consider to design a 2-stage power amplifier and each stage can use RFIC-GPT to design. CSPA is available on RFIC-GPT Online now. More PAs will be updated in the near future. If you cannot find the type or technology node you need, or if you require support for active circuit layouts, please email [[sales@icprophet.com|]] to get offline version: **RFIC-GPT Pro**. ==== Common Source Power Amplifier (CSPA) ==== At present RFIC-GPT support CSPA at: * **Technology node**: 28nm, 40nm, 65nm * **Frequency**: 1~80GHz * **Supply voltage**: - (28nm) 0.9V, 1.0V, 1.1V - (40nm) 1.0V, 1.1V, 1.2V - (65nm) 1.1V, 1.2V, 1.3V * **Specs** including Gain, OP1dB, AMAM, AMPM, Weights of DE_P1dB, Iq, NFmin, V_over, etc. {{https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wiki/pwiki/202401251529728.png?nolink&1200x492|Figure 1. CSPA schematic}} * M1、M3 are transistors with a default Width_per_Finger=**1μm**, sharing the same design parameters multipliers=''Mul'' & Number of Fingers=''NoF''. * M2、M4 are varactors with a default Width_per_Finger=**1μm**, sharing the same design parameters multipliers=''Mul2'' & Number of Fingers=''NoF2''. * PortAdapter is often used in loadpull analysis, which sweeps the magnitude and phase of the load instance over a specified range, to detect potentially unstable amplifier load impedances and find an optimal value. PortAdapter properties can be set as below: {{https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wiki/rfic_generator/passive/portadapter.png?nolink&350x392}} * The load impedance ''ZL_Real'' & ''ZL_Imag'' can be calculated by the design parameter ''ZL_Mag'' & ''ZL_Theta'': $$ Z_L = Z_0 \frac{ (1+\Gamma_r+j\Gamma_i) }{ (1-\Gamma_r-j\Gamma_i) } $$ where $Z_0$ = 50Ω, $Γ_r$=ZL_Mag $\cdot$ cos⁡(ZL_Theta), $Γ_i$=ZL_Mag $\cdot$ sin⁡(ZL_Theta) * Vbias: Bias voltage * R: Compensation resistor * Input Matching Network (IMN) / Output Mathcing Network (OMN) is replaced with an ideal balun in the schematic we provide. You can replace them with RFIC-GPT's ''Matching Network''. Note that the load impedance will change after adding a matching network. ---- ==== Enter Design Specifications ==== {{https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wiki/rfic_generator/passive/pa_specs.png?nolink&600x950}} ---- * **Type** Please select CSPA (Common Source Power Amplifier). ---- * **Technology Node** At present, the technology nodes we support include 40nm and 28nm. More nodes are on the way. ---- * **Design Frequency (GHz)** '' input range: 1GHz ~ 80GHz '' ---- * **Supply Voltage Vdd (V)** ''input:'' (28nm) 0.9V, 1.0V, 1.1V; (40nm) 1.0V, 1.1V, 1.2V; (65nm) 1.1V, 1.2V, 1.3V. ---- * **Gain lower bound (dB)** input range: 0 ~ 30 ''Gain'' is usually defined as: $$ \text{Gain} = 10 \log_{10} \left( \frac{P_{\text{out}}}{P_{\text{in}}} \right) $$ ''Gain lower bound'' refers to the minimum requirement of gain. ---- * **Gain upper bound (dB)** input range: 0 ~ 30 ''Gain upper bound'' refers to the upper limit of gain. ---- * **OP1dB(dBm)≥** input range: 0 ~ 25 ''1dB Compression Point'' is defined as the point at which the linear output power and the output power of the amplifier differ by 1dB, as depicted below: {{https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wiki/pwiki/202401251527341.png?nolink&330x240}}{{https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wiki/pwiki/202401251527047.png?nolink&300x247}} ''OP1dB'' refers to the output power at ''1dB Compression Point''. Please enter the minimum requirement of ''OP1dB''. ---- * **Weight of DE_P1dB** input range: 0 ~ 100 Drain Efficiency (DE) gets its name from FET devices, in which the primary terminal where DC power is supplied is the drain. Drain Efficiency is the ratio of output power to the input DC power: $$ \text{DE} = \frac{P_{\text{out}}}{P_{\text{dc}}} \times 100\%$$ ''DE_P1dB'' refers to the drain efficiency at ''1dB Compression Point''. The higher the weight, the more RFIC-GPT will focus on ''DE_P1dB'' in the calculated results. ---- * **Weight of Iq** input range: 0 ~ 100 Quiescent Current (Iq) here refers to the amount of current utilized by an IC when there is no external RF signal input. The higher the weight, the more RFIC-GPT will focus on ''Iq'' in the calculated results. ---- * **Weight of NFmin** input range: 0 ~ 100 Noise Figure (NF) is the measure of signal degradation caused by the components of the system. NF can be defined as: $$ NF = \frac{N_O^2 - N_L^2}{N_S^2} $$ $N_O$ refers to the total output noise; $N_S$ denotes the output noise introduced by the source; $N_L$ indicates the output noise due to the load. ''NFmin'' refers to the ideal minimum NF at the ''Design Frequency''. It is usually obtained by conducting ''sp'' simulation. The higher the weight, the more RFIC-GPT will focus on ''NFmin'' in the calculated results. ---- * **Overvoltage V_over (V)**//(optional)// input range: 1.3, 1.5, 1.7, 1.9 default value: 0 ''Vgs_max'', ''Vds_max'' or ''Vdg_max'' is the maximum amplitude of voltage across different terminals of a transistor within one period. ''V*_OV_duty_cycle'' refers to the duty cycle of the voltage V exceeding a preset overvoltage threshold V_over within one period. Essentially, it measures the proportion of time within a cycle that the voltage ''Vgs'', ''Vds'' and ''Vdg'' surpasses the predefined overvoltage ''V_over''. ---- * **AMAM / AMPM **//(optional)// input range: 1 ~ 20 / 1 ~ 80 default value: 2 / 10 ''AMAM'' refers to the amplitude modulation to amplitude modulation characteristic, and ''AMPM'' refers to the amplitude modulation to phase modulation characteristic. Essentially, ''AMAM'' describes how the amplitude of output changes in response to changes in the amplitude of input; ''AMPM'' indicates how the phase of output changes as the amplitude of input varies. PA distortions are amplitude dependent and phase modulated signals(having constant amplitudes) are not affected by the PA distortions. Thus, PAs are mainly characterized by their ''AMAM'' and ''AMPM'' characteristics. ---- * **ILin / ILout **//(optional)// default value: 1dB / 1dB ''ILout'' is the insertion loss of the matching network between your load impedance and the optimal load impedance ''ZL_Real'' and ''ZL_Imag'', which will be provided on webpage after clicking "Calculate". You can leave this blank and submit calculation under default value 1dB at the first time, estimate the real ''ILout'' according to the given ''ZL_Real'' & ''ZL_Imag'', and enter the estimated ''ILout'' for a second calculation. ''ILin'' is the insertion loss of the matching network between your source impedance and $Z_{in, conj}$. $Z_{in, conj}$ is the input impedance of PA after the output impedance matching, and will also be provide on webpage clicking "Calculate". Same as ''ILout'', leave this blank and submit calculation under default value 1dB at the first time, estimate the real ''ILin'' according to the given $Z_{in, conj}$, and enter the estimated ''ILout'' for a second calculation. ---- * **Stability factor //Kf // & //B1f // ** Stability, in referring to amplifiers, refers to an amplifier's immunity to causing spurious oscillations. The oscillations can be full power, large-signal problems, or more subtle spectral problems that designers might not notice. Kf and B1f are two important stability factors that can be obtained by S parameters: $$ K_f = \frac{1 - |S_{11}|^2 - |S_{22}|^2 + |\Delta|^2}{2 |S_{12}| |S_{21}|} > 1 $$ $$ |\Delta| = |S_{11} S_{22} - S_{12} S_{21}| $$ $$ B_{1f} = 1 + |S_{11}|^2 - |S_{22}|^2 - |\Delta|^2 > 0 $$ ---- ==== Trade-off in Calculation Results ==== * Under fixed ''Gain'' and ''OP1dB'', you can optimize the active circuit toward ''DE_P1dB'', ''Iq'' or ''NFmin'' by adjusting their weights. For example, under the following specifications, RFIC-GPT gives a result with an ''Iq'' = 14.07mA. If you need a smaller ''Iq'', increase ''Weight of Iq'' from 8 to 80, and re-calculate. ''Iq'' is consequently reduced from 14.07mA to 10.9mA. {{https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wiki/rfic_generator/passive/pa_iq8_1407.png?nolink&1000x548|Weight of Iq=8, Iq=14.07mA}} {{https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wiki/rfic_generator/passive/pa_iq80_109.png?nolink&1000x543|Weight of Iq=80, Iq=10.9mA}} * With the $ZL\_Real$ and $ZL\_Imag$ given in the table ''Generated Power Amplifier's Specifications (including the recommended load)'', you can generate an **output matching network** with **RFIC-GPT's Matching** module; * With the $Z_{in,conj}\_Real$ and $Z_{in,conj}\_Imag$ given in the table ''Generated Power Amplifier's Specifications (including the recommended load)'', you can generate an **input matching network** with **RFIC-GPT's Matching** module. * **Note that if your input specifications are not set properly, the calculated results will be ''NULL''. Check if ''Gain lower bound'' is higher than ''Gain upper bound'', or ''OP1dB'' may be set too high, etc. Reset the specifications and re-calculate.**—- ==== Schematic Download and Application ==== If the generated PA's specifications meet your requirements, click "Display design parameters". Both design parameters and generation code will be shown. {{https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wiki/rfic_generator/passive/pa_display_params.png?nolink&600x217}} You can enter the generation code in our free-provided tool [[:wiki#rfic-generator_user_guide|RFIC-Generator]], which will generate schematic, testbench and simulation files for you. You can conduct simulations in your own design environment to verify the results RFIC-GPT provided on the webpage. ---- ==== Testbench ==== Click "RFIC-Generator" button and install following RFIC-Generator User Guide. It instantly generates schematic, testbench and simulation files in your design environment. You can conduct simulations yourself to verify the results. {{https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wiki/rfic_generator/passive/pa_generator.png?nolink&800x601}} ---- ====== Quick Start to GDSII Application ====== GDSII files from RFIC-GPT can be easily applied in standard design platforms including but not limited to Cadence Virtuoso, Keysight ADS, Siemens(Mentor) L-Edit, Synopsys CC, Laker, LayoutEditor, etc. The results can be downloaded and applied in standard design platforms such as Cadence Virtuoso, Keysight ADS, etc. Below is an example using Cadence Virtuoso to illustrate how to apply the downloaded GDSII file to your design. ---- **Download GDSII** Click "Download GDS layout" and you will get a zip file. The zip includes: * ''.gds'', the GDSII file; * ''.txt'', the generation code only required by [[:wiki#rfic-generator_user_guide|RFIC-Generator]]. {{https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wiki/rfic_generator/passive/passive_code_download.PNG?nolink&400x189}} ---- **Import GDSII** In Virtuoso CIW menu, click ''file-import-stream'' to import the GDSII file: * Enter the path to the GDSII file in ''Stream File''; * Choose your target library name in ''Library''; * Choose the technology node which your target library is attached to in ''Attach Tech Library''; * Click ''Translate'' or ''Apply''. {{https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wiki/rfic_generator/passive/import_gds.png?nolink&400x343}} ---- **Modify Metal Layers** * If you need more metal layers information, please visit chapter “[[:wiki#stream_and_datatype_of_metal_layers_in_pdk|Stream and Datatype of metal layers in PDK]]”. * Different PDKs or different ''Metal Stacks'' have different names for metal layers. To ensure the applicability of the generated PAs offered by RFIC-GPT, the provided GDSII files uniformly use the names ''M1'', ''M2'' and ''M3'' for the metal layers involved. ''M3'' stands for the top layer, and ''M1'' stands for the bottom layer. * After importing the GDSII file into your environment, you should change the current metal layer to the exact metal layer used in your design, such as ''M7'', ''M8'' and ''AP''. Please refer to our guide below and modify the layers carefully, or there will be fake design rule violations. Open the imported layout, check ''Used'' in the left-side ''Layers'' panel, and you will see the metal layers used by the device. {{https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wiki/pwiki/202401251038593.png?nolink&400x266}} * In the ''Layers'' panel, select the metal layer you want to modify, then click on ''V'' (Visibility). This is to hide all other layers, making it easier for you to make a global selection on the layer. * Next, press ''Ctrl+A'' to select all the shapes in the layout. Press ''Q'' to open the ''Edit Properties'' window. Press ''Ctrl+A'' again to select all the shapes displayed on the left. Then in the right ''Attribute'' panel, change the ''Layer'' to your target layer (e.g. from ''M3 drawing'' to ''AP drawing''). Finally click on ''apply'' to apply the modification. {{https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wiki/pwiki/202401251038154.png?nolink&400x233}} * Repeat the steps above to replace the original M1, M2 and M3 layers with the three metal layers you need (typically the top three layers). Finally the modified result should look like this (e.g. `M3` to `AP`, `M2` to `M8`, and `VIA3` to `RV`): {{https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wiki/pwiki/202401251038791.png?nolink&400x270}} ---- **Modify VIAs** If you need to adjust VIAs in the layout, delete the current VIAs and then press ''O'' to perform ''autovia'' in the respective area. ---- **Modify PINs** If the current PINs cannot be recognized in your design environment, or they are not displayed correctly, you need to manually add them. Select ''Create→Pin'' in the menu: {{https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wiki/pwiki/202401251039406.png?nolink&200x280}} Select the corresponding metal layer of the PIN in the left ''Layers'' panel, type in the PIN names (e.g. ''lp\lm'' for an inductor), and draw a rectangle on the layout to cover the original PIN. {{https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wiki/pwiki/202401251039078.png?nolink&400x153}} ---- ====== RFIC-Generator User Guide ====== ===== Introduction ===== RFIC-Generator is a tool for generating RFIC chips. As a module currently integrated in the Cadence Virtuoso, it can rapidly generate GDSII layouts of various inductors and transformers based on geometric parameters provided by designers. These layouts can be directly used for electromagnetic simulation without the tedious iterations of manual layout editing, and these layouts can be adjusted for simulation. Comparing to RFIC-GPT, RFIC-Generator doesn’t have AI algorithm so its result can’t guarantee accuracy. But, RFIC-Generator also serves as an auxiliary tool of RFIC-GPT Online service. With the ‘generation code’ calculated by RFIC-GPT, RFIC-Generator can autonomously generate DRC-clean passive devices and active circuits with accuracy. [[https://icprophet-web.oss-cn-hangzhou.aliyuncs.com/helpdoc/RFIC-Generator_v1_240520_HF1_EN.zip|Click here to download RFIC-Generator]] ---- ===== Preparation before installation ===== When RFIC-Generator is being installed, it will use the below files of Virtuoso environment. Here are their functions and description. ==== cds.lib File ==== The ''cds.lib'' file is an ASCII file used to define libraries. The file maps user library names to physical directory paths. Applications read the ''cds.lib'' file to identify the libraries they can use. Virtuoso provides a default ''cds.lib'' file in the directory your_install_dir/share/cdssetup. You can create a new ''cds.lib'' file in a different path (like ''/home/'') and use the command: ''SOFTINCLUDE your_install_dir/share/cdssetup/cds.lib'' to link it to the default ''cds.lib'' file. During the installation of RFIC-Generator, you must have an editable ''cds.lib'' file. If you do not have permission to edit the current ''cds.lib'' file, you can create a new one and link it to the existing file. ==== .cdsinit File ==== ''.cdsinit'' file defines the startup environment of Virtuoso. In this file, you can write commands and custom SKILL programs which are automatically executed during Virtuoso startup. There is a default ''.cdsinit'' file in the Virtuoso software, located in the directory ''your_install_dir/tools/dfII/local/''. (Note: The''.cdsinit'' file is a hidden file, and you need to press ''Ctrl+H'' in Linux to display it.) To install RFIC-Generator successfully, you need an editable ''.cdsinit'' file, which can be in either the default directory or the Virtuoso startup directory. Usually, system administrators do not allow ordinary users to have edit permissions for the default directory, so you must ensure that the ''.cdsinit'' file in the Virtuoso startup directory is editable; if this file does not exist in the startup directory, you need to create one. Note: Since only administrators can modify the read path, order, and permissions of these files, it is best to consult with the system administrator first. ---- ===== Installation ===== You can place the downloaded installation package in any location and unzip it. ** However, after the installation is completed, you must not change its location, otherwise the environment variables may not work. ** Cadence Virtuoso environment configuration for individuals and corporations can vary significantly. Depending on whether you are an individual user or a industrial user, we provide two installation processes for you to choose from, **Script Installation** and **Customized Installation**. ---- ==== Script Installation ==== Run the ''install.sh'' in RFIC-Generator. **Step 1: Enter your path to ''cds.lib''.** {{https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wiki/rfic_generator/passive/cdslib_path.PNG?nolink&800x138}} Please note: * The ''cds.lib'' you provide must exist. * Make sure you have read and write permissions on this ''cds.lib''. **Step 2: Enter your path to ''.cdsinit''.** {{https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wiki/rfic_generator/passive/cdinit_path.PNG?nolink&800x115}} Please note: * Make sure your path to ''.cdsinit'' is correct; * ''.cdsinit'' is a hidden file in Linux so please check carefully; * We can create a ''.cdsinit'' for you if the path does not exist. Make sure you have enough permissions under the path. If you are the adminstrator of design environment, you need input the path of ''.cdsinit'' under cadence installation directory (the default path is ''/tools/IC*/tools/dfII/local/.cdsinit''). If ''local'' directory doesn't exsit under cadence installation directory, please create it. Then create ''.cdsinit'' file, input the below codes in this new ''.cdsinit'' file : if(isFile(“./.cdsinit”) then loadi(“./.cdsinit”) else if(isFile(“~/.cdsinit”) then loadi(“~/.cdsinit”))) **Step 3: Set RFIC-Generator as a startup item in Cadence Virtuoso.** {{https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wiki/rfic_generator/passive/ciw_load_generator_startup.png?nolink&800x242}} * Enter y or yes, then RFIC-Generator will be loaded automatically when starting Cadence Virtuoso. You can see it in CIW menu. * Enter n or no, then you will have to load it manually everytime. Enter ''load(strcat(RFIC_Generator_PATH “/Start.il”))'' in CIW and press Enter. ---- ==== Customized Installation ==== Different from **Script Installation**, you have to modify ''cds.lib'' and ''.cdsinit'' manually in **Customized Installation**. **Step 1: Modify ''.cdsinit''.** Since ''.cdsinit'' is a hidden file in Linux, you may have to press ''Ctrl+H'' to display it. If you cannot find .cdsinit in your Virtuoso startup path, you can create a new ''.cdsinit'': touch ./.cdsinit If you are the administrator, you can modify the master ''.cdsinit'' file in your Cadence intallation path. Normally the path is ''/tools/IC618/tools/dfII/local/.cdsinit''. Add the following code in ''.cdsinit'' ("XX" is the location of your unzipped RFIC_Generator installation package): RFIC_Generator_PATH="XX/RFIC_Generator" ciwMenuInit() load(strcat(RFIC_Generator_PATH "/Start.il")) If the below codes are not existed in the master ''.cdsinit'' file, please add at the end if this file: if(isFile(“./.cdsinit”) then loadi(“./.cdsinit”) else if(isFile(“~/.cdsinit”) then loadi(“~/.cdsinit”))) **Step 2: Modify ''cds.lib''.** ''cds.lib'' is usually in your Virtuoso startup path. If you are the administrator, you can modify the master ''cds.lib'' file in your Cadence installation path. Normally the path is ''/tools/IC618/share/cdssetup/cds.lib''. Add the following code in ''cds.lib'': DEFINE EmptyBox XX/RFIC_Generator/RFIC_Active_Generator/EmptyBox ---- ==== Set up ==== This chapter is for Passive Generator of RFIC-Generator. You can skip this chapter if you only need Active Generator. After your installation is completed, find ''layertrans.csv'' in your unzipped RFIC-Generator installation package: .../RFIC_Generator/RFIC_Passive_Generator/layertrans.csv layertrans.csv contains the following contents: {{https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wiki/rfic_generator/passive/layertrans_csv_example2.PNG?nolink&900x83}} ''M3'', ''M2'' and ''M1'' respectively represent the **top three** metal layers in your technology node. Specifically, ''M3'' is the topmost layer, ''M2'' is the second top layer, and ''M1'' is the third top layer. Check the ''.layermap'' file in your PDK and: * find the stream number and datatype of the topmost layer(e.g. "AP1 drawing"), enter into ''M3_drawing_stream'' and ''M3_drawing_datatype''; * find the stream number and datatype of the second top layer(e.g. "M8 drawing"), enter into ''M2_drawing_stream'' and ''M2_drawing_datatype''; * find the stream number and datatype of the third top layer(e.g. "M7 drawing"), enter into ''M1_drawing_stream'' and ''M1_drawing_datatype''; In a similar way, ''VIA1'' is between ''M1'' and ''M2'', ''VIA2'' is betwee ''M2'' and ''M3''. Find the stream number and datatype of corresponding VIAs in .layermap and enter into ''VIAx_drawing_stream'' and ''VIAx_drawing_datatype''. Finally, enter the actual names of the top three metal layers in ''M1_name'', ''M2_name'' and ''M3_name''. If you use multiple technology nodes, you should create a ''layertrans.csv'' for each node. In fact, feel free to rename and relocate the layertrans.csv according to your preferences. You only have to select the right path in the setup section. {{https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wiki/rfic_generator/passive/setup1.PNG?nolink&400x118}}{{https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wiki/rfic_generator/passive/setup2.PNG?nolink&400x120}} If you need more metal layers information, please visit chapter [[:wiki#stream_and_datatype_of_metal_layers_in_pdk|"Stream and Datatype of metal layers in PDK"]]. ---- ==== Uninstallation ==== Run the ''uninstall.sh'' in RFIC-Generator. Remember to uninstall RFIC-Generator everytime before you install a new version. ---- ===== Passive Generator ===== Click ''RFIC-Generator → Passive Generator'' in ''CIW'': {{https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wiki/pwiki/202401171511626.png?nolink&363x138}} RFIC Passive Generator includes three modules: * ''Inductor'': Input geometric parameters, output an inductor layout * ''Transformer'' :Input Transformer types and geometric parameters, output a transformer layout * ''RFIC-GPT Code'' :Input generation code from RFIC-GPT, output an inductor or transformer layout The free-provided RFIC-Generator is not customized for various technology nodes. Therefore, layouts generated by ''Inductor'' and ''Transformer'' modules may have DRC problems, as they only listen to your input geometric parameters. However, layouts generated by ''RFIC-GPT Code'' are calculated results from RFIC-GPT. They will be DRC-clean. ---- ==== Inductor ==== {{https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wiki/pwiki/202401171513504.png?direct&}} \\ **Step 1: ****Set the path for ''layertrans.csv'' in the ''setup'' section.** We provide a template layertrans.csv in the installation package. You can load the template after you finished installation to see if RFIC-Generator is installed properly. For further usage on different technology nodes, please refer to the [[:wiki#set_up|setup chapter]]. **Step 2: Enter geometric parameters.** ''Geometric parameters'' include the metal layer, number of turns, radius, width, etc. Click on the ''Guide'' button in the ''Geometric parameters'' section to check the diagram and the definitions of each parameter. {{https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wiki/pwiki/202401171514717.png?direct&450x417}} * As mentioned above, ''M3'', ''M2'' and ''M1''respectively represent the top three metal layers in your technology node. Therefore, for example, **if you want to use the topmost layer, you should choose ''M3'' in this section, and modify the ''layertrans.csv'' properly**. * You can also customize the inductor's ''terminal length'', ''terminal space'' and ''label'' in the ''terminal/label'' section. When ''terminal length'' / ''terminal space'' = -1, RFIC-Generator will autonomously determine the length and spacing appropriately. **Step 3: Enter target library and cell name.** In the ''Apply'' section, fill in ''Library'' and ''cell name'' for the generated layout. After clicking ''Apply'', the layout will be successfully placed in that cell. {{https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wiki/pwiki/202401171515083.png?nolink&378x96}} ---- ==== Transformer ==== {{https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wiki/pwiki/202401171517962.png?nolink&412x714}} **Step 1: ****Set the path for ''layertrans.csv'' in the ''setup'' section.** We provide a template layertrans.csv in the installation package. You can load the template after you finished installation to see if RFIC-Generator is installed properly. For further usage on different technology nodes, please refer to the [[:wiki#set_up|setup chapter]]. **Step 2: Enter Transformer Type.** In the ''Type setting'' section, you should provide the layers you use in the transformer, and the ''Transformer Type''. \\ ''Layer_pri'' is the primary coil layer, and ''Layer_sec'' is the secondary coil layer. ''M3'', ''M2'' and ''M1'' respectively represent the top three metal layers in your technology node. Specifically, ''M3'' is the topmost layer, ''M2'' is the second top layer, and ''M1'' is the third top layer. You should specify their target layers in **Step 1**. ''Transformer Type'' is closely related to the metal layers you have selected. * If the primary and secondary coils are on the same layer (''Layer_pri'' =''Layer_sec''), you will have five options for ''Transformer Type'': * ''Parallel-Parallel'' * ''Serial-Serial'' * ''Serial-Parallel'' * ''In/Out sameside'' * ''Overlapping inductor type'' * If the primary and secondary coils are on different layers(''Layer_pri''≠=''Layer_sec''), you will have two options for ''Transformer Type'': * ''Non-coaxial'' * ''Coaxial'' {{https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wiki/rfic_generator/passive/passive_gen_xfmr_type.png?nolink&398x164}}{{https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wiki/pwiki/202401171519952.png?nolink&381x116}} Click on the ''Guide'' button in the ''Type setting'' section to check the diagram and the definitions of each types and their parameters. {{https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wiki/pwiki/202401171519247.png?direct&750x1296}} \\ **Step 3: Enter geometric parameters.** * Every ''Transformer Type'' has different ''Geometric parameters''. * You must select a ''Transformer Type'' **before** you fill in ''Geometric parameters''. * Each time you select a ''Transformer Type'', the ''Geometric parameters'' section will automatically refresh. * Before you select any ''Transformer Type'', the default ''Transformer Type'' displayed does not correspond to the default ''Geometric parameters''. Clicking the ''Apply'' button will cause error. Please strictly follow the above to make sure your transformer layout is generated smoothly. * You can also customize ''terminal length'', ''terminal space'' and ''label'' of both primary and secondary coils in the ''terminal/label'' section. When ''terminal length'' / ''terminal space'' = -1, RFIC-Generator will autonomously determine the length and spacing appropriately. **Step 4: Enter target library and cell name.** In the ''Apply'' section, fill in ''Library'' and ''cell name'' for the generated layout. After clicking ''Apply'', the layout will be successfully placed in that cell. {{https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wiki/pwiki/202401171520894.png?nolink&380x82}} ---- ==== RFIC-GPT Code ==== ''RFIC-GPT Code'' serves as an auxiliary tool of our online service **RFIC-GPT**. Within seconds, you can get a **DRC-clean** passive device layout, whose performance perfectly meets your specifications. {{https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wiki/rfic_generator/passive/passive_code_module.PNG?nolink&413x716}} **Step 1: ****Set the path for ''layertrans.csv'' in the ''setup'' section, and click ''Load''.** We provide a template layertrans.csv in the installation package. You can load the template after you finished installation to see if RFIC-Generator is installed properly. For further usage on different technology nodes, please refer to the [[:wiki#set_up|setup chapter]]. You may have noticed that there is an extra section'' Layermap transform''. Your layertrans.csv will be parsed and import into this section after clicking ''Load''. **Step 2: ****Enter ''generation code'' in the ''RFIC Generation Code'' section.** After submitting calculation on webpage, within seconds a few sets of calculated results will be displayed. Click ''Download GDS layout'' on your most satisfying result and you will get a zip package consisting of a ''.txt'' file and a ''.gds'' file. In the ''.txt'' is the ''generation code'' for your calculated result: {{https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wiki/rfic_generator/passive/passive_code_download.PNG?nolink&400x189}} Enter the string into the ''RFIC Generation Code'' section: {{https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wiki/pwiki/202401171521531.png?nolink&384x74}} **Step 3: Customize your terminal.** You can customize ''terminal length'', ''terminal space'' and ''label'' in the ''Terminal'' section. * For transformers, you can customize both primary and secondary coils. * For inductors, since their is only one coil, you only have to modify ''terminal length(pri)'' and ''terminal space(pri)''. **Step 4: ****Enter target libray and cell name.** In the ''Apply'' section, fill in ''Library'' and ''cell name'' for the generated layout. After clicking ''Apply'', the layout will be successfully placed in that cell. {{https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wiki/pwiki/202401171521356.png?nolink&370x64}} **Step 5: Use the inductor or transformer module for fine-tuning after generating layouts with RFIC-GPT Code.** After clicking ''Apply'', not only the layout will be generated, but the geometric parameters of the layout will also be updated into the inductor or transformer module. You can fine-tune the geometric parameters according to your needs. ---- Errors and solutions: {{https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wiki/rfic_generator/passive/error_no_such_file.PNG?nolink&350x174}} ''No such file'' means your path for ''layertrans.csv'' is wrong. Check the path and try again. {{https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wiki/rfic_generator/passive/error_generation_code_incorrect.PNG?nolink&350x156}} ''Incorrect format filling in 'web output''' means your generation code is wrong. Check the string and try again. {{https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wiki/rfic_generator/passive/error_layer_transform.PNG?nolink&350x148}} ''The 'Layermap transform' module was incorrectly filled'' means the format your input data in the ''Layermap transform'' section is wrong. ''target stream'' and ''target datatype'' should all be integers, and ''Mx_name'' should be set properly according to your PDK. Check the data and try again. ---- ===== Active Generator ===== **Step 1: Import a default library.** First in the "RFIC path" section, select your path to your installation package. Choose the active circuit pattern (only ''CSPA'' for now), click ''Load'' and a default library will be added to your design environment. The default library contains 4 cells: ''DM_lvt4t'', ''DM_lvt6t'', ''lvt4t'' and ''lvt6t''. Note that ''4t'' transistors and ''6t'' transistors have different terminals, thus requiring different wiring. Therefore, we put them in two cells. ''DM'' cells are used to measure stability, where the ''portAdapter'' are absent. Everytime you click ''Load'', a new default library will be imported and your original one will be overwritten. Make a backup if you need before every ''Load''. {{https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wiki/rfic_generator/passive/active_load2.PNG?nolink&460x264}} **Step 2: Replace default instances in the default library.** As mentioned above, the default library added in Step 1 has different cells with different instances and wiring. You can replace the default ''4t'' or ''6t'' transistors with real ''4t'' or ''6t'' transistors in your PDK. Specify your transistors in the ''Instance to replace'' section. For example, if you want to use a ''6t'' transistor like ''nmos_rf_lvt_6t'', you should choose the ''6t'' cell like ''CSPA_lvt6t'' in the ''Source Schematic'' section, as the wiring differs between ''4t'' and ''6t'' schematics. Otherwise the files may end up broken. If, unfortunately, you accidentally mis-replaced ''4t'' cells with ''6t'', you should repeat Step 1. The new default library will overwrite the broken old one. {{https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wiki/rfic_generator/passive/6t.png?nolink&460x305}} **Step 3: Select path to the Model Library in your PDK.** {{https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wiki/rfic_generator/passive/model_path.png?nolink&460x85}} Select path to your model file in the "model Path" section. For reference only, it is usually called ''toplevel.scs'' located in the "models" folder. **Step 4: Enter ''generation code'' ** Check the ''generation code'' from RFIC-GPT and enter into the "generation code" section above. Click "Apply". **Step 5: Open webdisplay_state1 and verify the results.** {{https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wiki/图片-looyblfw.png?nolink&}} ---- ===== Modify the layout generated by Code ===== Here we use transformer as example. Inductor modification is the almost the same. Step 1: Input the “generation code” which you get in RFIC-GPT website, then layout is generated. {{https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wiki/pwiki/202405231118898.png?nolink&1310x727}} Step 2: Click the “Transfermer” Section as below picture, the related parameters will be directly listed. Please note: you can click “Guide” Button for detail parameters explanation. {{https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wiki/pwiki/202405231119259.png?nolink&1065x1136}} Step 3: Layertrans file chosen in Setup File should match the corresponding PDK you are designing. Otherwise, some or all metal layers will be lost. (Information to fill the layertrans file can be found: “[[:wiki#stream_and_datatype_of_metal_layers_in_pdk|Stream and Datatype of metal layers in PDK]]”. {{https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wiki/pwiki/202405231121259.png?nolink&801x727}} Open the new created Cell, you can get the modifed layout: {{https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wiki/pwiki/202405231121730.png?nolink&1591x717}} ---- ====== RFIC-GPT FAQ ====== ===== RFIC-GPT General Questions ===== Q: How to apply the calculated results from RFIC-GPT in a closed design environment? A: Please try the below methods: * Download our free tool **RFIC-Generator** and install it in your closed environment, once and for all. Feed **RFIC-Generator** with the generation code provided by RFIC-GPT, and the corresponding layout will be generated for you immediately. Please refer to our [[:wiki#rfic-generator_user_guide|RFIC-Generator User Guide]], or email to [[service@icprophet.com|]] for support. * We have offline version: RFIC-GPT Professional, which is more powerful than online version and pay to use. Please email to [[sales@icprophet.com|]] for evaluation or quotation. ---- Q: I use mobile to access RFIC-GPT Online, but it can't display in full width, how to solve it? A: Just try Firefox, Chrome or other mobile browser, using landscape mode , you can have a wider display which is enough. ---- Q: Which specific technology node is supported? A: The properties of top-layer passive devices are mainly related to the metal layer thickness and material properties. Check your PDK files for the thickness of the layer you are using, and select the metal layer thickness on our website RFIC-GPT. The closer the selected metal layer thickness is to the actual layer thickness you are using, the more accurate the results will be. Active circuits' calculated results can be verified under mainstream processes. If you need more support, please contact us via email. ---- Q: Why is the metal layer missing in the downloaded layout? A: If you cannot see the metal layers after opening GDSII file with Cadence Virtuoso, please check the ''Metal Layer Thickness'' you input on the webpage first. The M''etal Layer Thickness'' you select should match the thickness of the layer you use in your node. Check the layer thickness in your PDK file and try again. If the ''Metal Layer Thickness'' differs significantly from the actual layer thickness in your attached PDK, the metal layer will not be displayed. This is to avoid using RFIC-GPT layouts as actual layouts when there is a mismatch in technology nodes. If you intentionally set different metal layer thicknesses for research or other purposes, please unbind the PDK associated with your current project. The metal layers will be displayed correctly. ---- Q: Are the calculation results from RFIC-GPT always under 85°C? A: Yes. 85°C is a more applicable and stringent condition because of the overheating in real chips. Many commercial products requires a 85°C simulation test. Quality factor Q is significantly influenced by temperature, while other specifications are less affected. For reference only, compared with 85°C, Q increases approximately by 2 under 27°C. If you need precise results under other temperatures, please email sales@icprophet.com to get RFIC-GPT Pro. ---- Q: The calculated results from RFIC-GPT cannot reach the design specifications I entered. How should I improve the performance? A: The reason for this situation may be unreasonable specification settings. Please strike a balance between each specification, subtly lower the unattainable ones or increase those with significant margin, and re-calculate. Alternatively, consider trying a different metal layer thickness. You can also refer to: [[:wiki#trade-off_in_calculation_results|Inductor trade-off]], [[:wiki#trade-off_in_calculation_results1|Transformer trade-off]], [[:wiki#trade-off_in_calculation_results2|Matching trade-off]]. If the calculated results still do not meet your specifications, please email to [[service@icprophet.com|]] for support. ---- Q: How to raise Q_pri & Q_sec without modifying inductances and coupling coefficient k? A: It may be necessary to use stacked metals as coils, but only a few transformer types can be achieved with stacked metals. Stacked metals are not applicable in complex structures. ---- Q: Are there other structures for inductors / transformers? A: We are working on new structures of both inductors and transformers. If the provided result or the current structures cannot reach your specifications perfectly, you can download the GDSII file and make slight modifications to them, such as the width, radius, and space. In most cases, it should help meeet your requirements. If you have suggestions, please feel free to email [[service@icprophet.com|]]。 ---- Q: Can RFIC-GPT provide transformers with taps? A: Only offline version RFIC-GPT Pro provides this function, but it's pay to use. Please email [[sales@icprophet.com|]] for evaluation or quotation. ---- Q: Does RFIC-GPT support GaN, GaAs or substrate? A: Currently RFIC-GPT Online version only offers design for CMOS technology. GaN, GaAs and substrate passive devices/circuits are in our future update plan. Please stay tuned for upcoming releases. ---- Q: Can I cite RFIC-GPT in my paper? A: Of course, you can cite RFIC-GPT in your papers or articles. ---- Q: For downloaded transformer layouts and their primary & secondary coils, which one is the top metal layer, and which one is the second top layer? A:Please refer to [[:wiki#quick_start_to_gdsii_application|Quick Start to GDSII Application]]. ---- ===== RFIC-Generator Related Questions ===== Q: During RFIC-Generator installation, 'Permission denied' is displayed, how to solve it? A: Please make sure you have enough permissions on ''cds.lib'',''.cdsinit'' and the corresponding paths. You can use the below "chmod" commands to add permissions: chmod +rw .cdsinit \ chmod +rw cds.lib Then re-run 'install.sh'. If you install RFIC-Generator in vmware, don’t put RFIC-Generator directory under /mnt/hgfs of vmware tools, which is a shared directory. It may crash. If you are personal user, you can put it under /home. If you use Virtuoso from /home directory, please put cds.lib and ''.cdsinit'' files under your own ‘home’ directory. Then “Permission Denied” error will not happen. When Virtuoso starts, it will load ''.cdsinit'' file from starting directory. Non-admin user usually need not modify the general ''.cdsinit'' file. Instead, modify private''.cdsinit'' under the starting directory. If there is no''.cdsinit'' file under /home, you can input''/home/IC/.cdsinit'' during the installation of RFIC-Generator and this file can be automatically created. ---- Q: After installing RFIC-Generator, when using the Passive Generator, an error occurs: "Error gets: argument #1 should be an I/O port (type template = "p") - nil" (also see the below pic), or there are issues such as "Permission Denied" and etc., that make it unusable. What is the reason? {{https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wiki/pwiki/202408061427096.png?nolink&719x29}} A: Please extract the downloaded RFIC-Generator package on a Linux system before installing. Extracting on Windows system and installing on a Linux system will result in various errors. \\ If you have already extracted it on a Windows system, please uninstall the RFIC-Generator and reinstall it according to the requirements. ---- Q: Is RFIC-Generator only usable in Cadence Virtuoso IC618? Is it compatible with IC51? A: RFIC-Generator is compatible with IC618 and we cannot guarantee the compatibility with other versions. We can provide a customized compatible version of RFIC-Generator for a fee, if needed. Please email sales@icprophet.com for further assistance. ---- Q: Can you provide RFIC-Generator on ADS? A: RFIC-Generator on ADS is available with additional payments. Please email sales@icprophet.com for inquires. ---- ===== EM Simulation Related Questions ===== Q: Which EM tool shall I use to simulate the layouts or schematics downloaded from RFIC-GPT? A: Any standard EM simulation tool can be used. If you are using EMX, please add some commands in EMX setup window (noted in the next question). There is no specific setup rule needed for other EM Simulation Tools. ---- Q: How to verify the performance results of a passive network? A: Recommended procedure: After downloading the GDSII from RFIC-GPT, import it into Virtuoso. Then create a symbol, and place the symbol in the corresponding testbench for inductors, transformers, or matching circuits. After inserting the provided formulas in ADE L, you can obtain the simulation results for the passive network. Refer to: [[:wiki#draw_a_symbol|Draw a symbol]], [[:wiki#testbench|Testbench for Inductors]], [[:wiki#caculation_formulas_in_ade|Formulas for Q and L of inductors]]. ---- Q: Why do the results of my EM simulation differ from what I get from RFIC-GPT Online? A: Suppose you are using EMX, please make sure you are also applying the same setup rules: \\ 1. In the EMX setup window, click “Advanced Option”. In the “Other command-line options”, enter the following command in the EMX (or EMX_DATA) column: --temperature=85 --uniform-sources 2. Prefereably choose n-port in EMX for any device you downloaded from RFIC-GPT Online. After this, please retry the simulation. If the results still differ >5% than the data provided on RFIC-GPT website, please email **[[service@icprophet.com|]]**. ---- Q: Why can't EMX simulation be used after renaming layouts or schematics generated by RFIC-GPT? A: The issue arises because the new name includes "." character, which violates EMX naming rules, preventing EMX from functioning properly. Here's how to solve it: * If you import the layout or schematic directly into Virtuoso after downloading from RFIC-GPT, avoid using "." in the new name. * If you download the code from RFIC-GPT and then use RFIC-Generator to produce the corresponding layout or schematic, rename it in the "Cell name" field at the bottom right of the RFIC-Generator interface, ensuring the new name does not include a "." character. As below picture shows: {{https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wiki/pwiki/202403262259223.png?nolink&436x755}} ---- ===== RFIC-GPT Pro (Offline software) ===== RFIC-GPT Professional version (RFIC-GPT Pro) is an offline software and provided to commercial company users. It is install in designer’s environment, embedded tightly in layout tool. Professional version can be used more convenient than online version, supports more device and circuit structures, generates and adjusts GDSII more easily w/ functions such as Dummy fill, Guard-ring etc. The difference among RFIC-Generator, RFIC-GPT Online and RFIC-GPT Pro is as follows: {{https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wiki/pwiki/202407051447626.png?nolink&1000x1135}} If you have interesting to eval or buy RFIC-GPT Pro, pls email [[sales@icprophet.com|]] ---- If your questions or problems are not included, please email [[service@icprophet.com|]]. ---- ====== Basic Design Knowledge ====== ===== Draw a symbol ===== In Testbench, it is often necessary to generate symbols for the required devices. This section takes drawing an inductor’ symbol as an example to introduce how to operate in Virtuoso. 1.Create Cellview {{https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wiki/pwiki/202404021114175.png?nolink&349x292}} 2.Choose analogLib in the Library column and n-port in the Cell column {{https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wiki/pwiki/202404021115336.png?nolink&758x689}} 3.Enter number in the Number of ports column and paste the S-parameter path in the S-parameter data file column {{https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wiki/pwiki/202404021117166.png?nolink&651x605}} Tip: \\ For inductors without Center Tap, fill “2” in the Number of ports column. \\ For inductors with Center Tap, fill “3” in the Number of ports column. \\ For transformers without Center Tap, fill “4” in the Number of ports column. \\ For transformers with Center Tap, fill “6” in the Number of ports column. 4.Use Create → Pin to creat pins {{https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wiki/pwiki/202404021118617.png?nolink&591x284}} 5.Use Create → Cellview → Form_Cellview to create symbol {{https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wiki/pwiki/202404021119784.png?nolink&624x417}} 6.Enter the position that you wish your pins to be in and click OK {{https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wiki/pwiki/202404021120383.png?nolink&557x347}} 7.Symbol creation completed {{https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wiki/pwiki/202404021120520.png?nolink&800x382}} ---- ===== Stream and Datatype of metal layers in PDK ===== This section introduces how to find the “drawing_stream” and “drawing_datetype” of the top three metal layers. Firstly, open the “techfile” file in your PDK folder. Search for (Ctrl+F) “layerrules” in order to understand the corresponding layer rules of your PDK. Generally speaking, the last metal layer information in your techfile is the topmost layer in the physical manufacturing process. Demonstration: {{https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wiki/pwiki/202404021337145.png?nolink&687x685}} {{https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wiki/pwiki/202404021340241.png?nolink&690x339}} In this instance, ALPA/MTT2/TM1 (metal layers) and PA/TV2 (cut layers) are the information we need. After this, search for (Ctrl+F) the names ALPA/MTT2/TM1/ PA/TV2 with drawings after them in the “layermap” file. The numbers after drawing are the drawing_stream and drawing_datetype respectively. {{https://icprophet-wwwweb.oss-cn-shanghai.aliyuncs.com/wiki/pwiki/202404021340811.png?nolink&346x40}} The above is only for demonstration, please refer to your own PDK in search of the infomation needed. ---- ====== Release Notes ====== ===== RFIC-GPT Release Notes ===== v1.240520 Hotfix 1 * bug fixed v1.240520 * More Transformer architectures provided * Algorithms updated v1.240125 * The first release of RFIC-GPT in English ===== RFIC-Generator Release Notes ===== v1.240520 Hotfix 1 * Synchronize updates with RFIC-GPT v1.240520 Hotfix 1 * bug fixed v1.240520 * Synchronize updates with RFIC-GPT v1.240520 * More Transformer architectures provided * Fix bugs v1.240125 * For RFIC-GPT v1.240125