Zadanie
Realizacja iteracyjnego algorytmu wyznaczania metodą Newtona przybliżonej wartości pierwiastka funkcji f(x) = a * x 2 – b
Współczynniki a i b dla grup podane są w tabeli
Nr. grupy | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |
a | 11 | 15 | 21 | 17 | 15 | 17 | 13 | 19 | 27 | 21 | 26 | 23 | 24 | 25 | 26 | 17 | 12 | 16 | 17 | 18 |
b | 76 | 89 | 91 | 97 | 77 | 99 | 96 | 89 | 87 | 88 | 86 | 77 | 87 | 89 | 99 | 87 | 66 | 78 | 89 | 76 |
Do realizacji można wykorzystać projekt dla narzędzia Quartus2 umieszczony w materiałach do laboratorium. W realizacji poszczególnych etapów pomocne może być użycie predefiniowanych ustawień projektu tzw. Revions:
- fnext
- lab5
- top_lab5
Etapy ćwiczenia
- Realizacja funkcji kombinacyjnej fnext (x) = x – f(x) / f'(x) (3 pkt.)
- podać wyrażenie opisujące funkcję
- funkcję podzielić na działania składowe z uwzględnieniem szerokości ścieżek na poszczególnych etapach przetwarzania danych przy założeniu, że x jest reprezentowane w kodzie NKB na 8 bitach
- zweryfikować poprawność realizacji poszczególnych kroków przetwarzania w arkuszu kalkulacyjnym, np. EtherCalc (pokazać na czym polega zbieżność funkcji do oczekiwanej wartości, w ilu krokach funkcja zbiega do miejsca zerowego jeżeli na wejściu w pierwszym kroku jest wartość 10)
UWAGA! W arkuszu pokazać także wyniki działań składowych
- opisać funkcję fnext (x) w języku VHDL, przeprowadzić kompilację i podać liczbę wymaganych zasobów (liczb komórek, bloków DSP, bitów pamięci)
UWAGA! Bloki realizujące operacje mnożenia i dzielenia zrealizować z wykorzystaniem narzędzia MegaWizard. Modyfikacje takich bloków także dokonywać z wykorzystaniem narzędzia MegaWizard. NIE edytować plików wygenerowanych przez to narzędzie.
- za pomocą symulacji pokazać i porównać otrzymane wyniki z oczekiwanymi z arkusza.
- Realizacja algorytmu zadanego siecią ASMD (0,5 pkt.)
- wykorzystać funkcję z poprzedniego etapu
- za pomocą symulacji zweryfikować poprawność realizacji funkcji w układzie sekwencyjnym
- Uruchomienie zadania na płytce laboratoryjnej (0,5 pkt.)
- pokazać poprawność działania dla różnych wartości wejściowych
- Realizacja algorytmu dla liczb stałoprzecinkowych (1 pkt.)
- zmodyfikować opis funkcji fnext (x) by operowała na wartości x reprezentowanej w formacie U2Fix5.3 albo w kodzie NKB na 10 bitach
- uruchomić na platformie DE-115