Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
fpga:vhdllibrary:start [2013-12-10 17:50] tinnerfpga:vhdllibrary:start [2013-12-13 10:02] (aktuell) zueger1
Zeile 1: Zeile 1:
-===== NTB VHDL Bibliothek===== +====== NTB VHDL Bibliothek ====== 
-Um die Wiederverwendung von VHDL Designs zu fördern wurde die NTB VHDL Bibliothek eingerichtet. +Um die Wiederverwendung von VHDL Komponenten zu fördern wurde die NTB VHDL Bibliothek eingerichtet. 
  
-==== SVN Repository ====+===== SVN Repository =====
  
 Die Bibliothek befindet sich im SVN unter:  Die Bibliothek befindet sich im SVN unter: 
Zeile 8: Zeile 8:
 https://svn.ntb.ch/projects/vhdl-library/ https://svn.ntb.ch/projects/vhdl-library/
  
-==== Guidelines ==== +===== Guidelines ===== 
-Für alle Komponenten in der Bibliothek müssen die unten aufgeführten Guidelines eingehalten werden. Es ist weiter darauf zu achten bei der Programierung darauf zu achten die Blöcke so zu schreiben, dass sie in andren Projekten wieder verwendet werden können.   +Für alle Komponenten in der Bibliothek müssen die unten aufgeführten Guidelines eingehalten werden. Es ist weiter darauf zu achten bei der Programierung die Blöcke so zu schreiben, dass sie in andren Projekten wieder verwendet werden können.  
-=== Ordnerstrucktur ===+==== Ordnerstrucktur ====
   * Der oberste Ordner jedes Blocks besitzt den gleichen Namen wie der Block.   * Der oberste Ordner jedes Blocks besitzt den gleichen Namen wie der Block.
   * Er wird im Ordner der, der Funktionalität des Blocks entspricht abgelegt.    * Er wird im Ordner der, der Funktionalität des Blocks entspricht abgelegt. 
-  * Der oberste Ordner enthält die Ordner: branch, tags, trunk+  * Der oberste Ordner enthält die Ordner: ''trunk'' und ''tags''optional noch ''branches''
   * Er enthält eine .info Datei mit dem selben Name wie der Block.    * Er enthält eine .info Datei mit dem selben Name wie der Block. 
   * Der Unterordner trunk enthält die Ordner: src,sim,doc und ein oder mehrere Projektordner.     * Der Unterordner trunk enthält die Ordner: src,sim,doc und ein oder mehrere Projektordner.  
Zeile 20: Zeile 20:
   * Im doc-Ordner können Dokumentationsdateien die zusätzlich zur .info Datei benötigt werden abgelegt werden.   * Im doc-Ordner können Dokumentationsdateien die zusätzlich zur .info Datei benötigt werden abgelegt werden.
   * Die Projektordner müssen folgendermassen bennant werden: Name der Entwicklungsumgebung unterstrich Name des FPGAs z.B. quartus_cyclone_4. Dabei ist darauf zu achten keine von der Entwicklungsumgebung generierten Dateien mit einzuchecken.     * Die Projektordner müssen folgendermassen bennant werden: Name der Entwicklungsumgebung unterstrich Name des FPGAs z.B. quartus_cyclone_4. Dabei ist darauf zu achten keine von der Entwicklungsumgebung generierten Dateien mit einzuchecken.  
 +  * Alle Ordner bzw. Dateinamen dürfen **keine** Leerzeichen und auch **keine** Umlaute (ä,ö,ü) enthalten.
  
-=== Coding Convention ===+=== Beispiel fqd === 
 + 
 +  * FOLDER fqd 
 +    * FOLDER branches 
 +    * FOLDER trunk 
 +      * FOLDER doc 
 +        * FILE overview.png 
 +      * FOLDER sim 
 +        * FILE fqd_rtl.tb.vhd 
 +      * FOLDER src 
 +        * FILE fqd.m.vhd 
 +      * FOLDER quartus_cyclone_4_gx 
 +      * FOLDER quartus_arria_5_gx 
 +      * FILE fqd.info 
 +    * FOLDER tags 
 +      * FOLDER 0.1 
 +      * FOLDER 0.1.1 
 +      * FOLDER 0.1.2 
 +      * FOLDER 0.2 
 +      * FOLDER 0.2.1 
 +      * ... 
 + 
 + 
 +==== Coding Convention ====
 Die einzuhaltenden Richtlinien für Code sind [[:software:programmierrichtlinien:vhdl| hier]] zusammengestellt. Dabei sollte mindestens die Stufe 3 verwendet werden.  Die einzuhaltenden Richtlinien für Code sind [[:software:programmierrichtlinien:vhdl| hier]] zusammengestellt. Dabei sollte mindestens die Stufe 3 verwendet werden. 
  
-=== Die .info Datei ===+==== Die .info Datei ====
 Für jeden Block muss eine .info Datei angelegt werden. Sie enthält Informationen über die jeweilige Komponente. Sie wird auch verwendet um den Wiki Eintag zu generieren. Es ist darauf zu achten, diese Datei stehts aktuell zu halten.  Für jeden Block muss eine .info Datei angelegt werden. Sie enthält Informationen über die jeweilige Komponente. Sie wird auch verwendet um den Wiki Eintag zu generieren. Es ist darauf zu achten, diese Datei stehts aktuell zu halten. 
 Für jede Komponente müssen in der .info Datei folgende Parameter angegeben werden:  Für jede Komponente müssen in der .info Datei folgende Parameter angegeben werden: 
-  * Ersteller +  * name (designator) 
-  * Version +  * description (string) 
-  * Beschreibung  +  * version (designator) 
-  * TBD+  * sources (name of the source files)(designator) 
 +  * testbench (name of the testbench files)(designator) 
 +  * usedSubBlocks (Name of the used subblock)(designator)  
 +  * license (string) 
 +  * state (UnderConstruction, Testing, Released)  
 +  * reviewedBy (string)
 Optional können noch weitere Informationen abgelegt werden:  Optional können noch weitere Informationen abgelegt werden: 
-  * Known Bugs +  * synthesisResults (string) 
-  * TBD+  * usage (string) 
 +  * knownBugs (string) 
 +  * modifiedBy (string) 
  
-Beispiele für den Syntax der Datei können direkt im Repository gefunden werden.  +Alle Paramter die mit designator gekenzeichnet sind dürfen nicht zwischen Anführungszeichen geschrieben werden. Ein Beispiel ist [[https://svn.ntb.ch/projects/vhdl-library/functionalBlocks/fqd/trunk/fqd.info|hier]] zu finden.  
  
-=== Simulation ===+==== Simulation ====
  
 Für jede Komponente ist mindestens eine Testbench, ein .do-Datei für das Laden der Simulation und ein .do-Datei für das Laden der Waveforms zu erstellen. Dabei muss in der Testbench mindestens die Komponente erstellt und allen Eingangssignalen ein Standardwert zugewiesen werden.     Für jede Komponente ist mindestens eine Testbench, ein .do-Datei für das Laden der Simulation und ein .do-Datei für das Laden der Waveforms zu erstellen. Dabei muss in der Testbench mindestens die Komponente erstellt und allen Eingangssignalen ein Standardwert zugewiesen werden.    
  
-=== Versionierung ===+==== Versionierung ===
 + 
 +Die Version besitzt folgendes Format: 0.0.0. Die erste Zahl gibt Änderungen an der API der Componente an. Die zweite Zahl wird hochgezählt wenn die Features der Componente ändern. Die letze Zahl wird hochgezählt wenn irgend welche Bugfixes gemacht wurden.     
 + 
 +==== Tags ==== 
 + 
 +Sobald eine Komponente einen gewissen Stand erreicht hat bzw. spätestens wenn sie in irgend einem Projekt ausgeliefert wird muss im SVN ein Tag erstellt werden. Davor wird eine neue Version vergeben. 
 + 
 +==== Header ==== 
 + 
 +<code> 
 +------------------------------------------------------------------------------- 
 +--     ____  _____          __    __    ________    _______ 
 +--    |    | \    \        |   \ |  |  |__    __|  |   __ 
 +--    |____|  \____\          \|  |      |      |__>  )  
 +--     ____   ____          |\ \  |      |       __ 
 +--    |    | |    |        |  | \        |      |__> 
 +--    |____| |____|        |__|  \__|     |__|     |_______/ 
 +-- 
 +--    NTB University of Applied Sciences in Technology 
 +-- 
 +--    Campus Buchs - Werdenbergstrasse 4 - 9471 Buchs - Switzerland 
 +--    Campus Waldau - Schoenauweg 4 - 9013 St. Gallen - Switzerland 
 +-- 
 +--    Web http://www.ntb.ch        Tel. +41 81 755 33 11 
 +-- 
 +------------------------------------------------------------------------------- 
 +-- Copyright 2013 NTB University of Applied Sciences in Technology 
 +------------------------------------------------------------------------------- 
 +-- Licensed under the Apache License, Version 2.0 (the "License"); 
 +-- you may not use this file except in compliance with the License. 
 +-- You may obtain a copy of the License at 
 +--  
 +-- http://www.apache.org/licenses/LICENSE-2.0 
 +--    
 +-- Unless required by applicable law or agreed to in writing, software 
 +-- distributed under the License is distributed on an "AS IS" BASIS, 
 +-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
 +-- See the License for the specific language governing permissions and 
 +-- limitations under the License. 
 +------------------------------------------------------------------------------- 
 +</code> 
  
-Die Version besitzt folgendes Format: 0.0.0 ...TBD +----
  
-=== Tags ===+[[overview]]
  
-Sobald eine Komponente einen gewissen Stand erreicht hat bzw. spätestens wenn sie in irgend einem Projekt ausgeliefert wird muss im SVN ein Tag erstellt werden. Davor wird eine neue Version vergeben.