====== VAMS netlister README ====== ===== VAMS netlister ===== date: 10 october 2000 gEDA: gnetlist vams mode first unrevised vams mode documentation Written by: Martin Lehmann ------------------------------------------------------------------------- VHDL-AMS support for the gEDA gnetlist tool ------------------------------------------- CONTENT: 1. functionality 1. ARCHITECTURE generation 2. ENTITY generation 3. automatisate gnetlist calls 2. implementation 1. the vams mode of gEDA gnetlist 1. scheme 1. settings and new definition 2. gnet-vams.scm 1. routines main structure 3. helpfully setting in gEDA gschem environment 2. new c-code 1. routines 2. code-adaptation 2. automatic generating gnetlist calls in gEDA gschem 1. generated gEDA gnetlist calls 2. scheme 1. generate_netlist.scm 2. settings 3. new c-code 1. routines 2. code-adaptation The purpose of our endevour, is that gEDA gnelist completly supportted VHDL-AMS (VHDL Analog and Mixed-Signal) netlist generation. The VHDL-AMS netlist support mode is called vams. 1. FUNCTIONALITY gEDA gnetlist in vams mode allow it to generate a VHDL-AMS ARCHITECTURE or an ENTIY declaration. Which of both tasks is performed, dependends on the generate-mode variable. This variable is defined in the gnetlist command or will be set default. If generate-mode=1 (default) gnetlist creates a netlist as an VHDL-AMS ARCHITECTURE of the current schematic. Otherwise (generate-mode=2), it creates an VHDL-AMS ENTITY declaration of the selected component (this task needs information from gEDA gschem, see below). Now follows a stepwise discription of the program run in both submodes. We presuppose that you are familiar with the structure of gEDA gnetlist usage (otherwise try gnetlist -help) and that you have ever seen an VHDL-AMS ARCHITECTURE with its belonging ENTITY. If you does not then the following distription will be seems very strange to you. Maybe the syntax files (syntax_entity.txt, syntax_architeture.txt) can helps you further. ================================================================== 1.1. ARCHITECTURE GENERATION We suppose generate-mode is equal to 1, from this it follows that vams creates a netlist as an ARCHITECTURE (saved to _arc.). ARCHITECTURE OF IS The architecture-identifier we are getting from the toplevel attribute architecture, which we have introduced. If it is not defined, we are setting architecture-identifier default (default_architecture). The same have we doing with the entity-identifier (toplevel attribute entity, default_entity). { : subnet-kind;} In the signal declaration part all subnets of the schematic will be declarated. A subnet declaration consists of an net-object, a net-name and a net-kind. All subnets are connected to various components pins. If this pins have all the same port-object and the same port-kind it is ok, but if one of them different, the net is faulty, and will be not declarated. Moreover, if the subnet-object a quantity, then it will be checked, whether the subnet consists exactly one output pin (port-mode), else the subnet is faulty too. The three net attributes (object, kind, mode) we are getting from the pin attribs, port_kind, port_object and port_mode (which we have introduced newly) of a component pin. BEGIN Ok. it's only marks the start of the architecture body. { ===== VAMS netlister syntax architecture ===== ARCHITECTURE OF IS { : subnet-kind;} BEGIN { ===== VAMS netlister syntax entity ===== LIBRARY {,}; USE {,}; ENTITY IS [GENERIC ( : REAL := {; : REAL := }); ] [PORT ( : [] {; : [] });] END ENTITY;