23#ifndef FILTERMODELCONFIG6581_H
24#define FILTERMODELCONFIG6581_H
26#include "FilterModelConfig.h"
45 static constexpr unsigned int DAC_BITS = 11;
48 static std::unique_ptr<FilterModelConfig6581> instance;
51 friend std::unique_ptr<FilterModelConfig6581>::deleter_type;
59 const double WL_snake;
64 const double dac_zero;
65 const double dac_scale;
73 unsigned short vcr_nVg[1 << 16];
74 double vcr_n_Ids_term[1 << 16];
78 double getDacZero(
double adjustment)
const {
return dac_zero + (1. - adjustment); }
86 void setFilterRange(
double adjustment);
96 unsigned short*
getDAC(
double adjustment)
const;
105 inline unsigned short getVcr_nVg(
int i)
const {
return vcr_nVg[i]; }
106 inline unsigned short getVcr_n_Ids_term(
int i)
const
108 const double tmp = vcr_n_Ids_term[i] *
uCox;
109 assert(tmp > -0.5 && tmp < 65535.5);
110 return static_cast<unsigned short>(tmp + 0.5);
113 inline double getUt()
const {
return Ut; }
114 inline double getN16()
const {
return N16; }
Definition FilterModelConfig6581.h:43
unsigned short * getDAC(double adjustment) const
Definition FilterModelConfig6581.cpp:272
Integrator * buildIntegrator() override
Definition FilterModelConfig6581.cpp:287
Definition FilterModelConfig.h:40
const double Ut
Thermal voltage: Ut = kT/q = 8.61734315e-5*T ~ 26mV.
Definition FilterModelConfig.h:49
double uCox
Transconductance coefficient: u*Cox.
Definition FilterModelConfig.h:50
const double N16
Fixed point scaling for 16 bit op-amp output.
Definition FilterModelConfig.h:59
Definition Integrator.h:30