Zum Hauptinhalt springen

VHDL - Style Guide

  1-- Literatur: HSSE VHDL Style EDS2 von Markus Pfaff (FH-Hagenberg)
  2
  3-- Dateinamen
  4    -- entity                                ... <e.id>-e.vhd
  5    -- architecture                          ... <e.id>-<a.id>-a.vhd
  6    -- entity & architecture                 ... <e.id>-<a.id>-ea.vhd
  7    -- configuration                         ... <e.id>-<a.id>-<c.id>-c.vhd
  8    -- entity & architecture & configuration ... <e.id>-<a.id>-<c.id>-eac.vhd
  9    -- package header                        ... <package.id>-h.vhd
 10    -- package body                          ... <package.id>-b.vhd
 11    -- package header & body                 ... <package.id>-p.vhd
 12
 13
 14-- Header
 15    -----------------------------------------------------------------------
 16    -- Title :   xxx
 17    -- Project : xxx
 18    -----------------------------------------------------------------------
 19    -- Abstract:
 20    -- xxx
 21    -----------------------------------------------------------------------
 22    -- Company : xxx (FH-Hagenberg/HSSE, Hagenberg/Austria)
 23    -- Copyright (c)
 24    -----------------------------------------------------------------------
 25    -- Author:   xxx
 26    -- Revision: xxx
 27    -- Date:     xxx
 28    -----------------------------------------------------------------------
 29
 30
 31-- Kommentare
 32        -- moeglichst auf Englisch verfassen
 33        -- vor der Codezeile, da daneben meistens kein Platz
 34
 35
 36-- Namenskonvention
 37        -- Gemischte Gross-/Kleinschreibung:
 38        --      StrobeBaudRate, SystemClk, AsyncGlobalReset
 39        -- oder
 40        -- Kleinschreibung mit underscores:
 41        --      strobe_baud_rate, system_clk, async_global_reset
 42        
 43        -- input port           i       iClk            clk_i
 44        -- output port          o       oReqDataPar     req_data_par_o
 45        -- bidirectional port   b       bParData        par_data_b
 46        -- signal               keines  BaudRateCtr     baud_rate_ctr
 47        -- constant             c       cActivated      activated_c
 48        -- generic              g       gBaudRate       baud_rate_g
 49        -- variable             v       vFraction       fraction_v
 50        -- type                 a, t    aSignedByte     SignedByte_t
 51        -- file                 File    BmpDryFile      BmpDryFile
 52        -- Negative Logik       n       nAckData        ack_data_n
 53
 54
 55-- gaengige Namen
 56        -- Reset, Rst:              Asynchrones Ruecksetzsignal. Findet
 57        --                          sich nach der Synthese an FlipFlop-Reset-
 58        --                          Eingaengen wieder.
 59        -- Clk:                     Ein Taktsignal. Nach der Synthese wird
 60        --                          es sich am Takteingang von FlipFlops
 61        --                          wiederfinden.
 62        -- Strobe:                  Zeichen fuer eine zyklische Aktivitaet.
 63        --                          Ueber die Laenge einer Taktperiode aktiv,
 64        --                          sonst inaktiv. Keinesfalls zu verwechseln
 65        --                          mit einem Taktsignal!
 66        -- Sel:                     Funktionsauswahl an einer kombinatorischen
 67        --                          Einheit, wie einem Multiplexer oder einer
 68        --                          ALU. (Das Wort Select ist ein reserved
 69        --                          word in VHDL und kann daher nicht benutzt
 70        --                          werden.)
 71        -- Selcd:                   Abkuerzung fuer Selected. Verwendung
 72        --                          beispielsweise in Konstanten die eine
 73        --                          bestimmte Mux-Stellung einstellen:
 74        --                          cStaD0Selcd.
 75        -- Enable, En:              Freigabesignal.
 76        -- Request, Req:            Anfrage fuer Daten. Eine Einheit A zeigt
 77        --                          der Einheit B, dass Daten erwuenscht sind.
 78        -- Acknowledge, Ack:        Bestaetigung, dass ein request verstanden
 79        --                          wurde und dass die Antwort bereitliegt.
 80        -- Toggle, Tgl:             Aktivitaet auf diesem Signal wird durch
 81        --                          einen Pegelwechsel angezeigt.
 82        -- Asynchronous, Async:     Dieses Signal ist nicht synchron zum Takt
 83        --                          dieser unit. Es ist also nicht ein-
 84        --                          syncronisiert. Taktsynchrone Signale
 85        --                          werden nicht gesondert gekennzeichnet.
 86        -- Counter, Ctr:            Zaehlerstand.
 87        -- NrOf, Nr:                Anzahl.
 88        -- Delayed1, Del1:          Delayed um einen (zwei, drei,. . . )
 89        --                          Taktzyklen.
 90        -- ReadWrite, Rw:           Anwahl von Lese- oder Schreibbetrieb.
 91        -- Default, Dft:            Default-Wert, beispielsweise zur Belegung
 92        --                          von generics falls von aussen kein Wert
 93        --                          gewaehlt wird.
 94        -- Mux:                     Ausgangssignal eines Multiplexers,
 95        --                          beispielsweise in einem Datenpfad.
 96        -- Synchronized, Syncd:     Einsynchronisierte Version eines
 97        --                          asynchronen Signals.
 98        -- Metastable:              Moeglicherweise metastabiles Signal,
 99        --                          beispielsweise das Ausgangssignal nach
100        --                          der ersten Synchronisationsstufe.
101        --                          Gibt es mehrere Synchronisationsstufen,
102        --                          so setzt sich mit jeder Stufe die Wahr-
103        --                          scheinlichkeit der Metastabilitaet herab.
104        --                          Um dies zu kennzeichnen kann man an den
105        --                          Begriff Metastable eine Zahl fuer die
106        --                          Registerstufe anhaengen.
107        -- State:                   Statusregister einer FSM.
108        -- NextState:               Eingang eines Statusregisters (einer FSM).
109        --                          Bei einer FSMD kann es sich auch um einen
110        --                          Zaehler handeln, z.B. NextCtr.
111        -- Waiting, HuntingStopBit: Die Zustandsnamen reflektieren Zustaende,
112        --                          Situationen oder (derzeit laufende)
113        --                          Taetigkeiten, nicht aber Befehle oder
114        --                          dergleichen. Also etwa SendingData,
115        --                          statt SendData.
116        -- Hunting:                 Beispielsweise das Durchforsten eines
117        --                          Datenstroms auf ein betimmtes Datum hin.
118        -- WaitingOn:               Warten auf ein bestimmtes Ereignis.
119        -- Ready:                   Einheit ist derzeit verfuegbar.
120        -- Busy:                    Einheit ist derzeit beschaeftigt.
121        -- Valid:                   Zeigt an, dass ein anderes Signal
122        --                          (meist Datenbus, Adressbus,. . . )
123        --                          gueltig ist.
124        -- Frq:                     Frequency, meist als Namensteil eines
125        --                          generics, z.B. gClkFrq := 48E6.
126        -- DividingClk, DoingThis:  Typische labels fuer einen process.
127        --                          Diese Namen druecken Taetigkeiten
128        --                          unmittelbar aus.