You are here

VHDL - Styleguide

-- Literatur: HSSE VHDL Style EDS2 von Markus Pfaff (FH-Hagenberg)
 
-- Dateinamen
    -- entity                                ... <e.id>-e.vhd
    -- architecture                          ... <e.id>-<a.id>-a.vhd
    -- entity & architecture                 ... <e.id>-<a.id>-ea.vhd
    -- configuration                         ... <e.id>-<a.id>-<c.id>-c.vhd
    -- entity & architecture & configuration ... <e.id>-<a.id>-<c.id>-eac.vhd
    -- package header                        ... <package.id>-h.vhd
    -- package body                          ... <package.id>-b.vhd
    -- package header & body                 ... <package.id>-p.vhd
 
 
-- Header
    -----------------------------------------------------------------------
    -- Title :   xxx
    -- Project : xxx
    -----------------------------------------------------------------------
    -- Abstract:
    -- xxx
    -----------------------------------------------------------------------
    -- Company : xxx (FH-Hagenberg/HSSE, Hagenberg/Austria)
    -- Copyright (c)
    -----------------------------------------------------------------------
    -- Author:   xxx
    -- Revision: xxx
    -- Date:     xxx
    -----------------------------------------------------------------------
 
 
-- Kommentare
        -- moeglichst auf Englisch verfassen
        -- vor der Codezeile, da daneben meistens kein Platz
 
 
-- Namenskonvention
        -- Gemischte Groß-/Kleinschreibung:
        --      StrobeBaudRate, SystemClk, AsyncGlobalReset
        -- oder
        -- Kleinschreibung mit underscores:
        --      strobe_baud_rate, system_clk, async_global_reset
 
        -- input port           i       iClk            clk_i
        -- output port          o       oReqDataPar     req_data_par_o
        -- bidirectional port   b       bParData        par_data_b
        -- signal               keines  BaudRateCtr     baud_rate_ctr
        -- constant             c       cActivated      activated_c
        -- generic              g       gBaudRate       baud_rate_g
        -- variable             v       vFraction       fraction_v
        -- type                 a, t    aSignedByte     SignedByte_t
        -- file                 File    BmpDryFile      BmpDryFile
        -- Negative Logik       n       nAckData        ack_data_n
 
 
-- gaengige Namen
        -- Reset, Rst:              Asynchrones Ruecksetzsignal. Findet
        --                          sich nach der Synthese an FlipFlop-Reset-
        --                          Eingaengen wieder.
        -- Clk:                     Ein Taktsignal. Nach der Synthese wird
        --                          es sich am Takteingang von FlipFlops
        --                          wiederfinden.
        -- Strobe:                  Zeichen fuer eine zyklische Aktivitaet.
        --                          Ueber die Laenge einer Taktperiode aktiv,
        --                          sonst inaktiv. Keinesfalls zu verwechseln
        --                          mit einem Taktsignal!
        -- Sel:                     Funktionsauswahl an einer kombinatorischen
        --                          Einheit, wie einem Multiplexer oder einer
        --                          ALU. (Das Wort Select ist ein reserved
        --                          word in VHDL und kann daher nicht benutzt
        --                          werden.)
        -- Selcd:                   Abkuerzung fuer Selected. Verwendung
        --                          beispielsweise in Konstanten die eine
        --                          bestimmte Mux-Stellung einstellen:
        --                          cStaD0Selcd.
        -- Enable, En:              Freigabesignal.
        -- Request, Req:            Anfrage fuer Daten. Eine Einheit A zeigt
        --                          der Einheit B, dass Daten erwuenscht sind.
        -- Acknowledge, Ack:        Bestaetigung, dass ein request verstanden
        --                          wurde und dass die Antwort bereitliegt.
        -- Toggle, Tgl:             Aktivitaet auf diesem Signal wird durch
        --                          einen Pegelwechsel angezeigt.
        -- Asynchronous, Async:     Dieses Signal ist nicht synchron zum Takt
        --                          dieser unit. Es ist also nicht ein-
        --                          syncronisiert. Taktsynchrone Signale
        --                          werden nicht gesondert gekennzeichnet.
        -- Counter, Ctr:            Zaehlerstand.
        -- NrOf, Nr:                Anzahl.
        -- Delayed1, Del1:          Delayed um einen (zwei, drei,. . . )
        --                          Taktzyklen.
        -- ReadWrite, Rw:           Anwahl von Lese- oder Schreibbetrieb.
        -- Default, Dft:            Default-Wert, beispielsweise zur Belegung
        --                          von generics falls von aussen kein Wert
        --                          gewaehlt wird.
        -- Mux:                     Ausgangssignal eines Multiplexers,
        --                          beispielsweise in einem Datenpfad.
        -- Synchronized, Syncd:     Einsynchronisierte Version eines
        --                          asynchronen Signals.
        -- Metastable:              Moeglicherweise metastabiles Signal,
        --                          beispielsweise das Ausgangssignal nach
        --                          der ersten Synchronisationsstufe.
        --                          Gibt es mehrere Synchronisationsstufen,
        --                          so setzt sich mit jeder Stufe die Wahr-
        --                          scheinlichkeit der Metastabilitaet herab.
        --                          Um dies zu kennzeichnen kann man an den
        --                          Begriff Metastable eine Zahl fuer die
        --                          Registerstufe anhaengen.
        -- State:                   Statusregister einer FSM.
        -- NextState:               Eingang eines Statusregisters (einer FSM).
        --                          Bei einer FSMD kann es sich auch um einen
        --                          Zaehler handeln, z.B. NextCtr.
        -- Waiting, HuntingStopBit: Die Zustandsnamen reflektieren Zustaende,
        --                          Situationen oder (derzeit laufende)
        --                          Taetigkeiten, nicht aber Befehle oder
        --                          dergleichen. Also etwa SendingData,
        --                          statt SendData.
        -- Hunting:                 Beispielsweise das Durchforsten eines
        --                          Datenstroms auf ein betimmtes Datum hin.
        -- WaitingOn:               Warten auf ein bestimmtes Ereignis.
        -- Ready:                   Einheit ist derzeit verfuegbar.
        -- Busy:                    Einheit ist derzeit beschaeftigt.
        -- Valid:                   Zeigt an, dass ein anderes Signal
        --                          (meist Datenbus, Adressbus,. . . )
        --                          gueltig ist.
        -- Frq:                     Frequency, meist als Namensteil eines
        --                          generics, z.B. gClkFrq := 48E6.
        -- DividingClk, DoingThis:  Typische labels fuer einen process.
        --                          Diese Namen druecken Taetigkeiten
        --                          unmittelbar aus.