Day by Day
(EN google-translate)
(PL google-translate)
Bitte packen Sie das entliehene Board nach der Arbeit damit immer in die antistatische Tüte und sicher in die Box.
68_nexys -- Inhalte zum Kurs, siehe auch Moodle.
Verzeichnis der im Verlauf des Semesters behandelten Themen
Mittwoch 24.03.2021
|
https://reference.digilentinc.com/_media/reference/programmable-logic/nexys-video/nexys-video_rm.pdf
https://www.xilinx.com/support/documentation-navigation/design-hubs/dh0013-vivado-installation-and-licensing-hub.html
https://reference.digilentinc.com/learn/tutorials/start
Video: Mit Vivado ein VHDL-Projekt erstellen und auf den nexys video übertragen
vivado_vhdl_proj_nexys_teil_1.mp4vivado_vhdl_proj_nexys_teil_2.mp4
Download des Projekts
nexybitvergleich2.zip nexybitvergleich2.zip -- mit VIVADO 2020.2 erstellt.Quelltexte dazu
library IEEE; use IEEE.STD_LOGIC_1164.ALL; entity mustervergleich is Port ( A1 : in STD_LOGIC; A0 : in STD_LOGIC; B1 : in STD_LOGIC; B0 : in STD_LOGIC; C : out STD_LOGIC); end mustervergleich; architecture Behavioral of mustervergleich is begin C <= (A1 xnor B1) and (A0 xnor B0); end Behavioral;
Code 0-1: VHDL-Datei
## FPGA Configuration I/O Options set_property CONFIG_VOLTAGE 3.3 [current_design] set_property CFGBVS VCCO [current_design] ## Slide Switches set_property -dict {PACKAGE_PIN E22 IOSTANDARD LVCMOS12} [get_ports {A1}]; set_property -dict {PACKAGE_PIN F21 IOSTANDARD LVCMOS12} [get_ports {A0}]; set_property -dict {PACKAGE_PIN G21 IOSTANDARD LVCMOS12} [get_ports {B1}]; set_property -dict {PACKAGE_PIN G22 IOSTANDARD LVCMOS12} [get_ports {B0}]; ## LEDs set_property -dict {PACKAGE_PIN T14 IOSTANDARD LVCMOS25} [get_ports {C}]
Code 0-2: Constraints-Datei
Mittwoch 31.03.2021
Themen
|
zugehörige interne Links:
68_nexys/50_Literatur05_Nexys_Video/01_Projekte
68_nexys/05_Nexys_Video/02_PMOD
69_FPGA/13_LUT -- bitte abgleichen mit ug953-vivado-7series-libraries.pdf
68_nexys/01_Installation
Mittwoch 07.04.2021
Themen
|
1. Textbesprechungen
Begriff / Abkürzung | Bedeutung | Erläuterung |
---|---|---|
MAC | Multiply-Accumulate | x = x + a*b , Varianten sind als parallel arbeitende Komponente in Digital System Prozessoren verbaut und können mit FPGAs nachgebildet werden. |
Tabelle 0-1: ASIC § Application-Specific Integrated Circuit § extra für spezielle Anwendungen entwickelte Chips, die dann preisgünstig sind, wenn sie genau so in sehr großer Stückzahl gebraucht werden
Was haben Sie aus den Texten entnehmen können, das wichtig sein könnte für das hier verfolgte Ziel der Implementierung von KI-Methoden auf einem FPGA? Lassen Sie uns das zusammentragen.
|
2. Wiederholungen zur Syntax von VHDL
69_FPGA/11_VHDL -- einige Angaben zur Syntax von VHDL.Verwendung von Modulen und Libraries:
... -- Vier D-FlipFlops instanziieren -- FLIP3: entity FDCE_instanz FLIP3: FDCE port map(D => sig_d(3), C => clock1Hz, CLR => not all_reset, Q => sig_q(3), CE => eins); FLIP2: FDCE port map(D => sig_d(2), C => clock1Hz, CLR => not all_reset, Q => sig_q(2), CE => eins); FLIP1: FDCE port map(D => sig_d(1), C => clock1Hz, CLR => not all_reset, Q => sig_q(1), CE => eins); FLIP0: FDCE port map(D => sig_d(0), C => clock1Hz, CLR => not all_reset, Q => sig_q(0), CE => eins); ...
Code 0-3: Erstes Flipflop referenziert auf ein selbst geschriebenes Modul, die anderen sind Standardelemente der UNISIM-Library.
69_FPGA/13_LUT -- Wiederholung zu LUT4 zur Umsetzung des Bitvergleichers.
3. Übertragung diskretisierte sigmoide Funktion als Lookup-Table auf einen FPGA
68_nexys/06_Sfunction_diskret -- Musterlösung liefert Lookup-Table als Java-Methode (Quelltext).
Übung
Nehmen Sie obige Musterlösung als Ausgangspunkt und schreiben einen VHDL-Quelltextgenerator, der die diskretisierte sigmoide Funktion als Lookup-Table implementiert.
Über die 8 Schalter des nexys video sollen die Zahlen +/-127 eingegeben werden können. Sie dienen als Input für den Lookup-Table. Die 8 LEDs sollen den Ausgabewert des Lookup-Tables anzeigen.
Ergänzen Sie ein Java-Programm, das alle möglichen Input-Output-Paare so darstellt, wie sie auf dem nexys video eingestellt, bzw. angezeigt werden, damit das Ergebnis auf dem nexys leichter auf Korrektheit überprüft werden kann.
Für die Realisierung eines Lookup-Tables mit VHDL unter Verwendung von Integer-Zahlen, orientieren Sie sich bitte wegen der VHDL-Syntax an folgendem Beispiel:
69_FPGA/99_day_by_day_SoSe2018 -- siehe ab "Machbarkeitsstudie: Neuronales Netz mit fünf Neuronen auf Integer-Basis in FPGA: "
TIP: Arbeiten Sie vielleicht nicht gleich an dem "grossen" Projekt, sondern zergliedern Sie es in aufeinander aufbauende Teilaufgaben und machen mehrere VHDL-Projekte draus: 1) Bitmuster der Schalter 1:1 auf LEDs übertragen. 2) Zwischenumwandlung nach Integer. 3) Vorzeichen +/127 am Eingang. 4) schließlich mit zwischen geschaltetem Lookup-Table.
Mittwoch 14.04.2021
Themen:
|
Textbesprechung
|
Mittwoch 21.04.2021
Themen:
|
Textbesprechung
|
Teillösung Diskretisiertes NN auf FPGA
73_COACH3/09_Algorithmen/03_Evoopt -- vorweg: Wiederholung genetische Optimierungnnfpga001_FPGAlookupSigmoid.zip
nnfpga002_JAVAlookupSigmoid.zip
nnfpga003_JAVAnetz.zip
nnfpga004_GenOpt.zip
Erklärvideo zu obigen Projekten -- 03_SoSe2021/02_SLE/01_day_by_day/nnfuerfpga.mp4
Übung
Ergänzen Sie die obigen Java-Projekte so, dass bei Null Fehlern ein diskretes NN ausgegeben wird, das in VHDL formuliert ist.
Ergänzende Angaben
Anderer Versuch NN auf FPGA zu bringen: https://www.youtube.com/watch?v=YgA7LKUofyY&t=326shttps://www.youtube.com/watch?v=CoyhAqUS2f0 -- Video 2, erst hier wird das FPGA-System vorgestellt.
Wie macht man das, wenn man eine Entity in einem anderen VHDL-File definiert: library xil_defaultLib; use xil_defaultLib.NAME_DER_ENTITY; ODER: ev. geht auch work.NAME_EIGENE_ENTITY
Code 0-4: Ergänzende Angaben
Zwischenstand zur Verwendung der Beispiele von Digilent:
68_nexys/05_Nexys_Video/03_XADCMittwoch 28.04.2021
Themen:
|
Einführung in die Fuzzy-Logik
62_Regelungssysteme/18_Fuzzy67_Echtzeitsysteme/13_Fuzzy
67_Echtzeitsysteme/13_Fuzzy/03_Uebung9 -- Übung Fuzzy-System
Fuzzy-Regler
67_Echtzeitsysteme/13_Fuzzy/02_FuzzyRegler62_Regelungssysteme/18_Fuzzy/07_Haengependel/03_FuzzyRegler
Mittwoch 05.05.2021
Themen
|
Mittwoch 12.05.2021 -- Start der Projektarbeiten
Themen
|