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;
50 friend std::unique_ptr<FilterModelConfig6581>::deleter_type;
55 const double WL_snake;
60 const double dac_zero;
61 const double dac_scale;
69 unsigned short vcr_nVg[1 << 16];
70 double vcr_n_Ids_term[1 << 16];
74 double getDacZero(
double adjustment)
const {
return dac_zero + (1. - adjustment); }
82 void setFilterRange(
double adjustment);
92 unsigned short*
getDAC(
double adjustment)
const;
94 inline double getWL_snake()
const {
return WL_snake; }
96 inline unsigned short getVcr_nVg(
int i)
const {
return vcr_nVg[i]; }
97 inline unsigned short getVcr_n_Ids_term(
int i)
const
99 const double tmp = vcr_n_Ids_term[i] *
uCox;
100 assert(tmp > -0.5 && tmp < 65535.5);
101 return static_cast<unsigned short>(tmp + 0.5);
104 inline constexpr double getUt()
const {
return Ut; }
105 inline double getN16()
const {
return N16; }
Definition FilterModelConfig6581.h:43
unsigned short * getDAC(double adjustment) const
Definition FilterModelConfig6581.cpp:267
Definition FilterModelConfig.h:38
double uCox
Transconductance coefficient: u*Cox.
Definition FilterModelConfig.h:51
static constexpr double Ut
Transistor parameters.
Definition FilterModelConfig.h:46
const double N16
Fixed point scaling for 16 bit op-amp output.
Definition FilterModelConfig.h:59