Qucs / ADMS

ADMS is a code generator for the Verilog-AMS language
GNU General Public License v3.0
94 stars 31 forks source link

Fix standard scale factors #8

Closed guitorri closed 9 years ago

guitorri commented 9 years ago

Warn about non conformal scaling units. https://sourceforge.net/p/mot-adms/bugs/17/

There is still an issue the 'K' factor. It seems not to parse it properly if used like '1K'. Using '1.0K' is fine. Working on it.

The test should print:

~/git/adms/tescases $ ../admsXml/admsXml 0000_scale_factor.va -e 0000_scale_factor.xml 
[info...] admsXml-2.3.5 (deedba5) Jan 15 2015 11:15:31
[warning] ./0000_scale_factor.va:19:27: non-standard scale factor: E
[warning] ./0000_scale_factor.va:20:27: non-standard scale factor: P
[warning] ./0000_scale_factor.va:21:27: non-standard scale factor: h
[warning] ./0000_scale_factor.va:22:27: non-standard scale factor: D
[warning] ./0000_scale_factor.va:23:27: non-standard scale factor: d
[warning] ./0000_scale_factor.va:25:27: non-standard scale factor: A
module : scaling
variable : tera     [type] number [value] 1e12
variable : giga     [type] number [value] 1e+9
variable : mega     [type] number [value] 1e+6
variable : Kilo     [type] number [value] 1.e+3
variable : kilo     [type] number [value] 1e+3
variable : mili     [type] number [value] 1e-3
variable : micro    [type] number [value] 1e-6
variable : nano     [type] number [value] 1e-9
variable : pico     [type] number [value] 1e-12
variable : femto    [type] number [value] 1e-15
variable : atto     [type] number [value] 1e-18
variable : exa      [type] number [value] 1e+18
variable : peta     [type] number [value] 1e+15
variable : hecto    [type] number [value] 1e+2
variable : deca     [type] number [value] 1e+1
variable : deci     [type] number [value] 1e-1
variable : centi    [type] number [value] 1e-2
variable : amgstron     [type] number [value] 1e-10
[info...] elapsed time: 0 (second)
[info...] admst iterations: 4104 (2158 freed)
guitorri commented 9 years ago

Found it. I forgot to add the handler for the integer case of 'K'.