Home Knowledge Base mixer

mixer is an RF circuit that multiplies signals so energy at one frequency is translated to their sum and difference frequencies. Mixers perform receiver downconversion and transmitter upconversion in every heterodyne, direct-conversion, radar, and wireless transceiver.

Frequency translation. Multiplying an RF tone by a local oscillator creates components at fRF + fLO and |fRF − fLO|. Filtering selects the desired intermediate or baseband signal. Real modulation carries a spectrum, so images, harmonics, reciprocal mixing, DC offsets, and even-order distortion must be managed. Conversion gain or loss, noise figure, IIP3, P1dB, port isolation, LO drive, bandwidth, and power describe practical performance.

Passive and active architectures. A diode ring or MOS commutating quad is passive, offers high linearity and no DC power in the core, but has conversion loss and needs substantial LO swing. An active Gilbert cell uses a transconductance input followed by a switching quad, providing conversion gain and integration at the cost of noise, headroom, and linearity. Double-balanced structures suppress LO and RF feedthrough and even-order products; quadrature mixers generate I and Q paths for complex modulation.

Receiver and transmitter use. Low-IF receivers avoid some DC and flicker-noise issues but require image rejection. Zero-IF receivers simplify channel filtering and digitization but face LO self-mixing, DC offsets, I/Q imbalance, and 1/f noise. Transmit mixers upconvert baseband while LO leakage and sideband imbalance challenge EVM and spectral masks. Radar mixers preserve beat-frequency phase and must tolerate TX leakage and close-in phase noise.

Implementation and layout. Switch timing, device size, transconductance, degeneration, load impedance, bias, and LO waveform set gain, noise, and linearity. Differential symmetry and matched I/Q routing reduce feedthrough and image error. Baluns, package coupling, substrate paths, supply return, and LO distribution can dominate isolation. Calibration estimates DC, gain, and phase errors, but cannot fully repair compression or unstable spurs.

Verification and measurement. A production implementation begins with explicit terminal conditions, operating ranges, loading, accuracy, noise, latency, efficiency, area, cost, lifetime, and fault behavior. Schematic or architectural models establish feasibility; extracted, package, board, thermal, and control-loop models then reveal interactions hidden by ideal sources and loads. Verification spans process, voltage, temperature, mismatch, aging, startup, shutdown, overload, brownout, and recovery. Teams should define measurement bandwidth, observation point, stimulus, pass limit, guard band, and statistical confidence before simulation. Layout review covers current return, thermal gradients, matching, parasitic coupling, electromigration, voltage stress, latch-up, ESD paths, and test access. Correlation retains netlists, models, scripts, tool versions, raw results, lab conditions, calibration status, and explanations for outliers. This evidence turns a nominal design into a reproducible component that can be signed off across device, circuit, package, firmware, and system teams. Corner selection should follow sensitivity rather than blindly combining labels. Deterministic sweeps expose monotonic trends, targeted Monte Carlo analysis estimates distribution tails, and importance sampling can explore rare failures. Reviewers should distinguish model uncertainty from manufacturing variation and avoid claiming yield from too few samples. The interface contract must state what happens outside normal operation. Open and short terminals, reverse polarity, hot plug, disabled bias, floating control pins, clock loss, thermal shutdown, current limiting, and repeated fault cycling often determine field reliability even though they are absent from the nominal transfer function. Dynamic behavior deserves the same attention as steady state. Settling, overshoot, ringing, slew, recovery from saturation, mode transitions, and interaction with external poles can violate a system limit long before a DC endpoint does. Time-domain tests should include realistic edge rates and source impedance. Noise should be referred to the signal or supply point that matters to the application and integrated only over a stated bandwidth. Thermal, flicker, quantization, switching, reference, substrate, and electromagnetic contributions may combine differently across modes, so a single spot-noise number rarely completes the specification. Power and thermal claims should include quiescent, active, transient, and fault states. Average efficiency can hide localized current density or hot spots; electrothermal simulation and temperature-aware device models connect electrical stress to lifetime, drift, and protection thresholds. Physical design must preserve the assumptions behind the schematic. Symmetry, common-centroid placement, dummies, shielding, guard rings, Kelvin sensing, wide current paths, via arrays, controlled coupling, and quiet reference routing are selected according to the dominant error rather than applied as decoration. Production test strategy is part of design. Trim range, observability, loopback modes, built-in self-test, boundary conditions, test time, and instrument uncertainty determine which specifications can be guaranteed economically. Characterization across wafers and lots should feed model and guard-band updates. System telemetry can extend laboratory correlation into deployed products. Error counters, calibration codes, temperatures, supply monitors, fault flags, margin measurements, and performance events help distinguish random failures from systematic drift without exposing sensitive implementation details. A useful comparison normalizes alternatives at equal output requirement and environment. Peak headline values can be misleading when bandwidth, drive, voltage, area, cooling, external components, calibration, or reliability differs; the decision record should name the workload and weighting used. Cross-functional review should trace each requirement from physical mechanism through circuit behavior to application impact. That trace prevents duplicated margin, exposes assumptions that span ownership boundaries, and makes later process or package substitutions safer. Corner selection should follow sensitivity rather than blindly combining labels. Deterministic sweeps expose monotonic trends, targeted Monte Carlo analysis estimates distribution tails, and importance sampling can explore rare failures. Reviewers should distinguish model uncertainty from manufacturing variation and avoid claiming yield from too few samples. The interface contract must state what happens outside normal operation. Open and short terminals, reverse polarity, hot plug, disabled bias, floating control pins, clock loss, thermal shutdown, current limiting, and repeated fault cycling often determine field reliability even though they are absent from the nominal transfer function.

AttributePassive mixerActive Gilbert mixerSystem consequence
ConversionLoss, often several dBCan provide gainChanges following-stage noise budget
DC powerNo core biasConsumes bias currentBattery and thermal impact
LO driveUsually largeModerate to largeLO buffer design
LinearityOften highLower for equal process and headroomBlocker tolerance
NoiseLoss contributes directlyDevice and switching noiseReceiver sensitivity
IntegrationSimple switching coreGain and bias integratedArea and supply complexity
<svg viewBox="0 0 760 470" xmlns="http://www.w3.org/2000/svg" font-family="Segoe UI,Arial,sans-serif"><rect width="760" height="470" fill="#0d1117"/><defs><marker id="ab" markerWidth="8" markerHeight="8" refX="6.5" refY="3" orient="auto"><path d="M0,0 L7,3 L0,6 Z" fill="#60a5fa"/></marker><marker id="ag" markerWidth="8" markerHeight="8" refX="6.5" refY="3" orient="auto"><path d="M0,0 L7,3 L0,6 Z" fill="#34d399"/></marker><marker id="am" markerWidth="8" markerHeight="8" refX="6.5" refY="3" orient="auto"><path d="M0,0 L7,3 L0,6 Z" fill="#c4b5fd"/></marker><marker id="ah" markerWidth="8" markerHeight="8" refX="6.5" refY="3" orient="auto"><path d="M0,0 L7,3 L0,6 Z" fill="#8b949e"/></marker><marker id="ar" markerWidth="8" markerHeight="8" refX="6.5" refY="3" orient="auto"><path d="M0,0 L7,3 L0,6 Z" fill="#f87171"/></marker></defs><text x="20" y="30" fill="#e6edf3" font-size="19" font-weight="700">RF mixer: the Gilbert cell and frequency translation</text><text x="20" y="50" fill="#8b949e" font-size="12.5">Multiplying RF by the LO shifts a band up or down; the double-balanced quad cancels feedthrough for clean products.</text><rect x="20" y="66" width="226" height="298" rx="7" fill="#0c141d" stroke="#30363d"/><text x="32" y="87" fill="#e6edf3" font-size="13.5" font-weight="600">Gilbert cell (double-balanced)</text><rect x="267" y="66" width="226" height="298" rx="7" fill="#0c141d" stroke="#30363d"/><text x="279" y="87" fill="#e6edf3" font-size="13.5" font-weight="600">Frequency translation</text><rect x="514" y="66" width="226" height="298" rx="7" fill="#0c141d" stroke="#30363d"/><text x="526" y="87" fill="#e6edf3" font-size="13.5" font-weight="600">Multiply &#8594; specs</text><line x1="34" y1="100" x2="232" y2="100" stroke="#f87171" stroke-width="1.4"/><text x="34" y="96" fill="#fca5a5" font-size="7.5">VDD</text><line x1="34" y1="330" x2="232" y2="330" stroke="#8b949e" stroke-width="1.2"/><text x="34" y="341" fill="#8b949e" font-size="7.5">GND</text><rect x="84" y="106" width="8" height="20" rx="1.5" fill="none" stroke="#fbbf24" stroke-width="1"/><line x1="88" y1="100" x2="88" y2="106" stroke="#fbbf24" stroke-width="1"/><line x1="88" y1="126" x2="88" y2="130" stroke="#fbbf24" stroke-width="1"/><circle cx="88" cy="130" r="1.8" fill="#e6edf3"/><text x="58" y="133" fill="#fbbf24" font-size="8" font-weight="700">IF+</text><rect x="172" y="106" width="8" height="20" rx="1.5" fill="none" stroke="#fbbf24" stroke-width="1"/><line x1="176" y1="100" x2="176" y2="106" stroke="#fbbf24" stroke-width="1"/><line x1="176" y1="126" x2="176" y2="130" stroke="#fbbf24" stroke-width="1"/><circle cx="176" cy="130" r="1.8" fill="#e6edf3"/><text x="184" y="133" fill="#fbbf24" font-size="8" font-weight="700">IF-</text><text x="98" y="118" fill="#fbbf24" font-size="6.5">RL</text><line x1="68" y1="160" x2="68" y2="180" stroke="#c4b5fd" stroke-width="1.5"/><line x1="55" y1="170" x2="68" y2="170" stroke="#c4b5fd" stroke-width="1"/><line x1="73" y1="160" x2="73" y2="180" stroke="#c4b5fd" stroke-width="1.5"/><line x1="73" y1="160" x2="83" y2="160" stroke="#c4b5fd" stroke-width="1"/><line x1="83" y1="160" x2="83" y2="151" stroke="#c4b5fd" stroke-width="1"/><line x1="73" y1="180" x2="83" y2="180" stroke="#c4b5fd" stroke-width="1"/><line x1="83" y1="180" x2="83" y2="189" stroke="#c4b5fd" stroke-width="1"/><text x="86" y="173" fill="#8b949e" font-size="6.5">M3</text><line x1="98" y1="160" x2="98" y2="180" stroke="#c4b5fd" stroke-width="1.5"/><line x1="85" y1="170" x2="98" y2="170" stroke="#c4b5fd" stroke-width="1"/><line x1="103" y1="160" x2="103" y2="180" stroke="#c4b5fd" stroke-width="1.5"/><line x1="103" y1="160" x2="113" y2="160" stroke="#c4b5fd" stroke-width="1"/><line x1="113" y1="160" x2="113" y2="151" stroke="#c4b5fd" stroke-width="1"/><line x1="103" y1="180" x2="113" y2="180" stroke="#c4b5fd" stroke-width="1"/><line x1="113" y1="180" x2="113" y2="189" stroke="#c4b5fd" stroke-width="1"/><text x="116" y="173" fill="#8b949e" font-size="6.5">M4</text><line x1="154" y1="160" x2="154" y2="180" stroke="#c4b5fd" stroke-width="1.5"/><line x1="141" y1="170" x2="154" y2="170" stroke="#c4b5fd" stroke-width="1"/><line x1="159" y1="160" x2="159" y2="180" stroke="#c4b5fd" stroke-width="1.5"/><line x1="159" y1="160" x2="169" y2="160" stroke="#c4b5fd" stroke-width="1"/><line x1="169" y1="160" x2="169" y2="151" stroke="#c4b5fd" stroke-width="1"/><line x1="159" y1="180" x2="169" y2="180" stroke="#c4b5fd" stroke-width="1"/><line x1="169" y1="180" x2="169" y2="189" stroke="#c4b5fd" stroke-width="1"/><text x="172" y="173" fill="#8b949e" font-size="6.5">M5</text><line x1="184" y1="160" x2="184" y2="180" stroke="#c4b5fd" stroke-width="1.5"/><line x1="171" y1="170" x2="184" y2="170" stroke="#c4b5fd" stroke-width="1"/><line x1="189" y1="160" x2="189" y2="180" stroke="#c4b5fd" stroke-width="1.5"/><line x1="189" y1="160" x2="199" y2="160" stroke="#c4b5fd" stroke-width="1"/><line x1="199" y1="160" x2="199" y2="151" stroke="#c4b5fd" stroke-width="1"/><line x1="189" y1="180" x2="199" y2="180" stroke="#c4b5fd" stroke-width="1"/><line x1="199" y1="180" x2="199" y2="189" stroke="#c4b5fd" stroke-width="1"/><text x="202" y="173" fill="#8b949e" font-size="6.5">M6</text><line x1="83" y1="151" x2="83" y2="130" stroke="#c4b5fd" stroke-width="1"/><line x1="83" y1="130" x2="88" y2="130" stroke="#c4b5fd" stroke-width="1"/><line x1="199" y1="151" x2="199" y2="130" stroke="#c4b5fd" stroke-width="1"/><line x1="199" y1="130" x2="176" y2="130" stroke="#c4b5fd" stroke-width="1"/><line x1="113" y1="151" x2="113" y2="122" stroke="#c4b5fd" stroke-width="1"/><line x1="113" y1="122" x2="176" y2="122" stroke="#c4b5fd" stroke-width="1"/><line x1="176" y1="122" x2="176" y2="130" stroke="#c4b5fd" stroke-width="1"/><line x1="169" y1="151" x2="169" y2="122" stroke="#c4b5fd" stroke-width="1"/><line x1="169" y1="122" x2="88" y2="122" stroke="#c4b5fd" stroke-width="1"/><line x1="88" y1="122" x2="88" y2="130" stroke="#c4b5fd" stroke-width="1"/><text x="42" y="156" fill="#c4b5fd" font-size="7">LO+</text><line x1="55" y1="170" x2="50" y2="170" stroke="#c4b5fd" stroke-width="0.8"/><text x="192" y="156" fill="#c4b5fd" font-size="7">LO+</text><text x="106" y="156" fill="#c4b5fd" font-size="7">LO-</text><text x="128" y="156" fill="#c4b5fd" font-size="7">LO-</text><line x1="83" y1="189" x2="113" y2="189" stroke="#c4b5fd" stroke-width="1"/><line x1="169" y1="189" x2="199" y2="189" stroke="#c4b5fd" stroke-width="1"/><line x1="82" y1="236" x2="82" y2="256" stroke="#60a5fa" stroke-width="1.5"/><line x1="69" y1="246" x2="82" y2="246" stroke="#60a5fa" stroke-width="1"/><line x1="87" y1="236" x2="87" y2="256" stroke="#60a5fa" stroke-width="1.5"/><line x1="87" y1="236" x2="97" y2="236" stroke="#60a5fa" stroke-width="1"/><line x1="97" y1="236" x2="97" y2="227" stroke="#60a5fa" stroke-width="1"/><line x1="87" y1="256" x2="97" y2="256" stroke="#60a5fa" stroke-width="1"/><line x1="97" y1="256" x2="97" y2="265" stroke="#60a5fa" stroke-width="1"/><text x="100" y="249" fill="#8b949e" font-size="6.5">M1</text><line x1="170" y1="236" x2="170" y2="256" stroke="#60a5fa" stroke-width="1.5"/><line x1="157" y1="246" x2="170" y2="246" stroke="#60a5fa" stroke-width="1"/><line x1="175" y1="236" x2="175" y2="256" stroke="#60a5fa" stroke-width="1.5"/><line x1="175" y1="236" x2="185" y2="236" stroke="#60a5fa" stroke-width="1"/><line x1="185" y1="236" x2="185" y2="227" stroke="#60a5fa" stroke-width="1"/><line x1="175" y1="256" x2="185" y2="256" stroke="#60a5fa" stroke-width="1"/><line x1="185" y1="256" x2="185" y2="265" stroke="#60a5fa" stroke-width="1"/><text x="188" y="249" fill="#8b949e" font-size="6.5">M2</text><line x1="97" y1="227" x2="98" y2="189" stroke="#60a5fa" stroke-width="1"/><line x1="185" y1="227" x2="184" y2="189" stroke="#60a5fa" stroke-width="1"/><text x="54" y="248" fill="#60a5fa" font-size="7.5">RF+</text><text x="190" y="248" fill="#60a5fa" font-size="7.5">RF-</text><line x1="97" y1="265" x2="185" y2="265" stroke="#60a5fa" stroke-width="1"/><line x1="141" y1="265" x2="141" y2="273" stroke="#60a5fa" stroke-width="1"/><circle cx="141" cy="281" r="8" fill="none" stroke="#34d399" stroke-width="1.1"/><text x="152" y="284" fill="#6ee7b7" font-size="6.5">Iss</text><line x1="141" y1="289" x2="141" y2="330" stroke="#34d399" stroke-width="1"/><text x="34" y="352" fill="#8b949e" font-size="7">LO quad steers current &#8594; multiplies RF by &#177;1 square wave</text><text x="34" y="362" fill="#8b949e" font-size="7">Symmetry cancels RF &amp; LO feedthrough at IF port</text><text x="283" y="116" fill="#cdd9e5" font-size="8.5" font-weight="700">Before mix &#8212; RF &amp; LO</text><line x1="283" y1="132" x2="479" y2="132" stroke="#8b949e" stroke-width="1"/><text x="473" y="144" fill="#8b949e" font-size="6.5">freq</text><line x1="343" y1="132" x2="343" y2="102" stroke="#60a5fa" stroke-width="2.4"/><circle cx="343" cy="102" r="1.8" fill="#60a5fa"/><text x="343" y="98" fill="#60a5fa" font-size="6.5" text-anchor="middle">fRF</text><line x1="379" y1="132" x2="379" y2="90" stroke="#c4b5fd" stroke-width="2.4"/><circle cx="379" cy="90" r="1.8" fill="#c4b5fd"/><text x="379" y="86" fill="#c4b5fd" font-size="6.5" text-anchor="middle">fLO</text><text x="301" y="92" fill="#8b949e" font-size="6">image</text><line x1="323" y1="132" x2="323" y2="114" stroke="#f87171" stroke-width="2" stroke-dasharray="2 2"/><circle cx="323" cy="114" r="1.6" fill="#f87171"/><text x="283" y="218" fill="#cdd9e5" font-size="8.5" font-weight="700">After mix &#8212; IF products</text><line x1="283" y1="234" x2="479" y2="234" stroke="#8b949e" stroke-width="1"/><text x="473" y="246" fill="#8b949e" font-size="6.5">freq</text><line x1="307" y1="234" x2="307" y2="190" stroke="#34d399" stroke-width="2.4"/><circle cx="307" cy="190" r="1.8" fill="#34d399"/><text x="307" y="186" fill="#34d399" font-size="6.5" text-anchor="middle">IF=|fRF-fLO|</text><line x1="439" y1="234" x2="439" y2="214" stroke="#8b949e" stroke-width="2.4"/><circle cx="439" cy="214" r="1.8" fill="#8b949e"/><text x="439" y="210" fill="#8b949e" font-size="6.5" text-anchor="middle">fRF+fLO</text><rect x="281" y="272" width="198" height="70" rx="5" fill="#111a24" stroke="#30363d"/><text x="289" y="288" fill="#e6edf3" font-size="8.5" font-weight="700">Sum &amp; difference products</text><text x="289" y="302" fill="#67e8f9" font-size="8">fIF = | fRF &#8722; fLO |   (down-convert)</text><text x="289" y="315" fill="#c4b5fd" font-size="8">fRF = fIF + fLO   (up-convert)</text><text x="289" y="329" fill="#8b949e" font-size="7">Image at 2&#183;fLO &#8722; fRF folds onto IF &#8594;</text><text x="289" y="338" fill="#8b949e" font-size="7">must be filtered or cancelled (I/Q).</text><circle cx="564" cy="128" r="18" fill="#12233a" stroke="#60a5fa" stroke-width="1.4"/><line x1="557" y1="121" x2="571" y2="135" stroke="#60a5fa" stroke-width="1.6"/><line x1="557" y1="135" x2="571" y2="121" stroke="#60a5fa" stroke-width="1.6"/><line x1="526" y1="118" x2="546" y2="122" stroke="#60a5fa" stroke-width="1.1" marker-end="url(#ab)"/><text x="526" y="114" fill="#60a5fa" font-size="7.5">RF</text><line x1="526" y1="140" x2="546" y2="134" stroke="#c4b5fd" stroke-width="1.1" marker-end="url(#am)"/><text x="526" y="150" fill="#c4b5fd" font-size="7.5">LO</text><line x1="582" y1="128" x2="608" y2="128" stroke="#34d399" stroke-width="1.2" marker-end="url(#ag)"/><text x="594" y="123" fill="#6ee7b7" font-size="8" font-weight="700">IF</text><text x="526" y="174" fill="#e6edf3" font-size="8.2" font-weight="700">cos&#969;RF &#183; cos&#969;LO =</text><text x="536" y="187" fill="#67e8f9" font-size="8">&#189;[ cos(&#969;RF&#8722;&#969;LO) + cos(&#969;RF+&#969;LO) ]</text><text x="526" y="200" fill="#8b949e" font-size="7">one multiply &#8594; a difference tone and a sum tone</text><rect x="526" y="212" width="202" height="20" rx="3" fill="#111a24" stroke="#30363d"/><text x="532" y="225" fill="#cdd9e5" font-size="7.8">Conversion gain</text><text x="720" y="225" fill="#67e8f9" font-size="7.2" text-anchor="end">dB (active) / loss (passive)</text><rect x="526" y="236" width="202" height="20" rx="3" fill="#111a24" stroke="#30363d"/><text x="532" y="249" fill="#cdd9e5" font-size="7.8">Noise figure</text><text x="720" y="249" fill="#67e8f9" font-size="7.2" text-anchor="end">SSB / DSB</text><rect x="526" y="260" width="202" height="20" rx="3" fill="#111a24" stroke="#30363d"/><text x="532" y="273" fill="#cdd9e5" font-size="7.8">Linearity</text><text x="720" y="273" fill="#67e8f9" font-size="7.2" text-anchor="end">IIP3, P1dB</text><rect x="526" y="284" width="202" height="20" rx="3" fill="#111a24" stroke="#30363d"/><text x="532" y="297" fill="#cdd9e5" font-size="7.8">Port isolation</text><text x="720" y="297" fill="#67e8f9" font-size="7.2" text-anchor="end">LO&#8594;IF, LO&#8594;RF</text><rect x="526" y="308" width="202" height="20" rx="3" fill="#111a24" stroke="#30363d"/><text x="532" y="321" fill="#cdd9e5" font-size="7.8">Image rejection</text><text x="720" y="321" fill="#67e8f9" font-size="7.2" text-anchor="end">filter or I/Q mixer</text><rect x="20" y="384" width="226" height="70" rx="7" fill="#111a24" stroke="#30363d"/><text x="32" y="403" fill="#e6edf3" font-size="12.5" font-weight="700">Multiply, do not add</text><text x="32" y="420" fill="#cdd9e5" font-size="10">A mixer multiplies two signals; the product</text><text x="32" y="433" fill="#cdd9e5" font-size="10">creates sum and difference tones, translating</text><text x="32" y="446" fill="#cdd9e5" font-size="10">a whole band up or down without changing the</text><text x="32" y="459" fill="#cdd9e5" font-size="10">information it carries.</text><rect x="267" y="384" width="226" height="70" rx="7" fill="#111a24" stroke="#30363d"/><text x="279" y="403" fill="#e6edf3" font-size="12.5" font-weight="700">Double-balanced cancels leakage</text><text x="279" y="420" fill="#cdd9e5" font-size="10">The symmetric Gilbert quad cancels RF and LO</text><text x="279" y="433" fill="#cdd9e5" font-size="10">feedthrough at the IF port, so mainly the</text><text x="279" y="446" fill="#cdd9e5" font-size="10">wanted conversion products survive.</text><rect x="514" y="384" width="226" height="70" rx="7" fill="#111a24" stroke="#30363d"/><text x="526" y="403" fill="#e6edf3" font-size="12.5" font-weight="700">Image and linearity matter</text><text x="526" y="420" fill="#cdd9e5" font-size="10">An unwanted image band folds onto IF unless</text><text x="526" y="433" fill="#cdd9e5" font-size="10">filtered or an I/Q mixer rejects it; IIP3 sets</text><text x="526" y="446" fill="#cdd9e5" font-size="10">how large a signal mixes cleanly.</text></svg>

Connection to CFS platform. Use the relevant CFS RF, optical, device, circuit, signal-processing, package, thermal, and system simulators with linked glossary topics to turn these concepts into quantified engineering decisions.

mixerrf mixergilbert cellfrequency converterdownconversionupconversionrf transceiver design

Explore 500+ Semiconductor & AI Topics

From EUV lithography to CUDA optimization — search the full knowledge base or chat with our AI assistant.