[[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
Next revision Both sides next revision
dtpr_versuch_5 [2014/05/01 11:38]
beckmanf [Messung der Verzögerungszeit der Schaltung] - interner 50MHz
dtpr_versuch_5 [2015/05/06 16:44]
markusb [Analyse der Additionsschaltung]
Line 27: Line 27:
 ==== Analyse der Additionsschaltung ==== ==== Analyse der Additionsschaltung ====
  
-Jetzt geht es um die Analyse wie die Additonsschaltung intern auf dem FPGA mit den Logikelementen umgesetzt wird. Im [[https://www2.hs-augsburg.de/​~beckmanf/​restricted/​DE1_V.1.0.1_CDROM/​Datasheets/​Cyclone_II/​cyc2_cii5v1_01.pdf|Cyclone II Datenblatt]] ist auf Figure 2-3 die Konfiguration des Logikelementes im "​Normal Mode" und in Figure 2-4 im "​Arithmetic Mode" dargestellt. Der Eingang "​cin"​ des Logikelementes ist immer mit dem "​cout"​ Ausgang des direkt benachbarten Logikelementes verbunden. Im "​Arithmetic Mode" ist die Lookuptabelle in zwei 3->1 Lookuptabellen aufgeteilt, wobei der Ausgang der einen Lookuptabelle immer "​cout"​ ist und deshalb nur zum Nachbarlogikelement weitergegeben werden kann.+Jetzt geht es um die Analyse wie die Additonsschaltung intern auf dem FPGA mit den Logikelementen umgesetzt wird. Im [[https://www.hs-augsburg.de/​~beckmanf/​restricted/​DE1_V.1.0.1_CDROM/​Datasheets/​Cyclone_II/​cyc2_cii5v1_01.pdf|Cyclone II Datenblatt]] ist auf Figure 2-3 die Konfiguration des Logikelementes im "​Normal Mode" und in Figure 2-4 im "​Arithmetic Mode" dargestellt. Der Eingang "​cin"​ des Logikelementes ist immer mit dem "​cout"​ Ausgang des direkt benachbarten Logikelementes verbunden. Im "​Arithmetic Mode" ist die Lookuptabelle in zwei 3->1 Lookuptabellen aufgeteilt, wobei der Ausgang der einen Lookuptabelle immer "​cout"​ ist und deshalb nur zum Nachbarlogikelement weitergegeben werden kann.
  
   - Starten Sie quartus mit der GUI im Syntheseverzeichnis "​pnr/​de1_add4"​   - Starten Sie quartus mit der GUI im Syntheseverzeichnis "​pnr/​de1_add4"​
Line 90: Line 90:
   * 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 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://​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. ​
  
 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:
  • dtpr_versuch_5.txt
  • Last modified: 2021/03/20 08:21
  • by beckmanf