[[dtpr_versuch_5]]

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
dtpr_versuch_5 [2017/03/30 09:31]
beckmanf V5 - V3
dtpr_versuch_5 [2021/03/20 08:21] (current)
beckmanf [Additionsschaltung mit VHDL] removed sim
Line 14: Line 14:
 ==== Additionsschaltung mit VHDL ==== ==== Additionsschaltung mit VHDL ====
  
-In der Datei [[https://git.etech.fh-augsburg.de/​friedrich.beckmann/​digitaltechnikpraktikum/​blob/​master/​src/​add4_rtl.vhd|add4_rtl.vhd]] ist eine Schaltung zur Addition von zwei 4 Bit Binärzahlen mit einem 4 Bit Ergebnis in VHDL beschrieben. Die zugehörige Testbench ist [[https://​git.etech.fh-augsburg.de/​friedrich.beckmann/​digitaltechnikpraktikum/​blob/​master/​src/​t_add4.vhd|t_add4.vhd]].+In der Datei [[https://gitlab.elektrotechnik.hs-augsburg.de/​beckmanf/​digitaltechnikpraktikum/​blob/​master/​src/​add4_rtl.vhd|add4_rtl.vhd]] ist eine Schaltung zur Addition von zwei 4 Bit Binärzahlen mit einem 4 Bit Ergebnis in VHDL beschrieben. ​
  
-  - Wechseln ​Sie in das Simulationsverzeichnis "​sim/​add4" ​und simulieren Sie die Additionsschaltung+Sie verwenden diese Schaltung um auf dem FPGA zwei Zahlen zu addieren. Die beiden Summanden sollen an den Schaltern SW(3..0) ​und SW(9..6) als Binärzahl vorliegen. Der Zustand der Schalter soll an den roten LEDs angezeigt werden. Gleichzeitig soll ein Summand an HEX0 und der andere Summand an HEX1 als Ziffer dargestellt werden. Das Ergebnis der Addition soll an den grünen LEDs LEDG(3..0) binär und an HEX2 als Ziffer dargestellt werden. Diese Schaltung soll den Namen de1_add4 haben. Es ist auch schon eine unvollständige VHDL Datei [[https://​gitlab.elektrotechnik.hs-augsburg.de/​beckmanf/​digitaltechnikpraktikum/​blob/​master/​src/​de1_add4_rtl.vhd|de1_add4_rtl.vhd]] vorhanden, ​die Sie noch ergänzen müssen. Das Syntheseverzeichnis [[https://​gitlab.elektrotechnik.hs-augsburg.de/​beckmanf/​digitaltechnikpraktikum/​tree/​master/​pnr/​de1_add4|pnr/​de1_add4]] ist schon fertig vorbereitet.
  
-Sie verwenden diese Schaltung um auf dem FPGA zwei Zahlen zu addieren. Die beiden Summanden sollen an den Schaltern SW(3..0) und SW(9..6) als Binärzahl vorliegen. Der Zustand der Schalter soll an den roten LEDs angezeigt werden. Gleichzeitig soll ein Summand an HEX0 und der andere Summand an HEX1 als Ziffer dargestellt werden. Das Ergebnis der Addition soll an den grünen LEDs LEDG(3..0) binär und an HEX2 als Ziffer dargestellt werden. Diese Schaltung soll den Namen de1_add4 haben. In der Datei [[https://​git.etech.fh-augsburg.de/​friedrich.beckmann/​digitaltechnikpraktikum/​blob/​master/​src/​t_de1_add4.vhd|t_de1_add4]] gibt es schon eine fertige Testbench für die Schaltung. Es ist auch schon eine unvollständige VHDL Datei [[https://​git.etech.fh-augsburg.de/​friedrich.beckmann/​digitaltechnikpraktikum/​blob/​master/​src/​de1_add4_rtl.vhd|de1_add4_rtl.vhd]] vorhanden, die Sie noch ergänzen müssen. Das Simulationsverzeichnis [[https://​git.etech.fh-augsburg.de/​friedrich.beckmann/​digitaltechnikpraktikum/​tree/​master/​sim/​de1_add4|sim/​de1_add4]] und das Syntheseverzeichnis [[https://git.etech.fh-augsburg.de/​friedrich.beckmann/​digitaltechnikpraktikum/​tree/​master/​pnr/​de1_add4|pnr/de1_add4]] ist schon fertig vorbereitet.  +  ​Wechseln ​Sie in das Syntheseverzeichnis [[https://gitlab.elektrotechnik.hs-augsburg.de/​beckmanf/​digitaltechnikpraktikum/​tree/​master/​pnr/​de1_add4|pnr/​de1_add4]] und starten Sie Quartus mit der grafischen Oberfläche
- +  - Ergänzen Sie den VHDL Code in der Datei [[https://gitlab.elektrotechnik.hs-augsburg.de/​beckmanf/​digitaltechnikpraktikum/​blob/​master/​src/​de1_add4_rtl.vhd|de1_add4_rtl.vhd]]
-  - Wechseln Sie in das Simulationsverzeichnis [[https://​git.etech.fh-augsburg.de/​friedrich.beckmann/​digitaltechnikpraktikum/​tree/​master/​sim/​de1_add4|sim/de1_add4]] und starten Sie die Simulation.  +
-  - Ergänzen Sie den VHDL Code in der Datei [[https://git.etech.fh-augsburg.de/​friedrich.beckmann/​digitaltechnikpraktikum/​blob/​master/​src/​de1_add4_rtl.vhd|de1_add4_rtl.vhd]] ​und überprüfen Sie Ihren Entwurf im Simulator.  +
-  - Wenn im Simulator alles gut aussieht, wechseln Sie in das Syntheseverzeichnis [[https://​git.etech.fh-augsburg.de/​friedrich.beckmann/​digitaltechnikpraktikum/​tree/​master/​pnr/​de1_add4|pnr/​de1_add4]] und synthetisieren Sie die Schaltung+
   - Laden Sie das Design auf das FPGA und überprüfen Sie dort die Funktion   - Laden Sie das Design auf das FPGA und überprüfen Sie dort die Funktion
 +
  
 ==== Analyse der Additionsschaltung ==== ==== Analyse der Additionsschaltung ====
Line 90: Line 88:
   * Verwenden Sie die HEX Anzeigen für die Darstellung von internen Werten nach Belieben. ​   * Verwenden Sie die HEX Anzeigen für die Darstellung von internen Werten nach Belieben. ​
  
-Wenn Sie die Schaltung auf Papier skizziert haben, dann können Sie sich an die Umsetzung in VHDL machen. Für die Abstimmungsschaltung gibt es eine Testbench [[https://git.etech.fh-augsburg.de/​friedrich.beckmann/​digitaltechnikpraktikum/​blob/​master/​src/​t_de1_majority.vhd|t_de1_majority.vhd]] und eine angefangene Datei [[https://git.etech.fh-augsburg.de/​friedrich.beckmann/​digitaltechnikpraktikum/​blob/​master/​src/​de1_majority_rtl.vhd|de1_majority.vhd]] für das Design. Das Simulationsverzeichnis [[https://git.etech.fh-augsburg.de/​friedrich.beckmann/​digitaltechnikpraktikum/​tree/​master/​sim/​de1_majority|sim/​de1_majority]] und das Syntheseverzeichnis [[https://git.etech.fh-augsburg.de/​friedrich.beckmann/​digitaltechnikpraktikum/​tree/​master/​pnr/​de1_majority|pnr/​de1_majority]] sind fertig. ​+Wenn Sie die Schaltung auf Papier skizziert haben, dann können Sie sich an die Umsetzung in VHDL machen. Für die Abstimmungsschaltung gibt es eine Testbench [[https://gitlab.elektrotechnik.hs-augsburg.de/​beckmanf/​digitaltechnikpraktikum/​blob/​master/​src/​t_de1_majority.vhd|t_de1_majority.vhd]] und eine angefangene Datei [[https://gitlab.elektrotechnik.hs-augsburg.de/​beckmanf/​digitaltechnikpraktikum/​blob/​master/​src/​de1_majority_rtl.vhd|de1_majority.vhd]] für das Design. Das Simulationsverzeichnis [[https://gitlab.elektrotechnik.hs-augsburg.de/​beckmanf/​digitaltechnikpraktikum/​tree/​master/​sim/​de1_majority|sim/​de1_majority]] und das Syntheseverzeichnis [[https://gitlab.elektrotechnik.hs-augsburg.de/​beckmanf/​digitaltechnikpraktikum/​tree/​master/​pnr/​de1_majority|pnr/​de1_majority]] sind fertig. ​
  
 Für die Umsetzung in VHDL ist es eventuell notwendig, dass Sie mit Signalvektoren unterschiedlicher Länge arbeiten müssen. Dafür gibt es hier noch einige Tips. Sie haben bereits auf Teile aus einem Vektor zugegriffen,​ z.B. mit SW(3 downto 0) um einen vier Bit langen Vektor zu erhalten. Der Eingang switches_i der cntones Schaltung hat eine Länge von vier Bit. Wenn Sie die Eingänge switches_i(1 downto 0) mit SW(5 downto 4) verbinden wollen und switches_i(3 downto 2) auf 0 setzen wollen geht das so: Für die Umsetzung in VHDL ist es eventuell notwendig, dass Sie mit Signalvektoren unterschiedlicher Länge arbeiten müssen. Dafür gibt es hier noch einige Tips. Sie haben bereits auf Teile aus einem Vektor zugegriffen,​ z.B. mit SW(3 downto 0) um einen vier Bit langen Vektor zu erhalten. Der Eingang switches_i der cntones Schaltung hat eine Länge von vier Bit. Wenn Sie die Eingänge switches_i(1 downto 0) mit SW(5 downto 4) verbinden wollen und switches_i(3 downto 2) auf 0 setzen wollen geht das so:
Line 132: Line 130:
   - Leiten Sie auf dem FPGA das 50 MHz Taktsignal, das am Eingang CLOCK_50 ankommt, zum Ausgang CLOCK_50_OUT.   - Leiten Sie auf dem FPGA das 50 MHz Taktsignal, das am Eingang CLOCK_50 ankommt, zum Ausgang CLOCK_50_OUT.
  
-Jetzt müssen Sie noch geeignete Pindefinitionen zum [[https://git.etech.fh-augsburg.de/​friedrich.beckmann/​digitaltechnikpraktikum/​blob/​master/​pnr/​de1_majority/​de1_majority_pins.tcl|Pindefinitionsfile]] hinzufügen um  ​+Jetzt müssen Sie noch geeignete Pindefinitionen zum [[https://gitlab.elektrotechnik.hs-augsburg.de/​beckmanf/​digitaltechnikpraktikum/​blob/​master/​pnr/​de1_majority/​de1_majority_pins.tcl|Pindefinitionsfile]] hinzufügen um  ​
  
   * CLOCK_50 mit dem 50 MHz Oszillator   * CLOCK_50 mit dem 50 MHz Oszillator
  • dtpr_versuch_5.1490859110.txt.gz
  • Last modified: 2017/03/30 09:31
  • by beckmanf