1. FinSim's support of FinSimMath is described in chapter 8 of FinSim's User's Guide, which you can also download as a .pdf file
.
2. A detailed example of transforming a scalar productt into the corresponding FIR Filter is shown in Integrating FinSimMath in an Existing Design Flow.pdf
.
FinSimMath includes:
Variable Precision Fixed and Floating point representation, modifiable during the execution of the simulation.
Cartesian and Polar predefined types.
Separation of data from its location for multi-threading processing.
Matricial operations including overloading of +,-, *, /, and ** for all supported types (i.e. real, cartesian, polar, fcartesian, fpolar).
Support for solving differential equations.
Support for FFT, DCT.
Finding roots of polynomials and finding the polynomial given the roots.
Finding the rank of a matrice.
Finding the characteristic polynomial of a matrix.
Finding the eigen values and eigen vectors of a matrix.
Finding a feeback matrix that places poles where wanted.
Solving systems of liniear differential equations.
Support for arithmetic, trigonometric and hyperbolic functions.
Support for sparse matrices.
Support for distances between matrices and for norms of matrices, including sparse matrices.
2. Download the FinSimMath Tutorial as a .pdf file
The tutorial presents an introduction to FinSimMath and provides several commented examples that run on the FinSim Verilog simulator.
3. FAQ about FinSimMath
Numerous questions about FinSimMath are addressed in here.
4. Using FinSimMath DSP designers can determine the optimal sizes and formats for the operands used, by modifying sizes and formats during the execution of the simulation
FinSimMath capabilities are shown at work in this Butterworth IIR LP filter application.
5. Performing 1-million point FFT in less than a second within a Verilog simulation
A benchmark regarding the performance of FFT transformations is presented here.
6. Using FinSimMath for solving non-linear differential equations is presented here
7. FinSimMath code for inverting a 4,000,000 by 4.000,000 sparse matrix in under 1 second
8. Example Code for performing the same computations as those in the MatLab Tutorial listed on the WEB site of the University of Michigan.
9. Finding the roots of a polynomial of order 5131, within a Verilog module in under 14 seconds.
10. Example Code for finding the eigen values and eigen vectors of a matrix.
11. Differential Equations in Verilog: model of a spring-mass system.
12. Example Code for Fast Autocorrelation using FFT/IFFT, within a Verilog module.
13. Example Code for computing in seconds the inverse of a 500x500 matrix with elements of type complex with Cartesian coordinates, within a Verilog module.
14. Example Code for computing the pseudo inverse, within a Verilog module.
15. Example Code for computing in seconds the inverse of the 47x47 Pascal Matrix, within a Verilog module.
16. Example Code for Symbolic Evaluation, Differentiation, Integration, and Laplace Transform, within a Verilog module.
17. Example of user defined C function invoked in FinSimMath Code.
18. Example of Mixed SystemC/Verilog that models inout ports at the interface.
19. Example of Mixed SystemC/Verilog that models Verilog modules instantiated in SystemC and SystemC modules instantiated in Verilog.
20. Example of Verilog/FinSimMath to SystemC translation.