The purpose of this package is to provide a capability to describe the time domain behavior of a device by a (possibly multi-dimensional) table. The need for such a capability may arise if model data has been determined by measurement, but also if the evaluation of the actual model equations is very costly and doing this evaluation once before simulation to create a table proves to be sufficient. Table-driven modeling is supported by Verilog-A(MS), and the goal is to provide a similar capability for VHDL-AMS using VHDL 2008 capabilities.
-- package interface (only stripped version) library IEEE; use IEEE.MATH_COMPLEX.all; package TABLE_INTERPOLATION_PKG is type INTERPOLATION_METHOD is (TDM_PWL, TDM_CLOSEST_POINT, TDM_STEPWISE_CONSTANT, TDM_QUADRATIC, TDM_CUBIC, TDM_RATIONAL, TDM_IGNORE ); type EXTRAPOLATION_METHOD is (TDM_LINEAR, TDM_CONSTANT, TDM_CONTINUATION, TDM_PERIODIC, TDM_ERROR); type TABLE_DATA_REAL is protected procedure PREPARE_TABLE_DATA ( X : REAL_VECTOR; Y : REAL_VECTOR; METHOD : INTERPOLATION_METHOD := TDM_PWL; LEFT : EXTRAPOLATION_METHOD := TDM_LINEAR; RIGHT : EXTRAPOLATION_METHOD := TDM_LINEAR); impure function LOOKUP_TABLE_DATA (XV : REAL) return REAL; -- declations for the multidimensional case and other cases follow end protected TABLE_DATA_REAL; type TABLE_DATA_COMPLEX is protected procedure PREPARE_TABLE_DATA ( X : REAL_VECTOR; Y : COMPLEX_VECTOR; METHOD : INTERPOLATION_METHOD := TDM_PWL; LEFT : EXTRAPOLATION_METHOD := TDM_ERROR; RIGHT : EXTRAPOLATION_METHOD := TDM_ERROR); impure function LOOKUP_TABLE_DATA (XV : REAL) return COMPLEX; end protected TABLE_DATA_COMPLEX; end package TABLE_INTERPOLATION_PKG;
The work is related to activities of the IEEE 1076.1 WG.