Package: dycifer
Dynamic Circuit Performance Evaluation Tool (DYCIFER)is a tool written inPythonthat allows for the extraction of the Performance Indicators of Dynamic Integrated Circuits. Through the analysis of each system's signals (both input and output), the tool will be able to extract indicators such as theTotal Harmonic Distortion(THD) orSignal to Noise & Distortion Ratio(SNDR) of dynamic integrated circuit.How does it workAny integrated circuit designer can simulate the time response of an implemented system through aTransient Analysis, which is a basic concept of Electric Circuits Theory. The exported data to Comma Separated Values files (.CSV) can be parsed as input to the tool.
In the examples provided, ®Cadence Virtuoso's time response simulator was used to obtain some of the time response data.From the simulated time response data of the system we want to analyze, theFast Fourier Transform(FFT)(core) algorithm is used to enable the extraction of all theDynamic Circuit Performance Indicatorslisted in the table below. From these indicators, an integrated circuit designer can eccurately measure the performance of the designed system.Performance IndicatorDescriptionSignal StrengthPower of the analysed signalDC Signal StrengthPower of the DC component of the analysed signalENOBEffective Number of BitsSFDRSpurious Free Dynamic RangeSNRSignal to Noise RatioTHDTotal Harmonic DistortionSNDRSignal to Noise & Distortion RatioHD22nd Order Harmonic Distortion RatioHD33rd Order Harmonic Distortion RatioGainPower Ratio between the Output and Input signalsRise Time [90%]The total time it takes the signal to rise from 10% up to 90% of its total amplitude - only important in pulse responses or pulse modulated signals.DependenciesPoetry-Poetryis the default ®Python package manager, and it allows to easily deploy and install any project or package written in Python language.Otherpackage dependenciesInstallationIt is highly recommended to usePoetryin order to installDYCIFERbecause it will automatically setup the virtual environment and package dependencies necessary to run this tool.First of all,git-clonethis repository into a directory:git clone https://github.com/das-dias/dyciferpy.gitAlternatively, you candownloadthis repo's.zipfile and extract it into a personal directory, if you don't havegitinstalled in your machine.Next, usingPoetry, inside the downloaded repository directory, run the installation command:poetry installUsageAsking for helppoetry run dycifer | -h | --helpDYCIFERis a tool designed to run on the console, and as such it features a neat-lookingCommand Line Interface(CLI) that allows for an easy interaction with its sub-frameworks:Mixed-signals Integrated Circuits dedicated frameworkAnalog Integrated Circuits dedicated frameworkMixed Signals Integrated Circuit Performance Analysispoetry run dycifer mixedsignals | -h | --helpThis sub-framework is mainly dedicated to provide automated performance analysis to the following systems:Analog-to-Digital Converters (ADC) (considering parallel output bit lines)Digital-to-Analog Converters (DAC)(NOT IMPLEMENTED YET)$\Sigma \Delta$ (Sigma-Delta) ADC (considering serialPulse Width Modulatedoutput signal line)(NOT IMPLEMENTED YET)$\Sigma \Delta$ DAC(NOT IMPLEMENTED YET)Analog Integrated Circuit Performance Analysispoetry run dycifer analog | -h | --helpThis sub-framework provides coverage to two classes of analog integrated systems:Continuous Amplitude Output Systems (CAOS)Discrete Amplitude Output Systems (DAOS)The discrimination of analog systems in these two classes provide for powerful, simplified methods to retrieve the performance indicators of (e.g.)Transient responses resembling square (or pulse) waves, or pulse modulated sinusoidal waves, regarding DAOS systemsSinusoidal waves (impure/distorted/noisy or pure), regarding CAOS systemsExamplesDetailed examples on the usage of this tool can be found in the following documents:Performance AnalysisADC Performance AnalysisCAOS Amplifier Performance AnalysisDAOS Amplifier Performance AnalysisSaving Images and Performance IndicatorsSaving TablesSaving Images