W tym przykładzie projektu pokazano, jak przeładować współczynniki z pliku przy użyciu funkcji MegaCore kompilatora IP skończonej reakcji impulsowej (FIR). Kompilator FIR zapewnia elastyczność umożliwiającą zmianę współczynników w czasie wykonywania. Podczas gdy kompilator FIR przetwarza dane z jednym zestawem współczynników, możesz przeładować inny zestaw bez wstrzymania przetwarzania rdzenia.
Aby zoptymalizować wydajność układów krzemowych, współczynniki nie są przechowywane w ich naturalnej kolejności. W tym przykładzie wyjaśniono kroki dotyczące reorderowania współczynników przy użyciu wstępnie skompilowanego pliku wykonywalnego coef_seq.exe. Filtr wykorzystuje cztery zestawy współczynników: filtry low pass, high pass, band pass i band reject. Pierwsze dwa są parametryzowane w narzędziu IP Toolbench; Te dwa ostatnie muszą zostać przeładowane w czasie pracy i wymagają wcześniejszej kolejności. Pod warunkiem, testbench pokazuje, jak skonfigurować sterowniki do przeładowania współczynników, aby spełnić wymagania dotyczące timingów.
Pobierz pliki użyte w tym przykładzie:
- Pobierz przykładowy plik projektowy współczynnik FIR (wersja 91)
- Pobierz plik README współczynnik FIR (wersja 91)
Korzystanie z tego projektu podlega warunkom umowy licencyjnej Intel® Design Example Agreementi podlega jej postanowień.
Pliki w pliku zip do pobrania obejmują:
- fir91.v — plik podsumowania kompilatora FIR
- coef_reload_tb.v — plik testbench
- coef_reload_msim.tcl — skrypt Tcl do uruchamiania symulacji funkcjonalnej za pomocą narzędzia ModelSim*
- coef_seq.exe — plik wykonywalny dla systemu Windows, który odmienia współczynniki.
Tabela 1. Lista portów kompilatora FIR
Nazwa portu |
Typu |
Opis |
---|---|---|
Clk |
Wejście |
Sygnał zegara |
reset_n |
Wejście |
Synchronicznego aktywnego sygnału niskiego resetowania |
sink_data[15:0] |
Wejście |
Przykładowe dane wejściowe |
coef_set |
Wejście |
Wybierz który zestaw współczynnika użyty do obliczeń |
sink_valid |
Wejście |
Potwierdzone, gdy dane wejściowe są ważne |
source_ready |
Wejście |
Zapewnienie przez moduł podrzędny, jeśli jest w stanie zaakceptować dane |
sink_error[1:0] |
Wejście |
Sygnał błędu wskazujący na naruszenia protokołuAvalon ®-ST po stronie radiatora |
coef_set_in |
Wejście |
Wybiera współczynnik, który ma zostać przeładowany |
coef_we |
Wejście |
Aktywny sygnał o wysokiej mocy zapisu |
coef_in[18:0] |
Wejście |
Wartość współczynnika wejściowego podczas przeładowania współczynnika |
source_data[37:0] |
Wyjście |
Filtruj wyjścia |
sink_ready |
Wyjście |
Zapewnienie filtra FIR, kiedy jest w stanie zaakceptować dane |
source_valid |
Wyjście |
Zapewnienie filtra FIR, gdy istnieją ważne dane do wyjścia |
source_error[1:0] |
Wyjście |
Sygnał błędu wskazujący na naruszenia protokołuAvalon ®-ST po stronie źródłowej |
Tabela 2. Parametry kompilatora FIR
Parametry FIR |
Wartości |
---|---|
Szybkość filtra |
Pojedynczy |
Liczba kanałów wejściowych |
1 |
Dane wejściowe Bitwidth |
16 |
Wyjście z bitwidth |
38 (pełna rozdzielczość) |
Współczynnik – bitwidth |
16 |
Liczba zestawów współczynników |
2 |
Liczba współczynników w każdym zestawie |
37 |
Rodzina urządzeń |
Stratix® IV |
Struktury |
DA: w pełni równoległy filtr |
Poziom potoku |
1 |
Pamięć masowa danych |
Komórki logiczne |
Współczynnik pamięci masowej |
M512 |
Pudełko reloadu współczynnika |
Sprawdzane |
Użyj pojedynczego pudełka zegara |
Sprawdzane |