FPGA Integer Arytmetyczne rdzenie IP
Podręcznik użytkownika rdzeni arytmetycznych IP Intel FPGA Integer
Zaktualizowano dla pakietu Intel® Quartus® Prime Design Suite: 20.3
Wersja online Prześlij opinię
UG-01063
ID: 683490 Wersja: 2020.10.05
Zawartość
Zawartość
1. Rdzenie arytmetyczne IP Intel FPGA Integer……………………………………………………………….. 5
2. LPM_COUNTER (Licznik) Rdzeń IP……………………………………………………………………….. 7 2.1. Cechy…………………………………………………………………………………………………7 2.2. Prototyp Verilog HDL……………………………………………………………………………….. 8 2.3. Deklaracja komponentu VHDL………………………………….8 2.4. Deklaracja VHDL LIBRARY_USE…………………………………………………………………… 9 2.5. Porty…………………………………………………………………………………………………..9 2.6. Parametry ……………………………………………………………… 10
3. LPM_DIVIDE (dzielnik) Intel FPGA IP Core……………………………….. 12 3.1. Cechy………………………………………………………………………………………………. 12 3.2. Prototyp Verilog HDL……………………………………………………………………………… 12 3.3. Deklaracja Komponentu VHDL…………………………………………………….. 13 3.4. Deklaracja VHDL LIBRARY_USE…………………………………………………………………. 13 3.5. Porty………………………………………………………………………………………………… 13 3.6. Parametry ……………………………………………………………… 14
4. LPM_MULT (Mnożnik) Rdzeń IP…………………………………………………………………………. 16 4.1. Cechy………………………………………………………………………………………………. 16 4.2. Prototyp Verilog HDL……………………………………………………………………………… 17 4.3. Deklaracja Komponentu VHDL…………………………………………………….. 17 4.4. Deklaracja VHDL LIBRARY_USE…………………………………………………………………. 17 4.5. Sygnały………………………………………………………………………………………………… 18 4.6. Parametry urządzeń Stratix V, Arria V, Cyclone V i Intel Cyclone 10 LP…………… 18 4.6.1. Zakładka Ogólne...........................................................................................................................18 4.6.2. Zakładka Ogólne 2…………………………………………………………………………… 19 4.6.3. Zakładka Pipelining ……………………………………………………………………………… 19 4.7. Parametry dla urządzeń Intel Stratix 10, Intel Arria 10 i Intel Cyclone 10 GX……….. 20 4.7.1. Zakładka Ogólne……………………………………………………20 4.7.2. Zakładka Ogólne 2…………………………………………………………………………… 20 4.7.3. Rurociąg …………………………………………………………………………………21
5. LPM_ADD_SUB (Dodawanie/Odejmowanie)…………………………………………………………………… 22 5.1. Cechy………………………………………………………………………………………………. 22 5.2. Prototyp Verilog HDL……………………………………………………………………………… 23 5.3. Deklaracja komponentu VHDL……………………………………………………… 23 5.4. Deklaracja VHDL LIBRARY_USE…………………………………………………………………. 23 5.5. Porty………………………………………………………………………………………………… 23 5.6. Parametry ……………………………………………………………… 24
6. LPM_COMPARE (Komparator)…………………………………………………………………………… 26 6.1. Cechy………………………………………………………………………………………………. 26 6.2. Prototyp Verilog HDL……………………………………………………………………………… 27 6.3. Deklaracja Komponentu VHDL……………………………………………………… 27 6.4. Deklaracja VHDL LIBRARY_USE…………………………………………………………………. 27 6.5. Porty………………………………………………………………………………………………… 27 6.6. Parametry ……………………………………………………………… 28
Podręcznik użytkownika rdzeni arytmetycznych IP Intel FPGA Integer 2
Wyślij opinię
Zawartość
7. ALTECC (kod korekcji błędów: koder/dekoder) rdzeń IP........................................... 30
7.1. Funkcje enkodera ALTECC…………………………………………………………………………..31 7.2. Prototyp Verilog HDL (ALTECC_ENCODER)……………………………………………………. 32 7.3. Prototyp Verilog HDL (ALTECC_DECODER)……………………………………………………. 32 7.4. Deklaracja komponentu VHDL (ALTECC_ENCODER)………………33 7.5. Deklaracja komponentu VHDL (ALTECC_DECODER)………………33 7.6. Deklaracja VHDL LIBRARY_USE…………………………………………………………………. 33 7.7. Porty enkodera…………………………………………………………… 33 7.8. Porty dekodera………………………………………………………………34 7.9. Parametry enkodera……………………………… 34 7.10. Parametry dekodera …………………………………………………………………………… 35
8. Intel FPGA Multiply Adder Rdzeń IP……………………………………………………………………. 36
8.1. Cechy………………………………………………………………………………………………. 37 8.1.1. Sumator wstępny…………………………….. 38 8.1.2. Rejestr opóźnienia skurczowego ………………………….. 40 8.1.3. Stała obciążenia wstępnego……………………… 43 8.1.4. Podwójny akumulator........................................................................................... 43
8.2. Prototyp Verilog HDL……………………………………………………………………………… 44 8.3. Deklaracja Komponentu VHDL………………………………………………………….. 44 8.4. Deklaracja VHDL LIBRARY_USE…………………………………………………………………. 44 8.5. Sygnały………………………………………………………………………………………………… 44 8.6. Parametry……………………………………… 47
8.6.1. Zakładka Ogólne………………………………………………………47 8.6.2. Zakładka Tryby dodatkowe ………………………………………………………….. 47 8.6.3. Zakładka Mnożniki……………………………………………….. 49 8.6.4. Zakładka Prereader ………………………………………………………………………………. 51 8.6.5. Zakładka Akumulator…………………………………………….. 53 8.6.6. Zakładka Skurczowe/Chainout……………………………………………………………………. 55 8.6.7. Zakładka Potokowanie ……………………………………………………………………………… 56
9. ALTMEMMULT (mnożnik stałych współczynników oparty na pamięci) IP Core…………………… 57
9.1. Cechy………………………………………………………………………………………………. 57 9.2. Prototyp Verilog HDL……………………………………………………………………………… 58 9.3. Deklaracja Komponentu VHDL………………………………………………………….. 58 9.4. Porty………………………………………………………………………………………………… 59 9.5. Parametry……………………………………… 59
10. ALTMULT_ACCUM (Multiply-Accumulate) Rdzeń IP……………………………………………… 61
10.1. Cechy…………………………………………………………………………………………….. 62 10.2. Prototyp Verilog HDL……………………………………………………………………………..62 10.3. Deklaracja komponentu VHDL……………………………………………………… 63 10.4. Deklaracja VHDL LIBRARY_USE…………………………………………………………………63 10.5. Porty …………………………………………………………………………………………………. 63 10.6. Parametry ………………………………………………………………………………………. 64
11. Rdzeń IP ALTMULT_ADD (Multiply-Adder)………………………………..69
11.1. Cechy………………………………………………………………….. 71 11.2. Prototyp Verilog HDL……………………………………………………………………………..72 11.3. Deklaracja komponentu VHDL……………………………………………… 72 11.4. Deklaracja VHDL LIBRARY_USE…………………………………………………………………72
Wyślij opinię
Podręcznik użytkownika rdzeni arytmetycznych IP Intel FPGA Integer 3
Zawartość
11.5. Porty …………………………………………………………………………………………………. 72 11.6. Parametry ………………………………………………………………………………………. 73
12. ALTMULT_COMPLEX (Mnożnik Złożony) Rdzeń IP………………… 86 12.1. Mnożenie zespolone ……………………………………………………………………………. 86 12.2. Reprezentacja kanoniczna………………………………………………………………………… 87 12.3. Reprezentacja konwencjonalna ………………………………………………………………………………………. 87 12.4. Cechy…………………………………………………………………….. 88 12.5. Prototyp Verilog HDL……………………………………………………………………………..88 12.6. Deklaracja komponentu VHDL........................................................................... 89 12.7. Deklaracja VHDL LIBRARY_USE…………………………………………………………………89 12.8. Sygnały………………………………………………………………………………………………. 89 12.9. Parametry ………………………………………………………………………………………. 90
13. Rdzeń IP ALTSQRT (liczba całkowita pierwiastek kwadratowy)……………………………………………………………… 92 13.1. Cechy……………………………………………………………………………………………….. 92 13.2. Prototyp Verilog HDL………………………………………………………………………………..92 13.3. Deklaracja Komponentu VHDL………………………………………………………………… 93 13.4. Deklaracja VHDL LIBRARY_USE…………………………………………………………………93 13.5. Porty …………………………………………………………………………………………………. 93 13.6. Parametry ………………………………………………………………………………………. 94
14. PARALLEL_ADD (dodatek równoległy) Rdzeń IP…………………………….. 95 14.1. Cecha……………………………………………………………………………………………….95 14.2. Prototyp Verilog HDL……………………………………………………………………………..95 14.3. Deklaracja Komponentu VHDL………………………………………………………………… 96 14.4. Deklaracja VHDL LIBRARY_USE…………………………………………………………………96 14.5. Porty …………………………………………………………………………………………………. 96 14.6. Parametry ………………………………………………………………………………………. 97
15. Podręcznik użytkownika rdzeni arytmetycznych IP dla liczb całkowitych Archiwa dokumentów........................... 98
16. Historia zmian dokumentu dla Intel FPGA Integer Arithmetic IP Cores Podręcznik użytkownika…. 99
Podręcznik użytkownika rdzeni arytmetycznych IP Intel FPGA Integer 4
Wyślij opinię
683490 | 2020.10.05 Prześlij opinię
1. Rdzenie arytmetyczne IP Intel FPGA Integer
Możesz użyć rdzeni Intel® FPGA integer IP do wykonywania operacji matematycznych w swoim projekcie.
Funkcje te zapewniają wydajniejszą syntezę logiki i implementację urządzeń niż kodowanie własnych funkcji. Możesz dostosować rdzenie IP do swoich wymagań projektowych.
Rdzenie IP do arytmetyki liczb całkowitych firmy Intel są podzielone na następujące dwie kategorie: · Rdzenie IP biblioteki modułów parametryzowanych (LPM) · Rdzenie IP specyficzne dla firmy Intel (ALT)
W poniższej tabeli wymieniono rdzenie IP arytmetyczne liczb całkowitych.
Tabela 1.
Lista rdzeni IP
Rdzenie IP
Rdzenie LPM IP
LPM_LICZNIK
LPM_DIVIDE
LPM_MULT
LPM_ADD_SUB
LPM_COMPARE
Rdzenie IP specyficzne dla firmy Intel (ALT) ALTECC
Funkcja ponadview Mnożnik dzielnika licznika
Komparator sumujący lub odejmujący
Koder/dekoder ECC
Obsługiwane urządzenie
Arria® II GX, Arria II GZ, Arria V, Intel Arria 10, Cyclone® IV E, Cyclone IV GX, Cyclone V, Intel Cyclone 10 LP,
Intel Cyclone 10 GX, MAX® II, MAX V, MAX 10, Stratix® IV, Stratix V
Arria II GX, Arria II GZ, Arria V, Intel Arria 10, Cyclone IV E, Cyclone IV GX,
Cyclone V, Intel Cyclone 10 LP, Intel Cyclone 10 GX, MAX II, MAX V, MAX 10, Stratix IV, Stratix V, Intel Stratix 10
Arria II GX, Arria II GZ, Arria V, Intel Arria 10, Cyclone IV E, Cyclone IV GX,
Cyclone V, Intel Cyclone 10 LP, Intel Cyclone 10 GX, MAX II, MAX V, MAX 10, Stratix IV, Stratix V, Intel Stratix 10
Arria II GX, Arria II GZ, Arria V, Cyclone IV E, Cyclone IV GX, Cyclone V, Intel Cyclone 10 LP, MAX 10, MAX
II, MAX V, Stratix IV, Stratix V
Arria II GX, Arria II GZ, Arria V, Cyclone IV E, Cyclone IV GX, Cyclone V, Intel Cyclone 10 LP, MAX 10, MAX
II, MAX V, Stratix IV, Stratix V
Arria II GX, Arria II GZ, Arria V, Intel Arria 10, Cyclone IV E, Cyclone IV GX,
Cyclone V, Intel Cyclone 10 LP, Intel Cyclone 10 GX, MAX II, MAX V, MAX
10, Stratix IV, Stratix V ciąg dalszy…
Korporacja intelektualna. Wszelkie prawa zastrzeżone. Intel, logo Intel i inne znaki Intel są znakami towarowymi firmy Intel Corporation lub jej podmiotów zależnych. Firma Intel gwarantuje wydajność swoich produktów FPGA i półprzewodników zgodnie z aktualnymi specyfikacjami zgodnie ze standardową gwarancją firmy Intel, ale zastrzega sobie prawo do wprowadzania zmian w dowolnych produktach i usługach w dowolnym czasie bez powiadomienia. Firma Intel nie ponosi żadnej odpowiedzialności wynikającej z zastosowania lub wykorzystania jakichkolwiek informacji, produktów lub usług opisanych w niniejszym dokumencie, z wyjątkiem przypadków wyraźnie uzgodnionych na piśmie przez firmę Intel. Klienci firmy Intel powinni uzyskać najnowszą wersję specyfikacji urządzeń przed poleganiem na jakichkolwiek opublikowanych informacjach oraz przed złożeniem zamówienia na produkty lub usługi. *Inne nazwy i marki mogą być przedmiotem praw osób trzecich.
Zarejestrowany zgodnie z ISO 9001: 2015
1. Rdzenie arytmetyczne IP Intel FPGA Integer 683490 | 2020.10.05
Rdzenie IP Intel FPGA Multiply Adder lub ALTERA_MULT_ADD ALTMEMMULT
ALTMULT_ACCUM ALTMULT_ADD ALTMULT_COMPLEX
ALTSQRT
RÓWNOLEGŁE_ADD
Funkcja ponadview Mnożnik-dodatek
Mnożnik stałego współczynnika oparty na pamięci
Mnożnik-akumulator Mnożnik-dodatek
Złożony mnożnik
Liczba całkowita pierwiastek kwadratowy
Dodatek równoległy
Obsługiwane urządzenie
Arria V, Stratix V, Cyclone V, Intel Stratix 10, Intel Arria 10, Intel Cyclone
10 GX
Arria II GX, Arria II GZ, Arria V, Intel Arria 10 (Intel Quartus® Prime Standard Edition), Cyclone IV E, Cyclone IV GX, Cyclone V, Intel
Cyklon 10 LP, MAX II, MAX V, MAX 10, Stratix IV, Stratix V
Arria II GX, Arria II GZ, Cyclone IV E, Cyclone IV GX, Intel Cyclone 10 LP, MAX 10, MAX II, MAX V, Stratix IV
Arria II GX, Arria II GZ, Cyclone IV E, Cyclone IV GX, Intel Cyclone 10 LP, MAX 10, MAX II, MAX V, Stratix IV
Arria II GX, Arria II GZ, Intel Arria 10, Arria V, Arria V GZ, Cyclone IV E, Cyclone IV GX, Cyclone V, Intel
Cyclone 10 GX, Intel Cyclone 10 LP, MAX 10, Stratix V, Intel Stratix 10
Arria II GX, Arria II GZ, Arria V, Intel Arria 10, Cyclone IV E, Cyclone IV GX,
Cyclone V, Intel Cyclone 10 LP, Intel Cyclone 10 GX, MAX II, MAX V, MAX
10, Stratix IV, Stratix V
Arria II GX, Arria II GZ, Arria V, Intel Arria 10, Cyclone IV E, Cyclone IV GX,
Cyclone V, Intel Cyclone 10 LP, Intel Cyclone 10 GX, MAX II, MAX V, MAX
10, Stratix IV, Stratix V
Informacje powiązane
· Informacje o wersji układów FPGA i urządzeń programowalnych firmy Intel
· Wprowadzenie do rdzeni Intel FPGA IP Zawiera więcej informacji na temat rdzeni Intel FPGA IP.
· Podręcznik użytkownika rdzeni zmiennoprzecinkowych IP Zawiera więcej informacji na temat rdzeni zmiennoprzecinkowych IP firmy Intel FPGA.
· Wprowadzenie do rdzeni Intel FPGA IP Zawiera ogólne informacje o wszystkich rdzeniach Intel FPGA IP, w tym parametryzację, generowanie, aktualizowanie i symulację rdzeni IP.
· Tworzenie niezależnych od wersji skryptów symulacji IP i Qsys Twórz skrypty symulacji, które nie wymagają ręcznych aktualizacji oprogramowania ani wersji IP.
· Wytyczne dotyczące najlepszych praktyk zarządzania projektami dla efektywnego zarządzania i przenoszenia projektu i własności intelektualnej files.
· Podręcznik użytkownika rdzeni Integer Arithmetic IP Archiwa dokumentów na stronie 98 Zawiera listę podręczników użytkownika dla poprzednich wersji rdzeni Integer Arithmetic IP.
Podręcznik użytkownika rdzeni arytmetycznych IP Intel FPGA Integer 6
Wyślij opinię
683490 | 2020.10.05 Prześlij opinię
2. LPM_COUNTER (licznik) rdzeń IP
Rysunek 1.
Rdzeń IP LPM_COUNTER to licznik binarny, który tworzy liczniki w górę, liczniki w dół oraz liczniki w górę lub w dół z wyjściami o szerokości do 256 bitów.
Poniższy rysunek przedstawia porty rdzenia IP LPM_COUNTER.
LPM_COUNTER Porty
LPM_LICZNIK
ssclr sload sset data []
Q[]
Góra dół
rzut
aclr załaduj zasób
clk_en cnt_en cin
instalacja
2.1. Funkcje
Rdzeń IP LPM_COUNTER oferuje następujące funkcje: · Generuje liczniki w górę, w dół i w górę/w dół · Generuje następujące typy liczników:
— Zwykły binarny — licznik zwiększa się od zera lub zmniejsza od 255
— Moduł — licznik zwiększa lub zmniejsza wartość modułu określoną przez użytkownika i powtarza się
· Obsługuje opcjonalne synchroniczne porty wejściowe kasowania, ładowania i ustawiania · Obsługuje opcjonalne asynchroniczne porty wejściowe kasowania, ładowania i ustawiania · Obsługuje opcjonalne porty wejściowe umożliwiające zliczanie i włączanie zegara · Obsługuje opcjonalne porty przenoszenia i przenoszenia
Korporacja intelektualna. Wszelkie prawa zastrzeżone. Intel, logo Intel i inne znaki Intel są znakami towarowymi firmy Intel Corporation lub jej podmiotów zależnych. Firma Intel gwarantuje wydajność swoich produktów FPGA i półprzewodników zgodnie z aktualnymi specyfikacjami zgodnie ze standardową gwarancją firmy Intel, ale zastrzega sobie prawo do wprowadzania zmian w dowolnych produktach i usługach w dowolnym czasie bez powiadomienia. Firma Intel nie ponosi żadnej odpowiedzialności wynikającej z zastosowania lub wykorzystania jakichkolwiek informacji, produktów lub usług opisanych w niniejszym dokumencie, z wyjątkiem przypadków wyraźnie uzgodnionych na piśmie przez firmę Intel. Klienci firmy Intel powinni uzyskać najnowszą wersję specyfikacji urządzeń przed poleganiem na jakichkolwiek opublikowanych informacjach oraz przed złożeniem zamówienia na produkty lub usługi. *Inne nazwy i marki mogą być przedmiotem praw osób trzecich.
Zarejestrowany zgodnie z ISO 9001: 2015
2. LPM_COUNTER (licznik) rdzeń IP
683490 | 2020.10.05
2.2. Prototyp Verilog HDL
Poniższy prototyp Verilog HDL znajduje się w Verilog Design File (.v) lpm.v w katalog edasyntezy.
moduł lpm_counter (q, dane, zegar, cin, cout, clk_en, cnt_en, updown, aset, aclr, aload, sset, sclr, sload, eq ); parametr lpm_type = „lpm_counter”; parametr lpm_width = 1; parametr lpm_moduł = 0; parametr lpm_direction = „NIEUŻYWANY”; parametr lpm_avalue = „NIEUŻYWANY”; parametr lpm_svalue = „NIEUŻYWANY”; parametr lpm_pvalue = „NIEUŻYWANY”; parametr lpm_port_updown = „PORT_CONNECTIVITY”; parametr lpm_hint = „NIEUŻYWANY”; wyjście [lpm_width-1:0] q; wyjście; wyjście [15:0] równ.; wejście cin; wprowadź dane [lpm_width-1:0]; zegar wejściowy, clk_en, cnt_en, updown; wprowadź zasób, aclr, załaduj; wejście sset, sclr, sload; moduł końcowy
2.3. Deklaracja składnika VHDL
Deklaracja komponentu VHDL znajduje się w projekcie VHDL File (.vhd) LPM_PACK.vhd w formacie katalog bibliotekvhdllpm.
komponent LPM_COUNTER ogólny ( LPM_WIDTH : naturalny; LPM_MODULUS : naturalny := 0; LPM_DIRECTION : string := “UNUSED”; LPM_AVALUE : string := “UNUSED”; LPM_SVALUE : string := “UNUSED”; LPM_PORT_UPDOWN : string := “PORT_CONNECTIVITY” ; LPM_PVALUE : string := "NIEUŻYWANY"; LPM_TYPE : string := L_COUNTER; LPM_HINT : string := "UNUSED"); port (DANE: w std_logic_vector(LPM_WIDTH-1 do 0):= (INNE =>
„0”); ZEGAR: w std_logic; CLK_EN : w std_logic := '1'; CNT_EN : w std_logic := '1'; W GÓRĘ W DÓŁ : w std_logic := '1'; SLOAD : w std_logic := '0'; SSET: w std_logic:= '0'; SCLR: w std_logic:= '0'; ZAŁADUJ: w std_logic:= '0'; ASET: w std_logic:= '0'; ACLR: w std_logic:= '0'; CIN: w std_logic:= '1'; COUT: out std_logic:= '0'; P: out std_logic_vector(LPM_WIDTH-1 do 0); EQ: out std_logic_vector(15 downto 0));
element końcowy;
Podręcznik użytkownika rdzeni arytmetycznych IP Intel FPGA Integer 8
Wyślij opinię
2. LPM_COUNTER (licznik) rdzeń IP 683490 | 2020.10.05
2.4. Deklaracja VHDL LIBRARY_USE
Deklaracja VHDL LIBRARY-USE nie jest wymagana, jeśli używana jest deklaracja składnika VHDL.
BIBLIOTEKA lpm; UŻYJ lpm.lpm_components.all;
2.5. Porty
Poniższe tabele zawierają listę portów wejściowych i wyjściowych rdzenia IP LPM_COUNTER.
Tabela 2.
LPM_COUNTER Porty wejściowe
Nazwa portu
Wymagany
Opis
dane[]
NIE
Równoległe wprowadzanie danych do licznika. Rozmiar portu wejściowego zależy od wartości parametru LPM_WIDTH.
zegar
Tak
Wejście zegara wyzwalane dodatnim zboczem.
clk_en
NIE
Zegar włącza wejście, aby włączyć wszystkie działania synchroniczne. W przypadku pominięcia wartością domyślną jest 1.
cnt_pl
NIE
Count Włącz wejście, aby wyłączyć zliczanie, gdy zostanie stwierdzone, że jest niskie, bez wpływu na sload, sset lub sclr. W przypadku pominięcia wartością domyślną jest 1.
Góra dół
NIE
Kontroluje kierunek zliczania. Gdy potwierdzono stan wysoki (1), kierunek zliczania jest skierowany w górę, a gdy potwierdzono stan niski (0), kierunek zliczania jest skierowany w dół. Jeśli używany jest parametr LPM_DIRECTION, nie można podłączyć portu updown. Jeśli nie jest używany LPM_DIRECTION, port updown jest opcjonalny. W przypadku pominięcia wartością domyślną jest góra (1).
kino
NIE
Przeniesienie do bitu niższego rzędu. W przypadku liczników w górę zachowanie wejścia cin jest następujące
identyczne z zachowaniem wejścia cnt_en. W przypadku pominięcia wartością domyślną jest 1
(VCC).
akl
NIE
Asynchroniczne jasne wejście. Jeśli zarówno aset, jak i aclr są używane i potwierdzane, aclr zastępuje aset. W przypadku pominięcia wartością domyślną jest 0 (wyłączone).
ustawić
NIE
Wejście zestawu asynchronicznego. Określa wyjścia q[] jako same jedynki lub do wartości określonej przez parametr LPM_AVALUE. Jeśli zarówno porty aset, jak i aclr są używane i potwierdzane, wartość portu aclr zastępuje wartość portu aset. W przypadku pominięcia wartością domyślną jest 1, wyłączone.
ładunek
NIE
Asynchroniczne wejście ładowania, które asynchronicznie ładuje licznik wartością na wejściu danych. Gdy używany jest port ładowania, port danych [] musi być podłączony. W przypadku pominięcia wartością domyślną jest 0, wyłączone.
sklr
NIE
Synchroniczne wejście kasowania, które zeruje licznik przy następnym aktywnym zboczu zegara. Jeśli oba porty sset i sclr są używane i potwierdzane, wartość portu sclr zastępuje wartość portu sset. W przypadku pominięcia wartością domyślną jest 0, wyłączone.
zestaw
NIE
Synchroniczne wejście set, które ustawia licznik na następnym aktywnym zboczu zegara. Określa wartość wyjść q jako same jedynki lub wartość określoną przez parametr LPM_SVALUE. Jeśli zarówno porty sset, jak i sclr są używane i potwierdzane,
wartość portu sclr zastępuje wartość portu sset. W przypadku pominięcia wartością domyślną jest 0 (wyłączone).
obciążenie
NIE
Wejście synchronicznego ładowania, które ładuje licznik danymi [] na następnym aktywnym zboczu zegara. Gdy używany jest port sload, port danych [] musi być podłączony. W przypadku pominięcia wartością domyślną jest 0 (wyłączone).
Wyślij opinię
Podręcznik użytkownika rdzeni arytmetycznych IP Intel FPGA Integer 9
2. LPM_COUNTER (licznik) rdzeń IP 683490 | 2020.10.05
Tabela 3.
LPM_COUNTER Porty wyjściowe
Nazwa portu
Wymagany
Opis
Q[]
NIE
Wyjście danych z licznika. Rozmiar portu wyjściowego zależy od
Wartość parametru LPM_WIDTH. Albo q[] albo przynajmniej jeden z portów eq[15..0].
musi być podłączony.
równanie [15..0]
NIE
Wyjście dekodowania licznika. Port eq[15..0] jest niedostępny w edytorze parametrów, ponieważ parametr obsługuje tylko AHDL.
Musi być podłączony port q[] lub eq[]. Można użyć maksymalnie c portów eq (0 <= c <= 15). Dekodowanych jest tylko 16 najniższych wartości liczbowych. Gdy zliczona wartość wynosi c, wyjście eqc przyjmuje stan wysoki (1). na przykładample, gdy liczba wynosi 0, eq0 = 1, gdy liczba wynosi 1, eq1 = 1, a gdy liczba wynosi 15, eq 15 = 1. Zdekodowane wyjście dla wartości liczby 16 lub większej wymaga zewnętrznego dekodowania. Wyjścia eq[15..0] są asynchroniczne z wyjściem q[].
rzut
NIE
Port wykonania bitu MSB licznika. Można go użyć do połączenia z innym licznikiem w celu utworzenia większego licznika.
2.6. Parametry
W poniższej tabeli wymieniono parametry rdzenia IP LPM_COUNTER.
Tabela 4.
LPM_COUNTER Parametry
Nazwa parametru
Typ
LPM_WIDTH
Liczba całkowita
LPM_DIRECTION
Smyczkowy
LPM_MODULUS LPM_AVALUE
Liczba całkowita
Liczba całkowita/ Ciąg
LPM_SVALUE LPM_HINT
Liczba całkowita/ Ciąg
Smyczkowy
LPM_TYPE
Smyczkowy
Wymagane Tak Nie Nie Nie
Nie Nie
NIE
Opis
Określa szerokość portów data[] i q[], jeśli są używane.
Wartości to UP, DOWN i UNUSED. Jeśli używany jest parametr LPM_DIRECTION, nie można podłączyć portu updown. Gdy port updown nie jest podłączony, domyślną wartością parametru LPM_DIRECTION jest UP.
Maksymalna liczba plus jeden. Liczba unikalnych stanów w cyklu licznika. Jeśli wartość obciążenia jest większa niż parametr LPM_MODULUS, zachowanie licznika nie jest określone.
Stała wartość, która jest ładowana, gdy potwierdzono, że zasób jest wysoki. Jeśli określona wartość jest większa lub równa , zachowanie licznika jest niezdefiniowanym (X) poziomem logicznym, gdzie jest LPM_MODULUS, jeśli występuje, lub 2 ^ LPM_WIDTH. Firma Intel zaleca określenie tej wartości jako liczby dziesiętnej w przypadku projektów AHDL.
Stała wartość ładowana na narastającym zboczu portu zegara, gdy port sset ma stan wysoki. Firma Intel zaleca określenie tej wartości jako liczby dziesiętnej w przypadku projektów AHDL.
Podczas tworzenia wystąpienia funkcji biblioteki sparametryzowanych modułów (LPM) w projekcie VHDL File (.vhd), należy użyć parametru LPM_HINT, aby określić parametr specyficzny dla firmy Intel. na przykładampplik: LPM_HINT = „ROZMIAR_ŁAŃCUCHA = 8, ONE_INPUT_IS_CONSTANT = TAK”
Wartość domyślna to NIEUŻYWANE.
Identyfikuje nazwę jednostki biblioteki sparametryzowanych modułów (LPM) w projekcie VHDL files.
dalszy…
Podręcznik użytkownika rdzeni arytmetycznych IP Intel FPGA Integer 10
Wyślij opinię
2. LPM_COUNTER (licznik) rdzeń IP 683490 | 2020.10.05
Nazwa parametru INTENDED_DEVICE_FAMILY CARRY_CNT_EN
LABWIDE_SCLR
LPM_PORT_UPDOWN
Wpisz ciąg znaków
Smyczkowy
Smyczkowy
Wymagany nr Nie
NIE
NIE
Opis
Ten parametr jest używany do celów modelowania i symulacji behawioralnej. Ten parametr jest używany do celów modelowania i symulacji behawioralnej. Edytor parametrów oblicza wartość tego parametru.
Parametr specyficzny dla firmy Intel. Musisz użyć parametru LPM_HINT, aby określić parametr CARRY_CNT_EN w projekcie VHDL fileS. Wartości to SMART, ON, OFF i UNUSED. Włącza funkcję LPM_COUNTER w celu propagowania sygnału cnt_en przez łańcuch przenoszenia. W niektórych przypadkach ustawienie parametru CARRY_CNT_EN może mieć niewielki wpływ na prędkość, więc warto go wyłączyć. Wartość domyślna to SMART, która zapewnia najlepszy kompromis między rozmiarem a szybkością.
Parametr specyficzny dla firmy Intel. Musisz użyć parametru LPM_HINT, aby określić parametr LABWIDE_SCLR w projekcie VHDL fileS. Wartości to WŁ., WYŁ. lub NIEUŻYWANE. Wartość domyślna to WŁ. Umożliwia wyłączenie funkcji LABwide sclr, którą można znaleźć w przestarzałych rodzinach urządzeń. Wyłączenie tej opcji zwiększa szanse na pełne wykorzystanie częściowo wypełnionych LAB, a tym samym może pozwolić na większą gęstość logiki, gdy SCLR nie ma zastosowania do pełnego LAB. Ten parametr jest dostępny w celu zapewnienia zgodności z poprzednimi wersjami i firma Intel zaleca, aby nie używać tego parametru.
Określa użycie portu wejściowego updown. W przypadku pominięcia wartością domyślną jest PORT_CONNECTIVITY. Gdy wartość portu jest ustawiona na PORT_USED, port jest traktowany jako używany. Gdy wartość portu jest ustawiona na PORT_UNUSED, port jest traktowany jako nieużywany. Gdy wartość portu jest ustawiona na PORT_CONNECTIVITY, użycie portu jest określane przez sprawdzenie łączności portu.
Wyślij opinię
Podręcznik użytkownika rdzeni arytmetycznych IP Intel FPGA Integer 11
683490 | 2020.10.05 Prześlij opinię
3. LPM_DIVIDE (dzielnik) Intel FPGA IP Core
Rysunek 2.
Rdzeń LPM_DIVIDE Intel FPGA IP implementuje dzielnik do dzielenia wartości wejściowej licznika przez wartość wejściową mianownika w celu uzyskania ilorazu i reszty.
Poniższy rysunek przedstawia porty rdzenia IP LPM_DIVIDE.
Porty LPM_DIVIDE
LPM_DIVIDE
numer[] denom[] zegar
iloraz [] pozostaje []
clken aclr
instalacja
3.1. Funkcje
Rdzeń IP LPM_DIVIDE oferuje następujące funkcje: · Generuje dzielnik, który dzieli wartość wejściową licznika przez wejściową wartość mianownika
wartość, aby uzyskać iloraz i resztę. · Obsługuje szerokość danych 1 bitów. · Obsługuje podpisany i niepodpisany format reprezentacji danych zarówno dla licznika
i wartości mianownika. · Obsługuje optymalizację obszaru lub prędkości. · Zapewnia opcję określenia dodatniej reszty wyjściowej. · Obsługuje konfigurowalne opóźnienia wyjścia potokowego. · Obsługuje opcjonalne asynchroniczne porty Clear i Clock Enable.
3.2. Prototyp Verilog HDL
Poniższy prototyp Verilog HDL znajduje się w Verilog Design File (.v) lpm.v w katalog edasyntezy.
moduł lpm_divide ( iloraz, reszta, liczba, denom, zegar, clken, aclr); parametr lpm_type = „lpm_divide”; parametr lpm_widthn = 1; parametr lpm_widthd = 1; parametr lpm_nrepresentation = „UNSIGNED”; parametr lpm_drepresentation = „UNSIGNED”; parametr lpm_remainderpositive = „PRAWDA”; parametr lpm_pipeline = 0;
Korporacja intelektualna. Wszelkie prawa zastrzeżone. Intel, logo Intel i inne znaki Intel są znakami towarowymi firmy Intel Corporation lub jej podmiotów zależnych. Firma Intel gwarantuje wydajność swoich produktów FPGA i półprzewodników zgodnie z aktualnymi specyfikacjami zgodnie ze standardową gwarancją firmy Intel, ale zastrzega sobie prawo do wprowadzania zmian w dowolnych produktach i usługach w dowolnym czasie bez powiadomienia. Firma Intel nie ponosi żadnej odpowiedzialności wynikającej z zastosowania lub wykorzystania jakichkolwiek informacji, produktów lub usług opisanych w niniejszym dokumencie, z wyjątkiem przypadków wyraźnie uzgodnionych na piśmie przez firmę Intel. Klienci firmy Intel powinni uzyskać najnowszą wersję specyfikacji urządzeń przed poleganiem na jakichkolwiek opublikowanych informacjach oraz przed złożeniem zamówienia na produkty lub usługi. *Inne nazwy i marki mogą być przedmiotem praw osób trzecich.
Zarejestrowany zgodnie z ISO 9001: 2015
3. LPM_DIVIDE (dzielnik) Intel FPGA IP Core 683490 | 2020.10.05
parametr lpm_hint = „NIEUŻYWANY”; zegar wejściowy; wejście clken; wejście aclr; wpisz [lpm_widthn-1:0] liczba; wprowadź [lpm_widthd-1:0] denom; wynik [lpm_widthn-1:0] iloraz; wyjście [lpm_widthd-1:0] pozostaje; moduł końcowy
3.3. Deklaracja składnika VHDL
Deklaracja komponentu VHDL znajduje się w projekcie VHDL File (.vhd) LPM_PACK.vhd w formacie katalog bibliotekvhdllpm.
składnik LPM_DIVIDE ogólny (LPM_WIDTHN : naturalny; LPM_WIDTHD : naturalny;
LPM_NREPRESENTATION: string := “UNSIGNED”; LPM_DREPRESENTATION: string := “UNSIGNED”; LPM_PIPELINE : naturalny := 0; LPM_TYPE: string := L_DIVIDE; LPM_HINT: string := “NIEUŻYWANY”); port (NUMER: in std_logic_vector(LPM_WIDTHN-1 downto 0); DENOM: in std_logic_vector(LPM_WIDTHD-1 downto 0); ACLR: in std_logic:= '0'; CLOCK: in std_logic:= '0'; CLKEN: in std_logic := '1'; QUOTIENT: out std_logic_vector(LPM_WIDTHN-1 do 0); REMAIN: out std_logic_vector(LPM_WIDTHD-1 do 0)); element końcowy;
3.4. Deklaracja VHDL LIBRARY_USE
Deklaracja VHDL LIBRARY-USE nie jest wymagana, jeśli używana jest deklaracja składnika VHDL.
BIBLIOTEKA lpm; UŻYJ lpm.lpm_components.all;
3.5. Porty
W poniższych tabelach wymieniono porty wejściowe i wyjściowe rdzenia IP LPM_DIVIDE.
Tabela 5.
Porty wejściowe LPM_DIVIDE
Nazwa portu
Wymagany
numer[]
Tak
Denom[]
Tak
Opis
Wprowadzanie danych licznika. Rozmiar portu wejściowego zależy od wartości parametru LPM_WIDTHN.
Wprowadzanie danych w mianowniku. Rozmiar portu wejściowego zależy od wartości parametru LPM_WIDTHD.
dalszy…
Wyślij opinię
Podręcznik użytkownika rdzeni arytmetycznych IP Intel FPGA Integer 13
3. LPM_DIVIDE (dzielnik) Intel FPGA IP Core 683490 | 2020.10.05
Zegar zegara nazwy portu
akl
Wymagany nr Nie
NIE
Opis
Wejście zegara do użycia potokowego. W przypadku wartości LPM_PIPELINE innych niż 0 (domyślnie) port zegara musi być włączony.
Zegar umożliwia użycie potokowe. Gdy stan portu clken jest wysoki, ma miejsce operacja dzielenia. Gdy sygnał jest niski, żadna operacja nie jest wykonywana. W przypadku pominięcia wartością domyślną jest 1.
Asynchroniczny czysty port używany w dowolnym momencie do resetowania potoku do wszystkich „0” asynchronicznie do wejścia zegara.
Tabela 6.
Porty wyjściowe LPM_DIVIDE
Nazwa portu
Wymagany
Opis
iloraz[]
Tak
Wyjście danych. Rozmiar portu wyjściowego zależy od LPM_WIDTHN
wartość parametru.
pozostać[]
Tak
Wyjście danych. Rozmiar portu wyjściowego zależy od LPM_WIDTHD
wartość parametru.
3.6. Parametry
W poniższej tabeli wymieniono parametry rdzenia LPM_DIVIDE Intel FPGA IP.
Nazwa parametru
Typ
Wymagany
Opis
LPM_WIDTHN
Liczba całkowita
Tak
Określa szerokości liczb[] i
iloraz [] portów. Wartości od 1 do 64.
LPM_WIDTHD
Liczba całkowita
Tak
Określa szerokości denom[] i
pozostań [] portami. Wartości od 1 do 64.
LPM_NREPRESENTATION LPM_DREPRESENTATION
Ciąg Ciąg
NIE
Reprezentacja znakowa wejścia licznika.
Wartości są PODPISANE i NIEPOZNANE. Kiedy to
parametr jest ustawiony na SIGNED, dzielnik
interpretuje wejście numer[] jako dwie ze znakiem
uzupełnienie.
NIE
Reprezentacja znaku wejścia mianownika.
Wartości są PODPISANE i NIEPOZNANE. Kiedy to
parametr jest ustawiony na SIGNED, dzielnik
interpretuje dane wejściowe denom[] jako dwie ze znakiem
uzupełnienie.
LPM_TYPE
Smyczkowy
NIE
Identyfikuje bibliotekę sparametryzowaną
moduły (LPM) nazwa jednostki w projekcie VHDL
files (.vhd).
LPM_WSKAZÓWKA
Smyczkowy
NIE
Kiedy tworzysz instancję biblioteki
moduły sparametryzowane (LPM) funkcjonują w a
Projekt VHDL File (.vhd), musisz użyć
LPM_HINT parametr, aby określić Intel-
określony parametr. na przykładampplik: LPM_HINT
= „ROZMIAR_ŁAŃCUCHA = 8,
ONE_INPUT_IS_CONSTANT = TAK”
wartość domyślna to NIEUŻYWANE.
LPM_REMAINDERPOZYTYWNY
Smyczkowy
NIE
Parametr specyficzny dla firmy Intel. Musisz użyć tzw
LPM_HINT parametr, aby określić
LPM_REMAINDERPOSITIVE parametr w
Projekt VHDL fileS. Wartości to PRAWDA lub FAŁSZ.
Jeśli ten parametr jest ustawiony na PRAWDA, to
wartość portu left[] musi być większa
dalszy…
Podręcznik użytkownika rdzeni arytmetycznych IP Intel FPGA Integer 14
Wyślij opinię
3. LPM_DIVIDE (dzielnik) Intel FPGA IP Core 683490 | 2020.10.05
Nazwa parametru
Typ
MAKSYMALNA PRĘDKOŚĆ
Liczba całkowita
LPM_PIPELINE
Liczba całkowita
INTENDED_DEVICE_FAMILY SKIP_BITS
Ciąg liczb całkowitych
Wymagany nr
Nie, nie, nie
Opis
większa lub równa zeru. Jeśli ten parametr jest ustawiony na PRAWDA, wówczas wartością portu pozostało[] jest albo zero, albo wartość jest tym samym znakiem, dodatnim lub ujemnym, co wartość portu numerycznego. Aby zmniejszyć powierzchnię i poprawić prędkość, firma Intel zaleca ustawienie tego parametru na PRAWDA w operacjach, w których reszta musi być dodatnia lub gdy reszta jest nieważna.
Parametr specyficzny dla firmy Intel. Musisz użyć parametru LPM_HINT, aby określić parametr MAXIMIZE_SPEED w projekcie VHDL fileS. Wartości to [0..9]. Jeśli jest używane, oprogramowanie Intel Quartus Prime próbuje zoptymalizować określoną instancję funkcji LPM_DIVIDE pod kątem szybkości, a nie możliwości wyznaczania tras, i zastępuje ustawienie opcji logiki techniki optymalizacji. Jeśli MAXIMIZE_SPEED nie jest używany, zamiast tego używana jest wartość opcji Technika optymalizacji. Jeśli wartość MAXIMIZE_SPEED wynosi 6 lub więcej, kompilator optymalizuje rdzeń IP LPM_DIVIDE pod kątem większej szybkości za pomocą łańcuchów przenoszenia; jeśli wartość wynosi 5 lub mniej, kompilator implementuje projekt bez łańcuchów przenoszenia.
Określa liczbę cykli zegara opóźnienia związanych z wyjściami ilorazu [] i pozostania []. Wartość zero (0) wskazuje, że nie istnieje żadne opóźnienie i że jest tworzona instancja funkcji czysto kombinacyjnej. W przypadku pominięcia wartością domyślną jest 0 (bez potoku). Nie można określić wartości parametru LPM_PIPELINE większej niż LPM_WIDTHN.
Ten parametr jest używany do celów modelowania i symulacji behawioralnej. Edytor parametrów oblicza wartość tego parametru.
Pozwala na wydajniejsze ułamkowe dzielenie bitów w celu optymalizacji logiki na wiodących bitach poprzez podanie liczby wiodących GND do rdzenia IP LPM_DIVIDE. Określ numer wiodącego GND na wyjściu ilorazowym do tego parametru.
Wyślij opinię
Podręcznik użytkownika rdzeni arytmetycznych IP Intel FPGA Integer 15
683490 | 2020.10.05 Prześlij opinię
4. Rdzeń IP LPM_MULT (mnożnik).
Rysunek 3.
Rdzeń IP LPM_MULT implementuje mnożnik w celu pomnożenia dwóch wartości danych wejściowych w celu wytworzenia produktu jako wyjścia.
Poniższy rysunek przedstawia porty rdzenia IP LPM_MULT.
Porty LPM_Mult
LPM_MULT zegar dataa[] wynik[] datab[] aclr/sclr clken
instalacja
Powiązane funkcje informacyjne na stronie 71
4.1. Funkcje
Rdzeń IP LPM_MULT oferuje następujące funkcje: · Generuje mnożnik, który mnoży dwie wartości danych wejściowych · Obsługuje szerokość danych 1 bitów · Obsługuje format reprezentacji danych ze znakiem i bez znaku · Obsługuje optymalizację obszaru lub prędkości · Obsługuje potokowanie z konfigurowalnym opóźnieniem wyjścia · Zapewnia możliwość implementacji w dedykowanym cyfrowym przetwarzaniu sygnału (DSP)
obwody blokowe lub elementy logiczne (LE) Uwaga: Podczas budowania mnożników większych niż natywnie obsługiwany rozmiar może/
będzie miało wpływ na wydajność wynikający z kaskadowania bloków DSP. · Obsługuje opcjonalne porty wejściowe asynchronicznego czyszczenia i włączania zegara · Obsługuje opcjonalne synchroniczne czyszczenie dla urządzeń Intel Stratix 10, Intel Arria 10 i Intel Cyclone 10 GX
Korporacja intelektualna. Wszelkie prawa zastrzeżone. Intel, logo Intel i inne znaki Intel są znakami towarowymi firmy Intel Corporation lub jej podmiotów zależnych. Firma Intel gwarantuje wydajność swoich produktów FPGA i półprzewodników zgodnie z aktualnymi specyfikacjami zgodnie ze standardową gwarancją firmy Intel, ale zastrzega sobie prawo do wprowadzania zmian w dowolnych produktach i usługach w dowolnym czasie bez powiadomienia. Firma Intel nie ponosi żadnej odpowiedzialności wynikającej z zastosowania lub wykorzystania jakichkolwiek informacji, produktów lub usług opisanych w niniejszym dokumencie, z wyjątkiem przypadków wyraźnie uzgodnionych na piśmie przez firmę Intel. Klienci firmy Intel powinni uzyskać najnowszą wersję specyfikacji urządzeń przed poleganiem na jakichkolwiek opublikowanych informacjach oraz przed złożeniem zamówienia na produkty lub usługi. *Inne nazwy i marki mogą być przedmiotem praw osób trzecich.
Zarejestrowany zgodnie z ISO 9001: 2015
4. LPM_MULT (mnożnik) rdzeń IP 683490 | 2020.10.05
4.2. Prototyp Verilog HDL
Poniższy prototyp Verilog HDL znajduje się w Verilog Design File (.v) lpm.v w katalog edasyntezy.
moduł lpm_mult (result, dataa, datab, sum, clock, clken, aclr ) parametr lpm_type = „lpm_mult”; parametr lpm_widtha = 1; parametr lpm_widthb = 1; parametr lpm_widths = 1; parametr lpm_widthp = 1; parametr lpm_representation = „UNSIGNED”; parametr lpm_pipeline = 0; parametr lpm_hint = „NIEUŻYWANY”; zegar wejściowy; wejście clken; wejście aclr; wprowadź [lpm_widtha-1:0] danea; wprowadź [lpm_widthb-1:0] datab; wprowadź sumę [lpm_widths-1:0]; wyjście [lpm_widthp-1:0] wynik; moduł końcowy
4.3. Deklaracja składnika VHDL
Deklaracja komponentu VHDL znajduje się w projekcie VHDL File (.vhd) LPM_PACK.vhd w formacie katalog bibliotekvhdllpm.
składnik LPM_MULT ogólny ( LPM_WIDTHA : naturalny; LPM_WIDTHB : naturalny; LPM_WIDTHS : naturalny := 1; LPM_WIDTHP : naturalny;
LPM_REPRESENTATION : string := “UNSIGNED”; LPM_PIPELINE : naturalny := 0; LPM_TYPE: string := L_MULT; LPM_HINT: string := “NIEUŻYWANY”); port ( DATAA: w std_logic_vector(LPM_WIDTHA-1 do 0); DATAB: w std_logic_vector(LPM_WIDTHB-1 do 0); ACLR: w std_logic:= '0'; ZEGAR: w std_logic:= '0'; CLKEN: w std_logic := '1'; SUM: in std_logic_vector(LPM_WIDTHS-1 do 0) := (INNE => '0'); WYNIK: out std_logic_vector(LPM_WIDTHP-1 do 0)); element końcowy;
4.4. Deklaracja VHDL LIBRARY_USE
Deklaracja VHDL LIBRARY-USE nie jest wymagana, jeśli używana jest deklaracja składnika VHDL.
BIBLIOTEKA lpm; UŻYJ lpm.lpm_components.all;
Wyślij opinię
Podręcznik użytkownika rdzeni arytmetycznych IP Intel FPGA Integer 17
4. LPM_MULT (mnożnik) rdzeń IP 683490 | 2020.10.05
4.5. Sygnały
Tabela 7.
LPM_MULT Sygnały wejściowe
Nazwa sygnału
Wymagany
Opis
danea[]
Tak
Wprowadzanie danych.
W przypadku urządzeń Intel Stratix 10, Intel Arria 10 i Intel Cyclone 10 GX rozmiar sygnału wejściowego zależy od wartości parametru Szerokość danycha.
W przypadku urządzeń starszych i Intel Cyclone 10 LP wielkość sygnału wejściowego zależy od wartości parametru LPM_WIDTHA.
baza danych []
Tak
Wprowadzanie danych.
W przypadku urządzeń Intel Stratix 10, Intel Arria 10 i Intel Cyclone 10 GX rozmiar sygnału wejściowego zależy od wartości parametru Szerokość bazy danych.
W przypadku starszych urządzeń i urządzeń Intel Cyclone 10 LP rozmiar sygnału wejściowego zależy
od wartości parametru LPM_WIDTHB.
zegar
NIE
Wejście zegara do użycia potokowego.
W przypadku urządzeń starszych i Intel Cyclone 10 LP sygnał zegara musi być włączony dla wartości LPM_PIPELINE innych niż 0 (domyślnie).
W przypadku urządzeń Intel Stratix 10, Intel Arria 10 i Intel Cyclone 10 GX sygnał zegara musi być włączony, jeśli wartość opóźnienia jest inna niż 1 (domyślnie).
klken
NIE
Włącz zegar do użycia potokowego. Gdy sygnał clken jest wysoki,
ma miejsce operacja dodawania/odejmowania. Gdy sygnał jest niski, nie działa
występuje. W przypadku pominięcia wartością domyślną jest 1.
aclr scr
NIE
Asynchroniczny czysty sygnał używany w dowolnym momencie do resetowania potoku do wszystkich zer,
asynchronicznie do sygnału zegara. Potok jest inicjowany do niezdefiniowanego (X)
poziom logiczny. Wyjścia są stałą, ale niezerową wartością.
NIE
Synchroniczny czysty sygnał używany w dowolnym momencie do resetowania potoku do wszystkich zer,
synchronicznie z sygnałem zegara. Potok jest inicjowany do niezdefiniowanego (X)
poziom logiczny. Wyjścia są stałą, ale niezerową wartością.
Tabela 8.
LPM_MULT Sygnały wyjściowe
Nazwa sygnału
Wymagany
Opis
wynik[]
Tak
Wyjście danych.
W przypadku urządzeń starszych i Intel Cyclone 10 LP wielkość sygnału wyjściowego zależy od wartości parametru LPM_WIDTHP. Jeśli LPM_WIDTHP < max (LPM_WIDTHA + LPM_WIDTHB, LPM_WIDTHS) lub (LPM_WIDTHA + LPM_WIDTHS), obecne są tylko MSB LPM_WIDTHP.
W przypadku procesorów Intel Stratix 10, Intel Arria 10 i Intel Cyclone 10 GX rozmiar sygnałów wyjściowych zależy od parametru Result width.
4.6. Parametry dla urządzeń Stratix V, Arria V, Cyclone V i Intel Cyclone 10 LP
4.6.1. Zakładka Ogólne
Tabela 9.
Karta Ogólne
Parametr
Wartość
Konfiguracja mnożnika
Pomnóż dane wejściowe „dataa” przez dane wejściowe „datab”.
Wartość domyślna
Opis
Pomnóż dane wejściowe „dataa” przez dane wejściowe „datab”.
Wybierz żądaną konfigurację mnożnika.
dalszy…
Podręcznik użytkownika rdzeni arytmetycznych IP Intel FPGA Integer 18
Wyślij opinię
4. LPM_MULT (mnożnik) rdzeń IP 683490 | 2020.10.05
Parametr
Jak szerokie powinno być wejście „dataa”? Jak szerokie powinno być wejście „danych”? Jak należy określić szerokość wyjścia „wynikowego”? Ogranicz szerokość
Wartość
Pomnóż dane wejściowe „dataa” przez siebie (operacja podniesienia do kwadratu)
1 – 256 bity
Wartość domyślna
Opis
8 bitów
Określ szerokość portu dataa[].
1 – 256 bity
8 bitów
Określ szerokość portu datab[].
Automatycznie oblicz szerokość Ogranicz szerokość
1 – 512 bity
Automatycznie oblicz szerokość
Wybierz żądaną metodę określenia szerokości portu wynikowego [].
16 bitów
Określ szerokość portu wynikowego [].
Ta wartość będzie skuteczna tylko wtedy, gdy wybierzesz opcję Ogranicz szerokość w parametrze Typ.
4.6.2. Ogólne 2 Tab
Tabela 10. Informacje ogólne 2 Tab
Parametr
Wartość
Dane wejściowe
Czy magistrala wejściowa „datab” ma stałą wartość?
Nie Tak
Typ mnożenia
Jaki typ
Niepodpisany
mnożenie chcesz? Podpisano
Realizacja
Której implementacji mnożnika należy użyć?
Użyj domyślnej implementacji
Użyj dedykowanego obwodu mnożnika (niedostępne dla wszystkich rodzin)
Użyj elementów logicznych
Wartość domyślna
Opis
NIE
Wybierz Tak, aby określić stałą wartość
Magistrala wejściowa `datab', jeśli istnieje.
Niepodpisany
Określ format reprezentacji dla wejść dataa[] i datab[].
Użyj domyślnej implementacji
Wybierz żądaną metodę określenia szerokości portu wynikowego [].
4.6.3. Zakładka Potokowanie
Tabela 11. Zakładka Potokowanie
Parametr
Czy chcesz potokować nr
funkcjonować?
Tak
Wartość
Utwórz „aclr”
—
asynchroniczny czysty port
Wartość domyślna
Opis
NIE
Wybierz pozycję tak, aby włączyć rejestr potoku w pliku
wyjście mnożnika i określ żądane
opóźnienie wyjścia w cyklu zegara. Włączenie
rejestr potoku dodaje dodatkowe opóźnienie do pliku
wyjście.
Niepowstrzymany
Wybierz tę opcję, aby umożliwić portowi aclr używanie asynchronicznego czyszczenia rejestru potoku.
dalszy…
Wyślij opinię
Podręcznik użytkownika rdzeni arytmetycznych IP Intel FPGA Integer 19
4. LPM_MULT (mnożnik) rdzeń IP 683490 | 2020.10.05
Parametr
Utwórz zegar włączający zegar „clken”.
Optymalizacja
Jakiego rodzaju optymalizacji chcesz?
Wartość -
Domyślny obszar prędkości
Wartość domyślna
Opis
Niepowstrzymany
Określa aktywne włączenie wysokiego zegara dla portu zegara rejestru potoku
Domyślny
Określ żądaną optymalizację rdzenia IP.
Wybierz opcję Domyślne, aby oprogramowanie Intel Quartus Prime określiło najlepszą optymalizację dla rdzenia IP.
4.7. Parametry dla urządzeń Intel Stratix 10, Intel Arria 10 i Intel Cyclone 10 GX
4.7.1. Zakładka Ogólne
Tabela 12. Zakładka Ogólne
Parametr
Wartość
Wartość domyślna
Opis
Typ konfiguracji mnożnika
Szerokości portów danych
Pomnóż dane wejściowe „dataa” przez dane wejściowe „datab”.
Pomnóż dane wejściowe „dataa” przez siebie (operacja podniesienia do kwadratu)
Pomnóż dane wejściowe „dataa” przez dane wejściowe „datab”.
Wybierz żądaną konfigurację mnożnika.
Szerokość danych
1 – 256 bity
8 bitów
Określ szerokość portu dataa[].
Szerokość bazy danych
1 – 256 bity
8 bitów
Określ szerokość portu datab[].
Jak należy określić szerokość wyjścia „wynikowego”?
Typ
Automatycznie oblicz szerokość
Ogranicz szerokość
Automatycznie oblicz szerokość
Wybierz żądaną metodę określenia szerokości portu wynikowego [].
Wartość
1 – 512 bity
16 bitów
Określ szerokość portu wynikowego [].
Ta wartość będzie skuteczna tylko wtedy, gdy wybierzesz opcję Ogranicz szerokość w parametrze Typ.
Szerokość wyniku
1 – 512 bity
—
Wyświetla efektywną szerokość portu wynikowego [].
4.7.2. Ogólne 2 Tab
Tabela 13. Informacje ogólne 2 Tab
Parametr
Dane wejściowe
Czy magistrala wejściowa „datab” ma stałą wartość?
Nie Tak
Wartość
Wartość domyślna
Opis
NIE
Wybierz Tak, aby określić stałą wartość
Magistrala wejściowa `datab', jeśli istnieje.
dalszy…
Podręcznik użytkownika rdzeni arytmetycznych IP Intel FPGA Integer 20
Wyślij opinię
4. LPM_MULT (mnożnik) rdzeń IP 683490 | 2020.10.05
Parametr
Wartość
Wartość
Dowolna wartość większa niż 0
Typ mnożenia
Jaki typ
Niepodpisany
mnożenie chcesz? Podpisano
Styl implementacji
Której implementacji mnożnika należy użyć?
Użyj domyślnej implementacji
Użyj dedykowanego obwodu mnożnika
Użyj elementów logicznych
Wartość domyślna
Opis
0
Określ stałą wartość portu datab[].
Niepodpisany
Określ format reprezentacji dla wejść dataa[] i datab[].
Użyj domyślnej implementacji
Wybierz żądaną metodę określenia szerokości portu wynikowego [].
4.7.3. Rurociągi
Tabela 14. Zakładka Potokowanie
Parametr
Wartość
Czy chcesz potokować funkcję?
Rurociąg
Nie Tak
Typ sygnału wyczyść opóźnienie
Dowolna wartość większa niż 0.
BRAK ACLR SCLR
Utwórz zegar „clken”.
—
włącz zegar
Jakiego rodzaju optymalizacji chcesz?
Typ
Domyślny obszar prędkości
Wartość domyślna
Opis
Nr 1 ŻADEN
—
Wybierz opcję Tak, aby włączyć rejestr potoku na wyjściu mnożnika. Włączenie rejestru potoku dodaje dodatkowe opóźnienie do danych wyjściowych.
Określ żądane opóźnienie wyjścia w cyklu zegara.
Określ typ resetowania rejestru potoku. Wybierz NONE, jeśli nie używasz żadnego rejestru potoku. Wybierz ACLR, aby użyć asynchronicznego czyszczenia rejestru potoku. Spowoduje to wygenerowanie portu ACLR. Wybierz opcję SCLR, aby użyć synchronicznego czyszczenia rejestru potoku. Spowoduje to wygenerowanie portu SCLR.
Określa aktywne włączenie wysokiego zegara dla portu zegara rejestru potoku
Domyślny
Określ żądaną optymalizację rdzenia IP.
Wybierz opcję Domyślne, aby oprogramowanie Intel Quartus Prime określiło najlepszą optymalizację dla rdzenia IP.
Wyślij opinię
Podręcznik użytkownika rdzeni arytmetycznych IP Intel FPGA Integer 21
683490 | 2020.10.05 Prześlij opinię
5. LPM_ADD_SUB (dodawanie/odejmowanie)
Rysunek 4.
Rdzeń IP LPM_ADD_SUB umożliwia implementację sumatora lub odejmowania w celu dodawania lub odejmowania zestawów danych w celu uzyskania wyniku zawierającego sumę lub różnicę wartości wejściowych.
Poniższy rysunek przedstawia porty rdzenia IP LPM_ADD_SUB.
Porty LPM_ADD_SUB
LPM_ADD_SUB add_sub cin
danea[]
zegar clken datab[] aclr
wynik[] przepełnienie cout
instalacja
5.1. Funkcje
Rdzeń IP LPM_ADD_SUB oferuje następujące funkcje: · Generuje sumator, subtraktor i dynamicznie konfigurowalny sumator/subtraktor
Funkcje. · Obsługuje szerokość danych 1 bitów. · Obsługuje format reprezentacji danych, taki jak podpisany i niepodpisany. · Obsługuje opcjonalne przeniesienie (wypożyczenie), asynchroniczne kasowanie i włączanie zegara
porty wejściowe. · Obsługuje opcjonalne porty wyjściowe typu carry-out (pożyczanie) i przepełnienie. · Przypisuje jedną z szyn danych wejściowych do stałej. · Obsługuje potokowanie z konfigurowalnym opóźnieniem wyjściowym.
Korporacja intelektualna. Wszelkie prawa zastrzeżone. Intel, logo Intel i inne znaki Intel są znakami towarowymi firmy Intel Corporation lub jej podmiotów zależnych. Firma Intel gwarantuje wydajność swoich produktów FPGA i półprzewodników zgodnie z aktualnymi specyfikacjami zgodnie ze standardową gwarancją firmy Intel, ale zastrzega sobie prawo do wprowadzania zmian w dowolnych produktach i usługach w dowolnym czasie bez powiadomienia. Firma Intel nie ponosi żadnej odpowiedzialności wynikającej z zastosowania lub wykorzystania jakichkolwiek informacji, produktów lub usług opisanych w niniejszym dokumencie, z wyjątkiem przypadków wyraźnie uzgodnionych na piśmie przez firmę Intel. Klienci firmy Intel powinni uzyskać najnowszą wersję specyfikacji urządzeń przed poleganiem na jakichkolwiek opublikowanych informacjach oraz przed złożeniem zamówienia na produkty lub usługi. *Inne nazwy i marki mogą być przedmiotem praw osób trzecich.
Zarejestrowany zgodnie z ISO 9001: 2015
5. LPM_ADD_SUB (Dodawanie/odejmowanie) 683490 | 2020.10.05
5.2. Prototyp Verilog HDL
Poniższy prototyp Verilog HDL znajduje się w Verilog Design File (.v) lpm.v w katalog edasyntezy.
moduł lpm_add_sub (result, cout, overflow, add_sub, cin, dataa, datab, clock, clken, aclr ); parametr lpm_type = „lpm_add_sub”; parametr lpm_width = 1; parametr lpm_direction = „NIEUŻYWANY”; parametr lpm_representation = „SIGNED”; parametr lpm_pipeline = 0; parametr lpm_hint = „NIEUŻYWANY”; wprowadź [lpm_width-1:0] danea, daneb; wprowadź add_sub, cin; zegar wejściowy; wejście clken; wejście aclr; wynik [lpm_width-1:0] wynik; wyjście cout, przelew; moduł końcowy
5.3. Deklaracja składnika VHDL
Deklaracja komponentu VHDL znajduje się w projekcie VHDL File (.vhd) LPM_PACK.vhd w formacie katalog bibliotekvhdllpm.
składnik LPM_ADD_SUB rodzajowy (LPM_WIDTH : naturalny;
LPM_DIRECTION : string := „NIEUŻYWANY”; LPM_REPRESENTATION: string := “SIGNED”; LPM_PIPELINE : naturalny := 0; LPM_TYPE: string := L_ADD_SUB; LPM_HINT: string := “NIEUŻYWANY”); port (DATAA: in std_logic_vector(LPM_WIDTH-1 downto 0); DATAB: in std_logic_vector(LPM_WIDTH-1 downto 0); ACLR: in std_logic:= '0'; CLOCK: in std_logic:= '0'; CLKEN: in std_logic := '1'; CIN: in std_logic:= 'Z'; ADD_SUB: in std_logic:= '1'; RESULT: out std_logic_vector(LPM_WIDTH-1 downto 0); COUT: out std_logic; OVERFLOW: out std_logic); element końcowy;
5.4. Deklaracja VHDL LIBRARY_USE
Deklaracja VHDL LIBRARY-USE nie jest wymagana, jeśli używana jest deklaracja składnika VHDL.
BIBLIOTEKA lpm; UŻYJ lpm.lpm_components.all;
5.5. Porty
W poniższych tabelach wymieniono porty wejściowe i wyjściowe dla rdzenia IP LPM_ADD_SUB.
Wyślij opinię
Podręcznik użytkownika rdzeni arytmetycznych IP Intel FPGA Integer 23
5. LPM_ADD_SUB (Dodawanie/odejmowanie) 683490 | 2020.10.05
Tabela 15. LPM_ADD_SUB Porty wejściowe rdzenia IP
Nazwa portu
Wymagany
Opis
kino
NIE
Przeniesienie do bitu niższego rzędu. W przypadku operacji dodawania wartością domyślną jest 0. For
operacji odejmowania, domyślną wartością jest 1.
danea[]
Tak
Wprowadzanie danych. Rozmiar portu wejściowego zależy od wartości parametru LPM_WIDTH.
baza danych []
Tak
Wprowadzanie danych. Rozmiar portu wejściowego zależy od wartości parametru LPM_WIDTH.
dodaj_sub
NIE
Opcjonalny port wejściowy umożliwiający dynamiczne przełączanie między sumatorem a subtraktorem
Funkcje. Jeśli używany jest parametr LPM_DIRECTION, add_sub nie może być używany. Jeśli
pominięty, wartością domyślną jest ADD. Firma Intel zaleca korzystanie z
parametr LPM_DIRECTION do określenia działania funkcji LPM_ADD_SUB,
zamiast przypisywać stałą do portu add_sub.
zegar
NIE
Dane wejściowe do użycia potokowego. Port zegara zapewnia wejście zegara dla potoku
operacja. Dla wartości LPM_PIPELINE innych niż 0 (domyślnie) port zegara musi być
włączony.
klken
NIE
Włącz zegar do użycia potokowego. Gdy port clken ma stan wysoki, sumator/
ma miejsce operacja odejmowania. Gdy sygnał jest niski, żadna operacja nie jest wykonywana. Jeśli
pominięty, domyślna wartość to 1.
akl
NIE
Asynchroniczne czyszczenie dla użycia potokowego. Potok jest inicjowany do niezdefiniowanego (X)
poziom logiczny. Portu aclr można użyć w dowolnym momencie, aby zresetować potok do wszystkich zer,
asynchronicznie do sygnału zegara.
Tabela 16. LPM_ADD_SUB Porty wyjściowe rdzenia IP
Nazwa portu
Wymagany
Opis
wynik[]
Tak
Wyjście danych. Rozmiar portu wyjściowego zależy od parametru LPM_WIDTH
wartość.
rzut
NIE
Przeprowadzenie (pożyczenie) najbardziej znaczącego bitu (MSB). Port cout ma fizyczny
interpretacja jako wykonanie (zapożyczenie) MSB. Port cout wykrywa
przepełnienie w operacjach UNSIGNED. Port cout działa w ten sam sposób dla
Operacje PODPISANE i NIEPOZNANE.
przelewowy
NIE
Opcjonalne wyjście wyjątku przepełnienia. Port przelewowy ma fizyczną interpretację jako
XOR przeniesienia do MSB z przeniesieniem MSB. Port przelewowy
potwierdza, gdy wyniki przekraczają dostępną precyzję i jest używany tylko wtedy, gdy
Wartość parametru LPM_REPRESENTATION to SIGNED.
5.6. Parametry
W poniższej tabeli wymieniono podstawowe parametry protokołu IP LPM_ADD_SUB.
Tabela 17. Parametry rdzenia IP LPM_ADD_SUB
Nazwa parametru LPM_WIDTH
Wpisz liczbę całkowitą
Wymagane Tak
Opis
Określa szerokość portów dataa[], datab[] i result[].
LPM_DIRECTION
Smyczkowy
NIE
Wartości to ADD, SUB i UNUSED. W przypadku pominięcia wartością domyślną jest DOMYŚLNA, co powoduje, że parametr pobiera swoją wartość z portu add_sub. Nie można użyć portu add_sub, jeśli używany jest LPM_DIRECTION. Firma Intel zaleca użycie parametru LPM_DIRECTION do określenia działania funkcji LPM_ADD_SUB zamiast przypisywania stałej do portu add_sub.
dalszy…
Podręcznik użytkownika rdzeni arytmetycznych IP Intel FPGA Integer 24
Wyślij opinię
5. LPM_ADD_SUB (Dodawanie/odejmowanie) 683490 | 2020.10.05
Nazwa parametru LPM_REPRESENTATION LPM_PIPELINE LPM_HINT LPM_TYPE ONE_INPUT_IS_CONSTANT MAXIMIZE_SPEED
INTENDED_DEVICE_FAMILY
Typ Ciąg Liczba całkowita Ciąg Ciąg Ciąg Liczba całkowita
Smyczkowy
Wymagane Nie Nie Nie Nie Nie Nie
NIE
Opis
Określa typ wykonywanego dodawania. Wartości są PODPISANE i NIEPOZNANE. W przypadku pominięcia wartością domyślną jest PODPIS. Kiedy ten parametr jest ustawiony na SIGNED, sumator/subtraktor interpretuje wprowadzone dane jako uzupełnienie do dwóch ze znakiem.
Określa liczbę cykli zegara opóźnienia związanych z wyjściem result[]. Wartość zero (0) wskazuje, że nie istnieje żadne opóźnienie i że zostanie utworzona instancja czysto kombinacyjnej funkcji. W przypadku pominięcia wartością domyślną jest 0 (bez potoku).
Umożliwia określenie parametrów specyficznych dla firmy Intel w projekcie VHDL files (.vhd). Wartość domyślna to NIEUŻYWANE.
Identyfikuje nazwę jednostki biblioteki sparametryzowanych modułów (LPM) w projekcie VHDL files.
Parametr specyficzny dla firmy Intel. Musisz użyć parametru LPM_HINT, aby określić parametr ONE_INPUT_IS_CONSTANT w projekcie VHDL fileS. Wartości to TAK, NIE i NIEUŻYWANE. Zapewnia większą optymalizację, jeśli jedno wejście jest stałe. W przypadku pominięcia wartością domyślną jest NIE.
Parametr specyficzny dla firmy Intel. Musisz użyć parametru LPM_HINT, aby określić parametr MAXIMIZE_SPEED w projekcie VHDL fileS. Można określić wartość z zakresu od 0 do 10. Jeśli jest używana, oprogramowanie Intel Quartus Prime próbuje zoptymalizować określoną instancję funkcji LPM_ADD_SUB pod kątem szybkości, a nie możliwości wyznaczania tras, i zastępuje ustawienie opcji logiki techniki optymalizacji. Jeśli MAXIMIZE_SPEED nie jest używany, zamiast tego używana jest wartość opcji Technika optymalizacji. Jeśli ustawienie MAXIMIZE_SPEED wynosi 6 lub więcej, kompilator optymalizuje rdzeń IP LPM_ADD_SUB pod kątem większej szybkości przy użyciu łańcuchów przenoszenia; jeśli ustawienie wynosi 5 lub mniej, kompilator implementuje projekt bez łańcuchów przenoszenia. Ten parametr należy określić dla urządzeń Cyclone, Stratix i Stratix GX tylko wtedy, gdy port add_sub nie jest używany.
Ten parametr jest używany do celów modelowania i symulacji behawioralnej. Edytor parametrów oblicza wartość tego parametru.
Wyślij opinię
Podręcznik użytkownika rdzeni arytmetycznych IP Intel FPGA Integer 25
683490 | 2020.10.05 Prześlij opinię
6. LPM_COMPARE (Komparator)
Rysunek 5.
Rdzeń IP LPM_COMPARE porównuje wartość dwóch zestawów danych w celu określenia relacji między nimi. W najprostszej postaci bramka OR na wyłączność służy do określania, czy dwa bity danych są równe.
Poniższy rysunek przedstawia porty rdzenia IP LPM_COMPARE.
Porty LPM_COMPARE
LPM_COMPARE
klken
alba
aeb
danea[]
agb
baza danych []
wiek
zegar
Lub
akl
aleb
instalacja
6.1. Funkcje
Rdzeń IP LPM_COMPARE oferuje następujące funkcje: · Generuje funkcję komparatora do porównywania dwóch zestawów danych · Obsługuje szerokość danych 1 bitów · Obsługuje format reprezentacji danych, taki jak ze znakiem i bez znaku · Generuje następujące typy danych wyjściowych:
— alb (wejście A jest mniejsze niż wejście B) — aeb (wejście A jest równe wejściu B) — agb (wejście A jest większe niż wejście B) — ageb (wejście A jest większe lub równe wejściu B) — aneb ( wejście A nie jest równe wejściu B) — aleb (wejście A jest mniejsze lub równe wejściu B) · Obsługuje opcjonalne asynchroniczne porty wejściowe Clear i Clock Enable · Przypisuje dane wejściowe datab[] do stałej · Obsługuje potokowanie z konfigurowalnym opóźnieniem wyjściowym
Korporacja intelektualna. Wszelkie prawa zastrzeżone. Intel, logo Intel i inne znaki Intel są znakami towarowymi firmy Intel Corporation lub jej podmiotów zależnych. Firma Intel gwarantuje wydajność swoich produktów FPGA i półprzewodników zgodnie z aktualnymi specyfikacjami zgodnie ze standardową gwarancją firmy Intel, ale zastrzega sobie prawo do wprowadzania zmian w dowolnych produktach i usługach w dowolnym czasie bez powiadomienia. Firma Intel nie ponosi żadnej odpowiedzialności wynikającej z zastosowania lub wykorzystania jakichkolwiek informacji, produktów lub usług opisanych w niniejszym dokumencie, z wyjątkiem przypadków wyraźnie uzgodnionych na piśmie przez firmę Intel. Klienci firmy Intel powinni uzyskać najnowszą wersję specyfikacji urządzeń przed poleganiem na jakichkolwiek opublikowanych informacjach oraz przed złożeniem zamówienia na produkty lub usługi. *Inne nazwy i marki mogą być przedmiotem praw osób trzecich.
Zarejestrowany zgodnie z ISO 9001: 2015
6. LPM_COMPARE (Komparator) 683490 | 2020.10.05
6.2. Prototyp Verilog HDL
Poniższy prototyp Verilog HDL znajduje się w Verilog Design File (.v) lpm.v w katalog edasyntezy.
moduł lpm_compare (alb, aeb, agb, aleb, aneb, ageb, dataa, datab, zegar, clken, aclr ); parametr lpm_type = „lpm_compare”; parametr lpm_width = 1; parametr lpm_representation = „UNSIGNED”; parametr lpm_pipeline = 0; parametr lpm_hint = „NIEUŻYWANY”; wprowadź [lpm_width-1:0] danea, daneb; zegar wejściowy; wejście clken; wejście aclr; wyjście alb, aeb, agb, aleb, aneb, ageb; moduł końcowy
6.3. Deklaracja składnika VHDL
Deklaracja komponentu VHDL znajduje się w projekcie VHDL File (.vhd) LPM_PACK.vhd w formacie katalog bibliotekvhdllpm.
składnik LPM_COMPARE rodzajowy (LPM_WIDTH : naturalny;
LPM_REPRESENTATION : string := “UNSIGNED”; LPM_PIPELINE : naturalny := 0; LPM_TYPE: string := L_COMPARE; LPM_HINT: string := “NIEUŻYWANY”); port (DATAA: in std_logic_vector(LPM_WIDTH-1 downto 0); DATAB: in std_logic_vector(LPM_WIDTH-1 downto 0); ACLR: in std_logic:= '0'; CLOCK: in std_logic:= '0'; CLKEN: in std_logic := '1'; AGB: out std_logic; AGEB: out std_logic; AEB: out std_logic; ANEB: out std_logic; ALB: out std_logic; ALEB: out std_logic); element końcowy;
6.4. Deklaracja VHDL LIBRARY_USE
Deklaracja VHDL LIBRARY-USE nie jest wymagana, jeśli używana jest deklaracja składnika VHDL.
BIBLIOTEKA lpm; UŻYJ lpm.lpm_components.all;
6.5. Porty
W poniższych tabelach wymieniono porty wejściowe i wyjściowe rdzenia IP LMP_COMPARE.
Wyślij opinię
Podręcznik użytkownika rdzeni arytmetycznych IP Intel FPGA Integer 27
6. LPM_COMPARE (Komparator) 683490 | 2020.10.05
Tabela 18. Porty wejściowe rdzenia IP LPM_COMPARE
Nazwa portu
Wymagany
Opis
danea[]
Tak
Wprowadzanie danych. Rozmiar portu wejściowego zależy od wartości parametru LPM_WIDTH.
baza danych []
Tak
Wprowadzanie danych. Rozmiar portu wejściowego zależy od wartości parametru LPM_WIDTH.
zegar
NIE
Wejście zegara do użycia potokowego. Port zegara zapewnia wejście zegara dla potoku
operacja. Dla wartości LPM_PIPELINE innych niż 0 (domyślnie) port zegara musi być
włączony.
klken
NIE
Włącz zegar do użycia potokowego. Gdy port clken ma stan wysoki, plik
przeprowadzana jest operacja porównania. Gdy sygnał jest niski, żadna operacja nie jest wykonywana. Jeśli
pominięty, domyślna wartość to 1.
akl
NIE
Asynchroniczne czyszczenie dla użycia potokowego. Potok jest inicjowany do niezdefiniowanej logiki (X).
poziom. Portu aclr można użyć w dowolnym momencie, aby zresetować potok do wszystkich zer,
asynchronicznie do sygnału zegara.
Tabela 19. Porty wyjściowe rdzenia IP LPM_COMPARE
Nazwa portu
Wymagany
Opis
alba
NIE
Port wyjściowy dla komparatora. Potwierdzone, jeśli wejście A jest mniejsze niż wejście B.
aeb
NIE
Port wyjściowy dla komparatora. Potwierdzone, jeśli wejście A jest równe wejściu B.
agb
NIE
Port wyjściowy dla komparatora. Potwierdzone, jeśli wejście A jest większe niż wejście B.
wiek
NIE
Port wyjściowy dla komparatora. Potwierdzone, jeśli wejście A jest większe lub równe wejściu
B.
Lub
NIE
Port wyjściowy dla komparatora. Potwierdzone, jeśli wejście A nie jest równe wejściu B.
aleb
NIE
Port wyjściowy dla komparatora. Potwierdzone, jeśli wejście A jest mniejsze lub równe wejściu B.
6.6. Parametry
W poniższej tabeli wymieniono parametry rdzenia IP LPM_COMPARE.
Tabela 20. Parametry rdzenia IP LPM_COMPARE
Nazwa parametru
Typ
Wymagany
LPM_WIDTH
Liczba całkowita Tak
LPM_REPRESENTACJA
Smyczkowy
NIE
LPM_PIPELINE
liczba całkowita
LPM_WSKAZÓWKA
Smyczkowy
NIE
Opis
Określa szerokość portów dataa[] i datab[].
Określa typ przeprowadzanego porównania. Wartości są PODPISANE i NIEPOZNANE. W przypadku pominięcia wartością domyślną jest UNSIGNED. Gdy wartość tego parametru jest ustawiona na SIGNED, komparator interpretuje wprowadzone dane jako uzupełnienie do dwóch ze znakiem.
Określa liczbę cykli zegara opóźnienia związanych z wyjściem alb, aeb, agb, ageb, aleb lub aneb. Wartość zero (0) wskazuje, że nie istnieje żadne opóźnienie i że zostanie utworzona instancja czysto kombinacyjnej funkcji. W przypadku pominięcia wartością domyślną jest 0 (bez potoku).
Umożliwia określenie parametrów specyficznych dla firmy Intel w projekcie VHDL files (.vhd). Wartość domyślna to NIEUŻYWANE.
dalszy…
Podręcznik użytkownika rdzeni arytmetycznych IP Intel FPGA Integer 28
Wyślij opinię
6. LPM_COMPARE (Komparator) 683490 | 2020.10.05
Nazwa parametru LPM_TYPE INTENDED_DEVICE_FAMILY
ONE_INPUT_IS_CONSTANT
Wpisz ciąg znaków
Smyczkowy
Wymagany nr Nie
NIE
Opis
Identyfikuje nazwę jednostki biblioteki sparametryzowanych modułów (LPM) w projekcie VHDL files.
Ten parametr jest używany do celów modelowania i symulacji behawioralnej. Edytor parametrów oblicza wartość tego parametru.
Parametr specyficzny dla firmy Intel. Musisz użyć parametru LPM_HINT, aby określić parametr ONE_INPUT_IS_CONSTANT w projekcie VHDL fileS. Wartości to TAK, NIE lub NIEUŻYWANE. Zapewnia większą optymalizację, jeśli dane wejściowe są stałe. W przypadku pominięcia wartością domyślną jest NIE.
Wyślij opinię
Podręcznik użytkownika rdzeni arytmetycznych IP Intel FPGA Integer 29
683490 | 2020.10.05 Prześlij opinię
7. ALTECC (kod korekcji błędów: koder/dekoder) rdzeń IP
Rysunek 6.
Firma Intel dostarcza rdzeń ALTECC IP do implementacji funkcji ECC. ECC wykrywa uszkodzone dane, które występują po stronie odbiornika podczas transmisji danych. Ta metoda korekcji błędów najlepiej nadaje się do sytuacji, w których błędy występują losowo, a nie w seriach.
ECC wykrywa błędy w procesie kodowania i dekodowania danych. na przykładampW przypadku zastosowania ECC w aplikacji transmisyjnej dane odczytane ze źródła są kodowane przed wysłaniem do odbiornika. Wyjście (słowo kodowe) z enkodera składa się z nieprzetworzonych danych z dołączoną liczbą bitów parzystości. Dokładna liczba dołączonych bitów parzystości zależy od liczby bitów w danych wejściowych. Wygenerowane słowo kodowe jest następnie przesyłane do miejsca docelowego.
Odbiornik odbiera słowo kodowe i dekoduje je. Informacje uzyskane przez dekoder określają, czy został wykryty błąd. Dekoder wykrywa błędy jednobitowe i dwubitowe, ale może naprawić tylko błędy jednobitowe w uszkodzonych danych. Ten typ ECC to wykrywanie podwójnego błędu z korekcją pojedynczego błędu (SECDED).
Możesz skonfigurować funkcje kodera i dekodera rdzenia ALTECC IP. Dane wejściowe do kodera są kodowane w celu wygenerowania słowa kodowego, które jest kombinacją danych wejściowych i wygenerowanych bitów parzystości. Wygenerowane słowo kodowe jest przesyłane do modułu dekodera w celu dekodowania tuż przed osiągnięciem bloku docelowego. Dekoder generuje wektor syndromu, aby określić, czy w odebranym słowie kodowym występuje jakikolwiek błąd. Dekoder koryguje dane tylko wtedy, gdy błąd pojedynczego bitu pochodzi z bitów danych. Żaden sygnał nie jest oflagowany, jeśli błąd jednobitowy pochodzi z bitów parzystości. Dekoder ma również sygnały flagowe, które pokazują stan odebranych danych i działania podjęte przez dekoder, jeśli takie istnieją.
Poniższe rysunki przedstawiają porty rdzenia ALTECC IP.
Porty kodera ALTECC
ALTECC_ENCODER
dane[]
Q[]
zegar
zegar
akl
instalacja
Korporacja intelektualna. Wszelkie prawa zastrzeżone. Intel, logo Intel i inne znaki Intel są znakami towarowymi firmy Intel Corporation lub jej podmiotów zależnych. Firma Intel gwarantuje wydajność swoich produktów FPGA i półprzewodników zgodnie z aktualnymi specyfikacjami zgodnie ze standardową gwarancją firmy Intel, ale zastrzega sobie prawo do wprowadzania zmian w dowolnych produktach i usługach w dowolnym czasie bez powiadomienia. Firma Intel nie ponosi żadnej odpowiedzialności wynikającej z zastosowania lub wykorzystania jakichkolwiek informacji, produktów lub usług opisanych w niniejszym dokumencie, z wyjątkiem przypadków wyraźnie uzgodnionych na piśmie przez firmę Intel. Klienci firmy Intel powinni uzyskać najnowszą wersję specyfikacji urządzeń przed poleganiem na jakichkolwiek opublikowanych informacjach oraz przed złożeniem zamówienia na produkty lub usługi. *Inne nazwy i marki mogą być przedmiotem praw osób trzecich.
Zarejestrowany zgodnie z ISO 9001: 2015
7. ALTECC (kod korekcji błędów: koder/dekoder) rdzeń IP 683490 | 2020.10.05
Rysunek 7. Porty dekodera ALTECC
ALTECC_DECODER
data[] zegar zegar
q[] err_detected err_corrected
err_fatal
akl
instalacja
7.1. Funkcje kodera ALTECC
Rdzeń IP kodera ALTECC oferuje następujące funkcje: · Wykonuje kodowanie danych przy użyciu schematu kodowania Hamminga · Obsługuje szerokość danych 2 bity · Obsługuje format reprezentacji danych ze znakiem i bez znaku · Obsługuje przesyłanie potokowe z opóźnieniem wyjściowym wynoszącym jeden lub dwa cykle zegara · Obsługuje opcjonalnie asynchroniczne porty Clear i Clock Enable
Rdzeń IP kodera ALTECC pobiera i koduje dane przy użyciu schematu kodowania Hamminga. Schemat kodowania Hamminga wyprowadza bity parzystości i dołącza je do oryginalnych danych w celu wytworzenia wyjściowego słowa kodowego. Liczba dołączonych bitów parzystości zależy od szerokości danych.
W poniższej tabeli wymieniono liczbę bitów parzystości dodanych dla różnych zakresów szerokości danych. Kolumna Total Bits reprezentuje całkowitą liczbę bitów danych wejściowych i dołączonych bitów parzystości.
Tabela 21.
Liczba bitów parzystości i słowo kodowe zgodnie z szerokością danych
Szerokość danych
Liczba bitów parzystości
Całkowita liczba bitów (słowo kodowe)
2-4
3+1
6-8
5-11
4+1
10-16
12-26
5+1
18-32
27-57
6+1
34-64
58-64
7+1
66-72
Wyprowadzenie bitu parzystości wykorzystuje kontrolę parzystości. Dodatkowy 1 bit (pokazany w tabeli jako +1) jest dołączany do bitów parzystości jako MSB słowa kodowego. Zapewnia to, że słowo kodowe ma parzystą liczbę jedynek. na przykładample, jeśli szerokość danych wynosi 4 bity, do danych dodawane są 4 bity parzystości, aby stać się słowem kodowym o łącznej długości 8 bitów. Jeśli 7 bitów z LSB 8-bitowego słowa kodowego ma nieparzystą liczbę jedynek, ósmy bit (MSB) słowa kodowego wynosi 1, co daje parzystą liczbę jedynek w słowie kodowym.
Poniższy rysunek przedstawia wygenerowane słowo kodowe oraz rozmieszczenie bitów parzystości i bitów danych w 8-bitowym wejściu danych.
Wyślij opinię
Podręcznik użytkownika rdzeni arytmetycznych IP Intel FPGA Integer 31
7. ALTECC (kod korekcji błędów: koder/dekoder) rdzeń IP 683490 | 2020.10.05
Rysunek 8.
Bity parzystości i układ bitów danych w 8-bitowym generowanym słowie kodowym
MSB
LSB
4 bity parzystości
4 bitów danych
8
1
Rdzeń IP kodera ALTECC akceptuje jednocześnie tylko szerokości wejściowe od 2 do 64 bitów. Szerokości wejściowe 12 bitów, 29 bitów i 64 bity, które idealnie pasują do urządzeń Intela, generują dane wyjściowe odpowiednio 18 bitów, 36 bitów i 72 bitów. Możesz kontrolować ograniczenie wyboru bitów w edytorze parametrów.
7.2. Prototyp Verilog HDL (ALTECC_ENCODER)
Poniższy prototyp Verilog HDL znajduje się w Verilog Design File (.v) lpm.v w katalog edasyntezy.
moduł altecc_encoder #( parametr zamierzony_device_family = „unused”, parametr lpm_pipeline = 0, parametr width_codeword = 8, parametr width_dataword = 8, parametr lpm_type = „altecc_encoder”, parametr lpm_hint = „unused”) ( wejście przewód aclr, wejście przewód zegar, wejście wire clocken, input wire [width_dataword-1:0] data, output wire [width_codeword-1:0] q); moduł końcowy
7.3. Prototyp Verilog HDL (ALTECC_DECODER)
Poniższy prototyp Verilog HDL znajduje się w Verilog Design File (.v) lpm.v w katalog edasyntezy.
moduł altecc_decoder #(parametr intend_device_family = „unused”, parametr lpm_pipeline = 0, parametr width_codeword = 8, parametr width_dataword = 8, parametr lpm_type = „altecc_decoder”, parametr lpm_hint = „unused”) ( wejście przewód aclr, wejście przewód zegar, wejście wire clocken, input wire [width_codeword-1:0] data, output wire err_corrected, output wire err_detected, outut wire err_fatal, output wire [width_dataword-1:0] q); moduł końcowy
Podręcznik użytkownika rdzeni arytmetycznych IP Intel FPGA Integer 32
Wyślij opinię
7. ALTECC (kod korekcji błędów: koder/dekoder) rdzeń IP 683490 | 2020.10.05
7.4. Deklaracja komponentu VHDL (ALTECC_ENCODER)
Deklaracja komponentu VHDL znajduje się w projekcie VHDL File (.vhd) altera_mf_components.vhd w Libraryvhdlaltera_mf katalog.
komponent altecc_encoder generyczny ( zamierzony_device_family:string := „nieużywany”; lpm_pipeline:natural := 0; width_codeword:natural := 8; width_dataword:natural := 8; lpm_hint:string := „UNUSED”; lpm_type:string := „altecc_encoder ”); port( aclr:in std_logic:= '0'; clock:in std_logic:= '0'; clocken:in std_logic:= '1'; data:in std_logic_vector(width_dataword-1 downto 0); q:out std_logic_vector(width_codeword -1 do 0)); element końcowy;
7.5. Deklaracja składnika VHDL (ALTECC_DECODER)
Deklaracja komponentu VHDL znajduje się w projekcie VHDL File (.vhd) altera_mf_components.vhd w Libraryvhdlaltera_mf katalog.
komponent altecc_decoder generyczny ( zamierzony_rodzina_urządzeń:string := „nieużywany”; lpm_pipeline:natural := 0; width_codeword:natural := 8; width_dataword:natural := 8; lpm_hint:string := „UNUSED”; lpm_type:string := „altecc_decoder ”); port( aclr:in std_logic:= '0'; clock:in std_logic:='0'; clocken:in std_logic:='1'; data:in std_logic_vector(width_codeword-1 downto 0); err_corrected: out std_logic; err_detected : out std_logic; q: out std_logic_vector (width_dataword-1 downto 0); syn_e : out std_logic); element końcowy;
7.6. Deklaracja VHDL LIBRARY_USE
Deklaracja VHDL LIBRARY-USE nie jest wymagana, jeśli używana jest deklaracja składnika VHDL.
BIBLIOTEKA altera_mf; UŻYJ altera_mf.altera_mf_components.all;
7.7. Porty enkodera
W poniższych tabelach wymieniono porty wejściowe i wyjściowe rdzenia IP kodera ALTECC.
Wyślij opinię
Podręcznik użytkownika rdzeni arytmetycznych IP Intel FPGA Integer 33
7. ALTECC (kod korekcji błędów: koder/dekoder) rdzeń IP 683490 | 2020.10.05
Tabela 22. Porty wejściowe kodera ALTECC
Nazwa portu
Wymagany
Opis
dane[]
Tak
Port wprowadzania danych. Rozmiar portu wejściowego zależy od WIDTH_DATAWORD
wartość parametru. Port data[] zawiera nieprzetworzone dane do zakodowania.
zegar
Tak
Port wejściowy zegara, który dostarcza sygnał zegara do synchronizacji operacji kodowania.
Port zegara jest wymagany, gdy wartość LPM_PIPELINE jest większa niż 0.
zegar
NIE
Włącz zegar. W przypadku pominięcia wartością domyślną jest 1.
akl
NIE
Asynchroniczne jasne wejście. Aktywny wysoki sygnał aclr może być użyty w dowolnym momencie
asynchronicznie wyczyścić rejestry.
Tabela 23. Porty wyjściowe kodera ALTECC
Nazwa portu q[]
Wymagane Tak
Opis
Zakodowany port wyjściowy danych. Rozmiar portu wyjściowego zależy od wartości parametru WIDTH_CODEWORD.
7.8. Porty dekodera
W poniższych tabelach wymieniono porty wejściowe i wyjściowe rdzenia IP dekodera ALTECC.
Tabela 24. Porty wejściowe dekodera ALTECC
Nazwa portu
Wymagany
Opis
dane[]
Tak
Port wprowadzania danych. Rozmiar portu wejściowego zależy od wartości parametru WIDTH_CODEWORD.
zegar
Tak
Port wejściowy zegara, który dostarcza sygnał zegara do synchronizacji operacji kodowania. Port zegara jest wymagany, gdy wartość LPM_PIPELINE jest większa niż 0.
zegar
NIE
Włącz zegar. W przypadku pominięcia wartością domyślną jest 1.
akl
NIE
Asynchroniczne jasne wejście. Aktywny wysoki sygnał aclr może być użyty w dowolnym momencie do asynchronicznego wyczyszczenia rejestrów.
Tabela 25. Porty wyjściowe dekodera ALTECC
Nazwa portu q[]
Wymagane Tak
Opis
Dekodowany port wyjściowy danych. Rozmiar portu wyjściowego zależy od wartości parametru WIDTH_DATAWORD.
err_detected Tak
Sygnał flagowy odzwierciedlający stan otrzymanych danych i określający znalezione błędy.
err_correcte Tak d
Sygnał flagowy odzwierciedlający stan odebranych danych. Oznacza znaleziony i naprawiony błąd jednobitowy. Możesz użyć danych, ponieważ zostały już poprawione.
err_fatal
Tak
Sygnał flagowy odzwierciedlający stan odebranych danych. Oznacza, że znaleziono błąd dwubitowy, ale nie został on naprawiony. Nie możesz używać danych, jeśli ten sygnał zostanie potwierdzony.
syn_e
NIE
Sygnał wyjściowy, który będzie wysoki, gdy zostanie wykryty błąd jednobitowy parzystości
bity.
7.9. Parametry enkodera
W poniższej tabeli wymieniono parametry rdzenia IP kodera ALTECC.
Podręcznik użytkownika rdzeni arytmetycznych IP Intel FPGA Integer 34
Wyślij opinię
7. ALTECC (kod korekcji błędów: koder/dekoder) rdzeń IP 683490 | 2020.10.05
Tabela 26. Parametry enkodera ALTECC
Nazwa parametru
Typ
Wymagany
Opis
WIDTH_DATAWORD
Liczba całkowita Tak
Określa szerokość nieprzetworzonych danych. Wartości mieszczą się w zakresie od 2 do 64. W przypadku pominięcia wartością domyślną jest 8.
WIDTH_CODEWORD
Liczba całkowita Tak
Określa szerokość odpowiedniego słowa kodowego. Prawidłowe wartości to od 6 do 72, z wyłączeniem 9, 17, 33 i 65. W przypadku pominięcia wartością domyślną jest 13.
LPM_PIPELINE
liczba całkowita
Określa potok dla obwodu. Wartości mieszczą się w zakresie od 0 do 2. Jeśli wartość wynosi 0, porty nie są zarejestrowane. Jeśli wartość wynosi 1, porty wyjściowe są zarejestrowane. Jeśli wartość wynosi 2, rejestrowane są porty wejściowe i wyjściowe. W przypadku pominięcia wartością domyślną jest 0.
7.10. Parametry dekodera
Poniższa tabela zawiera podstawowe parametry IP dekodera ALTECC.
Tabela 27. Parametry dekodera ALTECC
Nazwa parametru WIDTH_DATAWORD
Wpisz liczbę całkowitą
Wymagany
Opis
Tak
Określa szerokość nieprzetworzonych danych. Wartości wynoszą od 2 do 64. The
wartość domyślna to 8.
WIDTH_CODEWORD
Liczba całkowita
Tak
Określa szerokość odpowiedniego słowa kodowego. Wartości to 6
do 72, z wyłączeniem 9, 17, 33 i 65. W przypadku pominięcia wartość domyślna
wynosi 13.
LPM_PIPELINE
Liczba całkowita
NIE
Określa rejestr obwodu. Wartości mieszczą się w zakresie od 0 do 2. Jeśli
wartość wynosi 0, żaden rejestr nie jest zaimplementowany. Jeśli wartość wynosi 1, to
wyjście jest zarejestrowane. Jeśli wartość wynosi 2, zarówno dane wejściowe, jak i
wyjścia są rejestrowane. Jeśli wartość jest większa niż 2, dodatkowe
rejestry są zaimplementowane na wyjściu dla dodatkowego
opóźnienia. W przypadku pominięcia wartością domyślną jest 0.
Utwórz port „syn_e”.
Liczba całkowita
NIE
Włącz ten parametr, aby utworzyć port syn_e.
Wyślij opinię
Podręcznik użytkownika rdzeni arytmetycznych IP Intel FPGA Integer 35
683490 | 2020.10.05 Prześlij opinię
8. Rdzeń IP Intel FPGA Multiply Adder
Rysunek 9.
Rdzeń IP Intel FPGA Multiply Adder (urządzenia Intel Stratix 10, Intel Arria 10 i Intel Cyclone 10 GX) lub ALTERA_MULT_ADD (urządzenia Arria V, Stratix V i Cyclone V) umożliwia implementację sumatora mnożnika.
Poniższy rysunek przedstawia porty dla Intel FPGA Multiply Adder lub ALTERA_MULT_ADD IP core.
Porty Intel FPGA Multiply Adder lub ALTERA_MULT_ADD
Intel FPGA Multiply Adder lub ALTERA_MULT_ADD
dataa[] signa datab[] signb datac[] coefsel0[] coefsel1[] coefsel2[] coefsel3[] addnsub1 addnsub3 aclr/sclr[] scanina[] clock0 clock1 clock2 ena0 ena1 ena2 sload_accum
accum_sload chainin []
scanouta[] wynik[]
aclr0 aclr1
instalacja
Mnożnik-dodatek akceptuje pary danych wejściowych, mnoży wartości razem, a następnie dodaje lub odejmuje od iloczynów wszystkich innych par.
Jeśli wszystkie szerokości danych wejściowych mają szerokość 9 bitów lub mniejszą, funkcja wykorzystuje konfigurację mnożnika wejściowego 9 x 9 bitów w bloku DSP dla urządzeń obsługujących konfigurację 9 x 9. Jeśli nie, blok DSP wykorzystuje mnożniki wejściowe 18 × 18 bitów do przetwarzania danych o szerokości od 10 do 18 bitów. Jeśli w projekcie występuje wiele rdzeni Intel FPGA Multiply Adder lub ALTERA_MULT_ADD IP, funkcje są rozdzielane na
Korporacja intelektualna. Wszelkie prawa zastrzeżone. Intel, logo Intel i inne znaki Intel są znakami towarowymi firmy Intel Corporation lub jej podmiotów zależnych. Firma Intel gwarantuje wydajność swoich produktów FPGA i półprzewodników zgodnie z aktualnymi specyfikacjami zgodnie ze standardową gwarancją firmy Intel, ale zastrzega sobie prawo do wprowadzania zmian w dowolnych produktach i usługach w dowolnym czasie bez powiadomienia. Firma Intel nie ponosi żadnej odpowiedzialności wynikającej z zastosowania lub wykorzystania jakichkolwiek informacji, produktów lub usług opisanych w niniejszym dokumencie, z wyjątkiem przypadków wyraźnie uzgodnionych na piśmie przez firmę Intel. Klienci firmy Intel powinni uzyskać najnowszą wersję specyfikacji urządzeń przed poleganiem na jakichkolwiek opublikowanych informacjach oraz przed złożeniem zamówienia na produkty lub usługi. *Inne nazwy i marki mogą być przedmiotem praw osób trzecich.
Zarejestrowany zgodnie z ISO 9001: 2015
8. Dodatek mnożący Intel FPGA IP Core 683490 | 2020.10.05
jak najwięcej różnych bloków DSP, aby routing do tych bloków był bardziej elastyczny. Mniej mnożników na blok DSP pozwala na większy wybór tras do bloku poprzez minimalizację ścieżek do reszty urządzenia.
Wewnątrz bloku DSP umieszczone są również rejestry i dodatkowe rejestry potokowe dla następujących sygnałów: · Wprowadzanie danych · Wybór ze znakiem lub bez znaku · Wybór z dodawaniem lub odejmowaniem · Iloczyn mnożników
W przypadku wyniku wyjściowego pierwszy rejestr umieszczany jest w bloku DSP. Jednak dodatkowe rejestry latencji są umieszczane w elementach logicznych poza blokiem. Urządzenia peryferyjne do bloku DSP, w tym wejścia danych do mnożnika, wejścia sygnałów sterujących i wyjścia sumatora, używają regularnego trasowania do komunikacji z resztą urządzenia. Wszystkie połączenia w tej funkcji korzystają z dedykowanego routingu wewnątrz bloku DSP. Ten dedykowany routing obejmuje łańcuchy rejestrów przesuwnych, gdy wybierzesz opcję przesunięcia zarejestrowanych danych wejściowych mnożnika z jednego mnożnika do sąsiedniego mnożnika.
Więcej informacji na temat bloków DSP w urządzeniach z serii Stratix V i Arria V można znaleźć w rozdziale Bloki DSP odpowiednich podręczników na stronie Literatura i dokumentacja techniczna.
Informacje pokrewne AN 306: Implementacja mnożników w urządzeniach FPGA
Zawiera więcej informacji na temat implementacji mnożników przy użyciu DSP i bloków pamięci w urządzeniach Intel FPGA.
8.1. Funkcje
Intel FPGA Multiply Adder lub rdzeń IP ALTERA_MULT_ADD oferuje następujące funkcje: · Generuje mnożnik do wykonywania operacji mnożenia dwóch złożonych
liczby Uwaga: Podczas budowania mnożników większych niż natywnie obsługiwany rozmiar może/
będzie miało wpływ na wydajność wynikający z kaskadowania bloków DSP. · Obsługuje dane o szerokości 1 256 bitów · Obsługuje format reprezentacji danych ze znakiem i bez znaku · Obsługuje przetwarzanie potokowe z konfigurowalnym opóźnieniem wejścia · Zapewnia opcję dynamicznego przełączania między obsługą danych ze znakiem i bez znaku · Zapewnia opcję dynamicznego przełączania między operacjami dodawania i odejmowania · Obsługuje opcjonalne asynchroniczne i synchroniczne porty kasowania i włączania zegara · Obsługuje tryb rejestru opóźnienia skurczowego · Obsługuje sumator wstępny z 8 współczynnikami obciążenia wstępnego na mnożnik · Obsługuje stałą obciążenia wstępnego w celu uzupełnienia sprzężenia zwrotnego z akumulatora
Wyślij opinię
Podręcznik użytkownika rdzeni arytmetycznych IP Intel FPGA Integer 37
8. Dodatek mnożący Intel FPGA IP Core 683490 | 2020.10.05
8.1.1. Dodatek wstępny
W przypadku dodawania wstępnego dodawanie lub odejmowanie jest wykonywane przed podaniem mnożnika.
Dostępnych jest pięć trybów przed dodawaniem: · Tryb prosty · Tryb współczynników · Tryb wprowadzania · Tryb kwadratowy · Tryb stały
Notatka:
Gdy stosowany jest dodawanie wstępne (współczynnik przed dodawaniem/tryb wejściowy/kwadratowy), wszystkie dane wejściowe do mnożnika muszą mieć takie same ustawienia zegara.
8.1.1.1. Tryb prosty przed dodaniem
W tym trybie oba operandy pochodzą z portów wejściowych, a sumator wstępny nie jest używany ani pomijany. To jest tryb domyślny.
Rysunek 10. Tryb prosty przed dodaniem
a0 b0
Wiele0
wynik
8.1.1.2. Tryb współczynnika przed dodawaniem
W tym trybie jeden operand mnożnika pochodzi z pre-sumatora, a drugi operand pochodzi z wewnętrznej pamięci współczynników. Przechowywanie współczynników pozwala na zapisanie do 8 stałych stałych. Sygnałami wyboru współczynnika są coefsel[0..3].
Ten tryb jest wyrażony w następującym równaniu.
Poniżej przedstawiono tryb współczynnika przed dodaniem mnożnika.
Rysunek 11. Tryb współczynnika przed dodaniem
Predator
a0
Wiele0
+/-
wynik
b0
coefsel0 współczynnik
Podręcznik użytkownika rdzeni arytmetycznych IP Intel FPGA Integer 38
Wyślij opinię
8. Dodatek mnożący Intel FPGA IP Core 683490 | 2020.10.05
8.1.1.3. Tryb wprowadzania przed dodawaniem W tym trybie jeden operand mnożenia pochodzi z przeddodawania, a drugi operand pochodzi od portu wejściowego datac[]. Ten tryb jest wyrażony w następującym równaniu.
Poniżej przedstawiono tryb wprowadzania przed dodawaniem mnożnika.
Rysunek 12. Tryb wprowadzania przed dodawaniem
a0 b0
Wiele0
+/-
wynik
c0
8.1.1.4. Tryb kwadratowy przed dodaniem Ten tryb jest wyrażony w następującym równaniu.
Poniżej przedstawiono tryb kwadratowy przed dodawaniem dwóch mnożników.
Rysunek 13. Tryb kwadratowy przed dodawaniem
a0 b0
Wiele0
+/-
wynik
8.1.1.5. Tryb stały przed dodawaniem
W tym trybie jeden operand mnożenia pochodzi z portu wejściowego, a drugi operand pochodzi z wewnętrznej pamięci współczynników. Przechowywanie współczynników pozwala na zapisanie do 8 stałych stałych. Sygnałami wyboru współczynnika są coefsel[0..3].
Ten tryb jest wyrażony w następującym równaniu.
Wyślij opinię
Podręcznik użytkownika rdzeni arytmetycznych IP Intel FPGA Integer 39
8. Dodatek mnożący Intel FPGA IP Core 683490 | 2020.10.05
Poniższy rysunek przedstawia tryb stałej przed dodawaniem mnożnika.
Rysunek 14. Tryb stały przed dodawaniem
a0
Wiele0
wynik
coefsel0
współczynnik
8.1.2. Rejestr opóźnienia skurczowego
W architekturze skurczowej dane wejściowe są wprowadzane do kaskady rejestrów pełniących rolę bufora danych. Każdy rejestr dostarcza wejście sample do mnożnika, w którym jest on mnożony przez odpowiedni współczynnik. Sumator łańcucha przechowuje stopniowo łączone wyniki z mnożnika i poprzednio zarejestrowany wynik z portu wejściowego chainin[], aby utworzyć wynik końcowy. Każdy element mnożenia i dodawania musi być opóźniony o jeden cykl, aby wyniki po dodaniu zostały odpowiednio zsynchronizowane. Każde kolejne opóźnienie jest wykorzystywane do adresowania zarówno pamięci współczynników, jak i bufora danych odpowiednich elementów mnożenia i dodawania. na przykładample, pojedyncze opóźnienie dla drugiego elementu mnożenia i dodawania, dwa opóźnienia dla trzeciego elementu mnożenia i dodawania i tak dalej.
Rycina 15. Rejestry skurczowe
Rejestry skurczowe
x(t) c(0)
S-1
S-1
c(1)
S-1
S-1
c(2)
S-1
S-1
c(N-1)
S-1
S-1
S-1
S-1 y(t)
x(t) reprezentuje wyniki z ciągłego strumienia danych wejściowych samples i y(t)
reprezentuje sumę zbioru danych wejściowych samples iw czasie, pomnożone przez ich
odpowiednie współczynniki. Zarówno wyniki wejściowe, jak i wyjściowe przepływają od lewej do prawej. c(0) do c(N-1) oznacza współczynniki. Rejestry opóźnienia skurczowego są oznaczone przez S-1, podczas gdy 1 reprezentuje pojedyncze opóźnienie zegara. Rejestry opóźnienia skurczowego są dodawane o godz
wejścia i wyjścia dla potokowania w sposób, który zapewnia wyniki z
operand mnożnika i skumulowane sumy pozostają zsynchronizowane. Ten element przetwarzający
jest replikowany w celu utworzenia obwodu, który oblicza funkcję filtrującą. Ta funkcja jest
wyrażone w poniższym równaniu.
Podręcznik użytkownika rdzeni arytmetycznych IP Intel FPGA Integer 40
Wyślij opinię
8. Dodatek mnożący Intel FPGA IP Core 683490 | 2020.10.05
N reprezentuje liczbę cykli danych, które weszły do akumulatora, y(t) reprezentuje wyjście w czasie t, A(t) reprezentuje wejście w czasie t, a B(i) to współczynniki. T i i w równaniu odpowiadają określonej chwili w czasie, aby obliczyć wyjście sample y(t) w czasie t, grupa wejść samples w N różnych punktach w czasie lub wymagane jest A(n), A(n-1), A(n-2), … A(n-N+1). Grupa N wejść samples są mnożone przez N współczynników i sumowane razem, aby uzyskać końcowy wynik y.
Architektura rejestru skurczowego jest dostępna tylko dla trybów sumy 2 i sumy 4. Dla obu trybów architektury rejestru skurczowego pierwszy sygnał łańcuchowy musi być powiązany z 0.
Poniższy rysunek przedstawia implementację rejestru opóźnienia skurczowego dla 2 mnożników.
Rysunek 16. Implementacja rejestru opóźnienia skurczowego z 2 mnożnikami
łańcuch
a0
Wiele0
+/-
b0
a1
Wiele1
+/-
b1
wynik
Suma dwóch mnożników jest wyrażona w następującym równaniu.
Poniższy rysunek przedstawia implementację rejestru opóźnienia skurczowego dla 4 mnożników.
Wyślij opinię
Podręcznik użytkownika rdzeni arytmetycznych IP Intel FPGA Integer 41
8. Dodatek mnożący Intel FPGA IP Core 683490 | 2020.10.05
Rysunek 17. Implementacja rejestru opóźnienia skurczowego z 4 mnożnikami
łańcuch
a0
Wiele0
+/-
b0
a1
Wiele1
+/-
b1
a2
Wiele2
+/-
b2
a3
Wiele3
+/-
b3
wynik
Suma czterech mnożników jest wyrażona w następującym równaniu. Rysunek 18. Suma 4 mnożników
Poniżej wymieniono advantages implementacji rejestru skurczowego: · Zmniejsza zużycie zasobów DSP · Umożliwia wydajne mapowanie w bloku DSP z wykorzystaniem struktury sumatora łańcuchowego
Podręcznik użytkownika rdzeni arytmetycznych IP Intel FPGA Integer 42
Wyślij opinię
8. Dodatek mnożący Intel FPGA IP Core 683490 | 2020.10.05
8.1.3. Stała obciążenia wstępnego
Stała obciążenia wstępnego kontroluje operand akumulatora i uzupełnia sprzężenie zwrotne akumulatora. Prawidłowa wartość KONSTANCJI_WYMIARÓW mieści się w zakresie od 0. Wartość stała jest równa 64N, gdzie N = WARTOŚĆ_KOŃCÓWEK. Gdy LOADCONST_VALUE jest ustawione na 2, stała wartość jest równa 64. Tej funkcji można użyć jako zaokrąglenia z odchyleniem.
Poniższy rysunek przedstawia implementację stałej obciążenia wstępnego.
Rysunek 19. Stała obciążenia wstępnego
Sprzężenie zwrotne akumulatora
stały
a0
Wiele0
+/-
b0
a1
Wiele1
+/b1
wynik
accum_sładuj sload_accum
Zobacz następujące rdzenie IP dla innych implementacji mnożnika: · ALTMULT_ACCUM · ALTMEMMULT · LPM_MULT
8.1.4. Podwójny akumulator
Funkcja podwójnego akumulatora dodaje dodatkowy rejestr w ścieżce sprzężenia zwrotnego akumulatora. Rejestr podwójnego akumulatora następuje po rejestrze wyjściowym, który zawiera zegar, włączenie zegara i aclr. Dodatkowy rejestr akumulatorów zwraca wynik z jednocyklowym opóźnieniem. Ta funkcja umożliwia posiadanie dwóch kanałów akumulatorów o tej samej liczbie zasobów.
Poniższy rysunek przedstawia implementację podwójnego akumulatora.
Wyślij opinię
Podręcznik użytkownika rdzeni arytmetycznych IP Intel FPGA Integer 43
8. Dodatek mnożący Intel FPGA IP Core 683490 | 2020.10.05
Rysunek 20. Podwójny akumulator
Podwójny rejestr akumulatorów
Sprzężenie zwrotne akumulatora
a0
Wiele0
+/-
b0
a1
Wiele1
+/b1
Wynik wyjściowy Rejestr wyjściowy
8.2. Prototyp Verilog HDL
Możesz znaleźć prototyp Intel FPGA Multiply Adder lub ALTERA_MULT_ADD Verilog HDL file (altera_mult_add_rtl.v) w katalog bibliotek megafunkcyjnych.
8.3. Deklaracja składnika VHDL
Deklaracja komponentu VHDL znajduje się w pliku altera_lnsim_components.vhd w pliku Libraryvhdl katalog altera_lnsim.
8.4. Deklaracja VHDL LIBRARY_USE
Deklaracja VHDL LIBRARY-USE nie jest wymagana, jeśli używana jest deklaracja składnika VHDL.
BIBLIOTEKA altera_mf; UŻYJ altera_mf.altera_mf_components.all;
8.5. Sygnały
W poniższych tabelach wymieniono sygnały wejściowe i wyjściowe rdzenia IP Multiply Adder Intel FPGA IP lub ALTERA_MULT_ADD.
Tabela 28. Mnożenie sygnałów wejściowych Intel FPGA IPor ALTERA_MULT_ADD
Sygnał
Wymagany
Opis
danea_0[]/danea_1[]/
Tak
danea_2[]/danea_3[]
Wprowadzanie danych do mnożnika. Port wejściowy [NUMBER_OF_MULTIPLIERS * WIDTH_A – 1 … 0] szeroki
dalszy…
Podręcznik użytkownika rdzeni arytmetycznych IP Intel FPGA Integer 44
Wyślij opinię
8. Dodatek mnożący Intel FPGA IP Core 683490 | 2020.10.05
Sygnał datab_0[]/datab_1[]/ datab_2[]/datab_3[] datac_0[] /datac_1[]/ datac_2[]/datac_3[] clock[1:0] aclr[1:0] sclr[1:0] ena [1:0] sygn
znakb
scanina[] accum_sload
Wymagane Tak Nie
Nie nie nie nie nie
NIE
Nie Nie
Opis
Model symulacyjny dla tego IP obsługuje nieokreśloną wartość wejściową (X) dla tych sygnałów. Gdy podasz wartość X do tych sygnałów, wartość X jest propagowana na sygnałach wyjściowych.
Wprowadzanie danych do mnożnika. Sygnał wejściowy [NUMBER_OF_MULTIPLIERS * WIDTH_B – 1 … 0] szeroki Model symulacyjny dla tego IP obsługuje nieokreśloną wartość wejściową (X) dla tych sygnałów. Gdy podasz wartość X do tych sygnałów, wartość X jest propagowana na sygnałach wyjściowych.
Wprowadzanie danych do mnożnika. Sygnał wejściowy [NUMBER_OF_MULTIPLIERS * WIDTH_C – 1, … 0] szeroki Wybierz INPUT dla parametru Wybierz tryb dodawania wstępnego, aby włączyć te sygnały. Model symulacyjny dla tego IP obsługuje nieokreśloną wartość wejściową (X) dla tych sygnałów. Gdy podasz wartość X do tych sygnałów, wartość X jest propagowana na sygnałach wyjściowych.
Port wejściowy zegara do odpowiedniego rejestru. Sygnał ten może być wykorzystany przez dowolny rejestr w rdzeniu IP. Model symulacyjny dla tego IP obsługuje nieokreśloną wartość wejściową (X) dla tych sygnałów. Gdy podasz wartość X do tych sygnałów, wartość X jest propagowana na sygnałach wyjściowych.
Asynchroniczne jasne wejście do odpowiedniego rejestru. Model symulacyjny dla tego IP obsługuje nieokreśloną wartość wejściową (X) dla tych sygnałów. Gdy podasz wartość X do tych sygnałów, wartość X jest propagowana na sygnałach wyjściowych.
Synchroniczne jasne wejście do odpowiedniego rejestru. Model symulacyjny dla tego IP obsługuje nieokreśloną wartość wejściową X dla tych sygnałów. Gdy podasz wartość X do tych sygnałów, wartość X jest propagowana na sygnałach wyjściowych
Włącz wejście sygnału do odpowiedniego rejestru. Model symulacyjny dla tego IP obsługuje nieokreśloną wartość wejściową (X) dla tych sygnałów. Gdy podasz wartość X do tych sygnałów, wartość X jest propagowana na sygnałach wyjściowych.
Określa numeryczną reprezentację wejścia A mnożnika. Jeśli sygnał signa jest wysoki, mnożnik traktuje sygnał wejścia A mnożnika jako liczbę ze znakiem. Jeśli sygnał signa jest niski, mnożnik traktuje sygnał wejścia A mnożnika jako liczbę bez znaku. Wybierz ZMIENNA dla parametru Jaki jest format reprezentacji dla wejść Mnożniki A, aby włączyć ten sygnał. Model symulacyjny dla tego IP obsługuje nieokreśloną wartość wejściową (X) tego sygnału. Gdy podasz wartość X na to wejście, wartość X jest propagowana na sygnałach wyjściowych.
Określa numeryczną reprezentację sygnału wejściowego B mnożnika. Jeśli sygnał signb jest wysoki, mnożnik traktuje sygnał wejściowy B mnożnika jako liczbę dopełnienia dwójki ze znakiem. Jeśli sygnał signb jest niski, mnożnik traktuje sygnał wejściowy B mnożnika jako liczbę bez znaku. Model symulacyjny dla tego IP obsługuje nieokreśloną wartość wejściową (X) tego sygnału. Gdy podasz wartość X na to wejście, wartość X jest propagowana na sygnałach wyjściowych.
Wejście dla łańcucha skanowania A. Sygnał wejściowy [WIDTH_A – 1, … 0] szeroki. Gdy parametr INPUT_SOURCE_A ma wartość SCANA, wymagany jest sygnał scanina[].
Dynamicznie określa, czy wartość akumulatora jest stała. Jeśli sygnał accum_sload jest niski, to wyjście mnożnika jest ładowane do akumulatora. Nie używaj jednocześnie accum_sload i sload_accum.
dalszy…
Wyślij opinię
Podręcznik użytkownika rdzeni arytmetycznych IP Intel FPGA Integer 45
8. Dodatek mnożący Intel FPGA IP Core 683490 | 2020.10.05
Ładowanie_akum sygnału
chainin[] dodateksub1
dodateksub3
coefsel0[] coefsel1[] coefsel2[] coefsel3[]
Wymagany nr
Nie Nie
NIE
Nie nie nie nie
Opis
Model symulacyjny dla tego IP obsługuje nieokreśloną wartość wejściową (X) tego sygnału. Gdy podasz wartość X na to wejście, wartość X jest propagowana na sygnałach wyjściowych.
Dynamicznie określa, czy wartość akumulatora jest stała. Jeśli sygnał sload_accum jest wysoki, to wyjście mnożnika jest ładowane do akumulatora. Nie używaj jednocześnie accum_sload i sload_accum. Model symulacyjny dla tego IP obsługuje nieokreśloną wartość wejściową (X) tego sygnału. Gdy podasz wartość X na to wejście, wartość X jest propagowana na sygnałach wyjściowych.
Magistrala wejściowa sumatora wyniku z poprzedniego stagmi. Sygnał wejściowy [WIDTH_CHAININ – 1, … 0] szeroki.
Wykonaj dodawanie lub odejmowanie wyjść z pierwszej pary mnożników. Wejście 1 do sygnału addnsub1, aby dodać wyjścia z pierwszej pary mnożników. Wprowadź 0 do sygnału addnsub1, aby odjąć wyjścia od pierwszej pary mnożników. Model symulacyjny dla tego IP obsługuje nieokreśloną wartość wejściową (X) tego sygnału. Gdy podasz wartość X na to wejście, wartość X jest propagowana na sygnałach wyjściowych.
Wykonaj dodawanie lub odejmowanie wyjść z pierwszej pary mnożników. Wejście 1 do sygnału addnsub3 w celu dodania wyjść z drugiej pary mnożników. Wprowadź 0 do sygnału addnsub3, aby odjąć wyjścia od pierwszej pary mnożników. Model symulacyjny dla tego IP obsługuje nieokreśloną wartość wejściową (X) tego sygnału. Gdy podasz wartość X na to wejście, wartość X jest propagowana na sygnałach wyjściowych.
Współczynnik sygnału wejściowego [0:3] do pierwszego mnożnika. Model symulacyjny dla tego IP obsługuje nieokreśloną wartość wejściową (X) tego sygnału. Gdy podasz wartość X na to wejście, wartość X jest propagowana na sygnałach wyjściowych.
Współczynnik sygnału wejściowego [0:3] do drugiego mnożnika. Model symulacyjny dla tego IP obsługuje nieokreśloną wartość wejściową (X) tego sygnału. Gdy podasz wartość X na to wejście, wartość X jest propagowana na sygnałach wyjściowych.
Współczynnik sygnału wejściowego [0:3] do trzeciego mnożnika. Model symulacyjny dla tego IP obsługuje nieokreśloną wartość wejściową (X) tego sygnału. Gdy podasz wartość X na to wejście, wartość X jest propagowana na sygnałach wyjściowych.
Współczynnik sygnału wejściowego [0:3] do czwartego mnożnika. Model symulacyjny dla tego IP obsługuje nieokreśloną wartość wejściową (X) tego sygnału. Gdy podasz wartość X na to wejście, wartość X jest propagowana na sygnałach wyjściowych.
Tabela 29. Pomnóż sumator sygnałów wyjściowych Intel FPGA IP
Sygnał
Wymagany
Opis
wynik []
Tak
Sygnał wyjściowy mnożnika. Sygnał wyjściowy [WIDTH_RESULT – 1 … 0] szeroki
Model symulacyjny dla tego IP obsługuje nieokreśloną wartość wyjściową (X). Gdy podasz wartość X jako dane wejściowe, wartość X jest propagowana w tym sygnale.
skanout []
NIE
Wyjście łańcucha skanowania A. Sygnał wyjściowy [WIDTH_A – 1..0] szeroki.
Wybierz więcej niż 2 dla liczby mnożników i wybierz Wejście łańcucha skanowania dla parametru Jakie jest wejście A mnożnika podłączonego do parametru, aby włączyć ten sygnał.
Podręcznik użytkownika rdzeni arytmetycznych IP Intel FPGA Integer 46
Wyślij opinię
8. Dodatek mnożący Intel FPGA IP Core 683490 | 2020.10.05
8.6. Parametry
8.6.1. Zakładka Ogólne
Tabela 30. Zakładka Ogólne
Parametr
Parametr generowany przez adres IP
Wartość
Jaka jest liczba mnożników?
liczba_m 1 – 4 mnożniki
Jak szerokie powinny być szyny wejściowe A width_a?
1 – 256
Jak szerokie powinny być szyny wejściowe B width_b?
1 – 256
Jak szeroka powinna być szyna wyjściowa „wynik”?
szerokość_wynik
1 – 256
Utwórz powiązane włączenie zegara dla każdego zegara
gui_associate Włącz d_clock_enbl Wyłącz e
8.6.2. Zakładka Tryby dodatkowe
Tabela 31. Zakładka Tryby dodatkowe
Parametr
Parametr generowany przez adres IP
Wartość
Konfiguracja wyjść
Zarejestruj wyjście sumatora
gui_output_re Wł
rejestrować
Wyłączony
Jakie jest źródło sygnału wejściowego zegara?
gui_output_re gister_clock
Zegar0 Zegar1 Zegar2
Jakie jest źródło asynchronicznego czystego wejścia?
gui_output_re gister_aclr
BRAK ACLR0 ACLR1
Jakie jest źródło synchronicznego czystego wejścia?
gui_output_re gister_sclr
BRAK SCLR0 SCLR1
Operacja sumatora
Jaką operację należy wykonać na wyjściach pierwszej pary mnożników?
gui_mnożnik 1_kierunek
DODAJ, SUB, ZMIENNĄ
Wartość domyślna 1
16
Opis
Liczba mnożników do dodania. Wartości od 1 do 4. Określ szerokość portu dataa[].
16
Określ szerokość portu datab[].
32
Określ szerokość portu wynikowego [].
Wyłączony
Wybierz tę opcję, aby włączyć zegar
dla każdego zegara.
Wartość domyślna
Opis
wyłączony zegar0
ŻADEN ŻADEN
Wybierz tę opcję, aby włączyć rejestr wyjściowy modułu sumującego.
Wybierz Clock0 , Clock1 lub Clock2, aby włączyć i określić źródło zegara dla rejestrów wyjściowych. Aby włączyć ten parametr, należy wybrać opcję Zarejestruj wyjście modułu sumującego.
Określa asynchroniczne czyste źródło dla rejestru wyjściowego sumatora. Aby włączyć ten parametr, należy wybrać opcję Zarejestruj wyjście modułu sumującego.
Określa synchroniczne źródło zerowania dla rejestru wyjściowego sumatora. Aby włączyć ten parametr, należy wybrać opcję Zarejestruj wyjście modułu sumującego.
DODAĆ
Wybierz operację dodawania lub odejmowania do wykonania dla wyjść między pierwszym a drugim mnożnikiem.
· Wybierz DODAJ, aby wykonać operację dodawania.
· Wybierz SUB, aby wykonać operację odejmowania.
· Wybierz VARIABLE, aby użyć portu addnsub1 do dynamicznego sterowania dodawaniem/odejmowaniem.
dalszy…
Wyślij opinię
Podręcznik użytkownika rdzeni arytmetycznych IP Intel FPGA Integer 47
8. Dodatek mnożący Intel FPGA IP Core 683490 | 2020.10.05
Parametr
Parametr generowany przez adres IP
Wartość
Zarejestruj wejście „addnsub1”.
gui_addnsub_ On multiplier_reg Off isster1
Jakie jest źródło sygnału wejściowego zegara?
gui_addnsub_multiplier_reg ister1_clock
Zegar0 Zegar1 Zegar2
Jakie jest źródło asynchronicznego czystego wejścia?
gui_addnsub_ multiplier_aclr 1
BRAK ACLR0 ACLR1
Jakie jest źródło synchronicznego czystego wejścia?
gui_addnsub_ multiplier_sclr 1
BRAK SCLR0 SCLR1
Jaką operację należy wykonać na wyjściach drugiej pary mnożników?
gui_mnożnik 3_kierunek
DODAJ, SUB, ZMIENNĄ
Zarejestruj wejście „addnsub3”.
gui_addnsub_ On multiplier_reg Off isster3
Jakie jest źródło sygnału wejściowego zegara?
gui_addnsub_multiplier_reg ister3_clock
Zegar0 Zegar1 Zegar2
Wartość domyślna
Off Clock0 BRAK BRAK DODAJ
wyłączony zegar0
Opis
Gdy wybrana jest wartość VARIABLE: · Ustaw sygnał addnsub1 na wysoki dla
operacja dodawania. · Ustaw sygnał addnsub1 na niski dla
operacja odejmowania. Musisz wybrać więcej niż dwa mnożniki, aby włączyć ten parametr.
Wybierz tę opcję, aby włączyć rejestr wejściowy dla portu addnsub1. Musisz wybrać ZMIENNA dla Jaka operacja ma zostać wykonana na wyjściach pierwszej pary mnożników, aby włączyć ten parametr.
Wybierz Clock0 , Clock1 lub Clock2, aby określić wejściowy sygnał zegarowy dla rejestru addnsub1. Aby włączyć ten parametr, należy wybrać opcję Zarejestruj wejście „addnsub1”.
Określa asynchroniczne czyste źródło dla rejestru addnsub1. Aby włączyć ten parametr, należy wybrać opcję Zarejestruj wejście „addnsub1”.
Określa synchroniczne czyste źródło dla rejestru addnsub1. Aby włączyć ten parametr, należy wybrać opcję Zarejestruj wejście „addnsub1”.
Wybierz operację dodawania lub odejmowania do wykonania dla wyjść między trzecim a czwartym mnożnikiem. · Wybierz DODAJ, aby wykonać dodawanie
operacja. · Wybierz SUB, aby wykonać odejmowanie
operacja. · Wybierz ZMIENNA, aby użyć addnsub1
port do dynamicznej kontroli dodawania/odejmowania. Gdy wybrana jest wartość VARIABLE: · Ustaw sygnał addnsub1 na wysoki dla operacji dodawania. · Ustaw sygnał addnsub1 na niski dla operacji odejmowania. Musisz wybrać wartość 4 dla Jaka jest liczba mnożników? aby włączyć ten parametr.
Wybierz tę opcję, aby włączyć rejestr wejściowy dla sygnału addnsub3. Należy wybrać ZMIENNA dla Jaka operacja ma zostać wykonana na wyjściach drugiej pary mnożników, aby włączyć ten parametr.
Wybierz Clock0 , Clock1 lub Clock2, aby określić wejściowy sygnał zegara dla rejestru addnsub3. Aby włączyć ten parametr, należy wybrać opcję Zarejestruj wejście „addnsub3”.
dalszy…
Podręcznik użytkownika rdzeni arytmetycznych IP Intel FPGA Integer 48
Wyślij opinię
8. Dodatek mnożący Intel FPGA IP Core 683490 | 2020.10.05
Parametr
Jakie jest źródło asynchronicznego czystego wejścia?
Parametr generowany przez adres IP
Wartość
gui_addnsub_ multiplier_aclr 3
BRAK ACLR0 ACLR1
Jakie jest źródło synchronicznego czystego wejścia?
gui_addnsub_ multiplier_sclr 3
BRAK SCLR0 SCLR1
Włącz polaryzację `use_subadd'
gui_use_subn włączone
dodać
Wyłączony
8.6.3. Zakładka Mnożniki
Tabela 32. Zakładka Mnożniki
Parametr
Parametr generowany przez adres IP
Wartość
Co to jest
gui_represent
format reprezentacji ation_a
dla mnożników wejść?
PODPISANE, NIEPOZNANE, ZMIENNE
Zarejestruj wejście `signa'
gui_register_s włączone
Igna
Wyłączony
Jakie jest źródło sygnału wejściowego zegara?
gui_register_s igna_clock
Zegar0 Zegar1 Zegar2
Jakie jest źródło asynchronicznego czystego wejścia?
gui_register_s igna_aclr
BRAK ACLR0 ACLR1
Jakie jest źródło synchronicznego czystego wejścia?
gui_register_s igna_sclr
BRAK SCLR0 SCLR1
Co to jest
gui_represent
format reprezentacji ation_b
dla wejść mnożników B?
PODPISANE, NIEPOZNANE, ZMIENNE
Zarejestruj wejście `signb'
gui_register_s włączone
ignb
Wyłączony
Wartość domyślna BRAK
NIC
Opis
Określa asynchroniczne czyste źródło dla rejestru addnsub3. Aby włączyć ten parametr, należy wybrać opcję Zarejestruj wejście „addnsub3”.
Określa synchroniczne czyste źródło dla rejestru addnsub3. Aby włączyć ten parametr, należy wybrać opcję Zarejestruj wejście „addnsub3”.
Wyłączony
Wybierz tę opcję, aby odwrócić funkcję
portu wejściowego addnsub.
Ustaw addnsub na stan wysoki dla operacji odejmowania.
Przestaw addnsub na niski poziom dla operacji dodawania.
Wartość domyślna
Opis
UNSIGNED Określ format reprezentacji wejścia A mnożnika.
Wyłączony
Wybierz tę opcję, aby włączyć signa
rejestr.
Musisz wybrać wartość ZMIENNA dla Jaki jest format reprezentacji wejść Mnożników A? parametr, aby włączyć tę opcję.
Zegar0
Wybierz Clock0 , Clock1 lub Clock2, aby włączyć i określić wejściowy sygnał zegara dla rejestru signa.
Aby włączyć ten parametr, musisz wybrać opcję Zarejestruj wejście „signa”.
NIC
Określa asynchroniczne jasne źródło dla rejestru signa.
Aby włączyć ten parametr, musisz wybrać opcję Zarejestruj wejście „signa”.
NIC
Określa synchroniczne czyste źródło dla rejestru signa.
Aby włączyć ten parametr, musisz wybrać opcję Zarejestruj wejście „signa”.
UNSIGNED Określ format reprezentacji wejścia mnożnika B.
Wyłączony
Wybierz tę opcję, aby włączyć signb
rejestr.
dalszy…
Wyślij opinię
Podręcznik użytkownika rdzeni arytmetycznych IP Intel FPGA Integer 49
8. Dodatek mnożący Intel FPGA IP Core 683490 | 2020.10.05
Parametr
Parametr generowany przez adres IP
Wartość
Wartość domyślna
Jakie jest źródło sygnału wejściowego zegara?
gui_register_s ignb_clock
Zegar0 Zegar1 Zegar2
Zegar0
Jakie jest źródło asynchronicznego czystego wejścia?
gui_register_s ignb_aclr
BRAK ACLR0 ACLR1
Jakie jest źródło synchronicznego czystego wejścia?
gui_register_s ignb_sclr
BRAK SCLR0 SCLR1
Konfiguracja wejściowa
Zarejestruj wejście A mnożnika
Jakie jest źródło sygnału wejściowego zegara?
gui_input_reg włączone
isster_a
Wyłączony
gui_input_reg isster_a_clock
Zegar0 Zegar1 Zegar2
ŻADEN ŻADEN
wyłączony zegar0
Jakie jest źródło asynchronicznego czystego wejścia?
gui_input_reg isster_a_aclr
BRAK ACLR0 ACLR1
Jakie jest źródło synchronicznego czystego wejścia?
gui_input_reg isster_a_sclr
BRAK SCLR0 SCLR1
Zarejestruj wejście B mnożnika
Jakie jest źródło sygnału wejściowego zegara?
gui_input_reg włączone
isster_b
Wyłączony
gui_input_reg ister_b_clock
Zegar0 Zegar1 Zegar2
BRAK BRAK Wył. Zegar0
Jakie jest źródło asynchronicznego czystego wejścia?
gui_input_reg isster_b_aclr
BRAK ACLR0 ACLR1
NIC
Jakie jest źródło synchronicznego czystego wejścia?
gui_input_reg ister_b_sclr
BRAK SCLR0 SCLR1
NIC
Do czego podłączone jest wejście A mnożnika?
gui_multiplier Wejście mnożnika Mnożnik
_a_wejście
Wejście wejściowe łańcucha skanowania
Opis
Musisz wybrać wartość ZMIENNA dla Jaki jest format reprezentacji wejść Mnożników B? parametr, aby włączyć tę opcję.
Wybierz Clock0 , Clock1 lub Clock2, aby włączyć i określić wejściowy sygnał zegara dla rejestru signb. Musisz wybrać wejście Register `signb', aby włączyć ten parametr.
Określa asynchroniczne jasne źródło dla rejestru signb. Musisz wybrać wejście Register `signb', aby włączyć ten parametr.
Określa synchroniczne jasne źródło dla rejestru signb. Musisz wybrać wejście Register `signb', aby włączyć ten parametr.
Wybierz tę opcję, aby włączyć rejestr wejściowy dla szyny wejściowej danych.
Wybierz Clock0 , Clock1 lub Clock2, aby włączyć i określić wejściowy sygnał zegarowy rejestru dla szyny wejściowej danych. Aby włączyć ten parametr, należy wybrać wejście rejestru A mnożnika.
Określa źródło asynchronicznego czyszczenia rejestru dla szyny wejściowej danych. Aby włączyć ten parametr, należy wybrać wejście rejestru A mnożnika.
Określa źródło synchronicznego czyszczenia rejestru dla szyny wejściowej danych. Aby włączyć ten parametr, należy wybrać wejście rejestru A mnożnika.
Wybierz tę opcję, aby włączyć rejestr wejściowy dla szyny wejściowej datab.
Wybierz Clock0 , Clock1 lub Clock2, aby włączyć i określić wejściowy sygnał zegarowy rejestru dla magistrali wejściowej datab. Aby włączyć ten parametr, należy wybrać wejście rejestru B mnożnika.
Określa źródło asynchronicznego czyszczenia rejestru dla szyny wejściowej bazy danych. Aby włączyć ten parametr, należy wybrać wejście rejestru B mnożnika.
Określa źródło synchronicznego czyszczenia rejestru dla szyny wejściowej bazy danych. Aby włączyć ten parametr, należy wybrać wejście rejestru B mnożnika.
Wybierz źródło wejściowe dla wejścia A mnożnika.
dalszy…
Podręcznik użytkownika rdzeni arytmetycznych IP Intel FPGA Integer 50
Wyślij opinię
8. Dodatek mnożący Intel FPGA IP Core 683490 | 2020.10.05
Parametr
Parametr generowany przez adres IP
Wartość
Skanuj konfigurację rejestru
Zarejestruj wyjście łańcucha skanowania
gui_scanouta włączone
_rejestr
Wyłączony
Jakie jest źródło sygnału wejściowego zegara?
gui_scanouta _register_clock k
Zegar0 Zegar1 Zegar2
Jakie jest źródło asynchronicznego czystego wejścia?
gui_scanouta _register_aclr
BRAK ACLR0 ACLR1
Jakie jest źródło synchronicznego czystego wejścia?
gui_scanouta _register_sclr
BRAK SCLR0 SCLR1
8.6.4. Zakładka Prereader
Tabela 33. Zakładka Prereader
Parametr
Parametr generowany przez adres IP
Wartość
Wybierz tryb preaddera
preadder_mo de
PROSTY, WSPÓŁCZYNNIK, WEJŚCIE, KWADRAT, STAŁA
Wartość domyślna
Opis
Wybierz Wejście mnożnika, aby użyć magistrali wejściowej danych jako źródła mnożnika. Wybierz wejście łańcucha skanowania, aby użyć szyny wejściowej skanowania jako źródła mnożnika i włączyć szynę wyjściową skanowania. Ten parametr jest dostępny po wybraniu 2, 3 lub 4 dla Jaka jest liczba mnożników? parametr.
Off Clock0 BRAK BRAK
Wybierz tę opcję, aby włączyć rejestr wyjściowy dla szyny wyjściowej scanouta.
Musisz wybrać Wejście łańcucha skanowania dla Do czego podłączone jest wejście A mnożnika? parametr, aby włączyć tę opcję.
Wybierz Clock0 , Clock1 lub Clock2, aby włączyć i określić wejściowy sygnał zegarowy rejestru dla szyny wyjściowej scanouta.
Aby włączyć tę opcję, należy włączyć opcję Register output parametru łańcucha skanowania.
Określa źródło asynchronicznego czyszczenia rejestru dla szyny wyjściowej scanouta.
Aby włączyć tę opcję, należy włączyć opcję Register output parametru łańcucha skanowania.
Określa źródło synchronicznego czyszczenia rejestru dla szyny wyjściowej scanouta.
Aby włączyć tę opcję, należy wybrać Zarejestruj dane wyjściowe parametru łańcucha skanowania.
Wartość domyślna
PROSTY
Opis
Określa tryb pracy modułu preaddera. PROSTY: Ten tryb pomija preadder. To jest tryb domyślny. COEF: Ten tryb wykorzystuje wyjście preaddera i magistrali wejściowej coefsel jako wejścia do mnożnika. INPUT: Ten tryb wykorzystuje wyjście preaddera i szyny wejściowej datac jako wejścia do mnożnika. KWADRATOWY: Ten tryb wykorzystuje wyjście preaddera jako oba wejścia do mnożnika.
dalszy…
Wyślij opinię
Podręcznik użytkownika rdzeni arytmetycznych IP Intel FPGA Integer 51
8. Dodatek mnożący Intel FPGA IP Core 683490 | 2020.10.05
Parametr
Parametr generowany przez adres IP
Wartość
Wybierz kierunek podajnika wstępnego
gui_preadder DODAJ,
_kierunek
ZASTĄPIĆ
Jak szerokie powinny być szyny wejściowe C width_c?
1 – 256
Konfiguracja rejestru wejściowego danych C
Zarejestruj wejście danych
gui_datac_inp włączone
ut_rejestr
Wyłączony
Jakie jest źródło sygnału wejściowego zegara?
gui_datac_inp ut_register_cl ock
Zegar0 Zegar1 Zegar2
Jakie jest źródło asynchronicznego czystego wejścia?
gui_datac_inp ut_register_a clr
BRAK ACLR0 ACLR1
Jakie jest źródło synchronicznego czystego wejścia?
gui_datac_inp ut_register_sc lr
BRAK SCLR0 SCLR1
Współczynniki
Jak szeroka powinna być szerokość coefu?
szerokość_współczynnik
1 – 27
Konfiguracja rejestru Coef
Zarejestruj wejście coefsel
gui_coef_regi włączone
ster
Wyłączony
Jakie jest źródło sygnału wejściowego zegara?
gui_coef_regi ster_clock
Zegar0 Zegar1 Zegar2
Wartość domyślna
DODAĆ
16
Opis
CONSTANT: Ten tryb wykorzystuje magistralę wejściową danych z pominiętym preadderem i magistralę wejściową Coefsel jako wejścia do mnożnika.
Określa działanie preaddera. Aby włączyć ten parametr, wybierz dla Wybierz tryb dodawania wstępnego: · WSPÓŁCZYNNIK · WEJŚCIE · KWADRATOWY lub · STAŁA
Określa liczbę bitów dla szyny wejściowej C. Aby włączyć ten parametr, musisz wybrać INPUT dla Wybierz tryb preaddera.
Na zegarze0 BRAK BRAK
Wybierz tę opcję, aby włączyć rejestr wejściowy dla magistrali wejściowej danych. Aby włączyć tę opcję, należy ustawić INPUT na Wybierz parametr trybu preadder.
Wybierz Clock0 , Clock1 lub Clock2, aby określić wejściowy sygnał zegara dla rejestru danych wejściowych. Aby włączyć ten parametr, należy wybrać opcję Zarejestruj wejście danych.
Określa asynchroniczne czyste źródło dla rejestru wejściowego datac. Aby włączyć ten parametr, należy wybrać opcję Zarejestruj wejście danych.
Określa synchroniczne źródło danych czystych dla rejestru danych wejściowych. Aby włączyć ten parametr, należy wybrać opcję Zarejestruj wejście danych.
18
Określa liczbę bitów dla
magistrala wejściowa coefsel.
Aby włączyć ten parametr, należy wybrać COEF lub CONSTANT dla trybu przedsumowania.
Na zegarze0
Wybierz tę opcję, aby włączyć rejestr wejściowy dla magistrali wejściowej coefsel. Aby włączyć ten parametr, należy wybrać COEF lub CONSTANT dla trybu przedsumowania.
Wybierz Clock0 , Clock1 lub Clock2, aby określić wejściowy sygnał zegara dla rejestru wejściowego coefsel. Aby włączyć ten parametr, należy wybrać opcję Zarejestruj wejście koefsel.
dalszy…
Podręcznik użytkownika rdzeni arytmetycznych IP Intel FPGA Integer 52
Wyślij opinię
8. Dodatek mnożący Intel FPGA IP Core 683490 | 2020.10.05
Parametr
Jakie jest źródło asynchronicznego czystego wejścia?
Parametr generowany przez adres IP
Wartość
gui_coef_regi ster_aclr
BRAK ACLR0 ACLR1
Jakie jest źródło synchronicznego czystego wejścia
gui_coef_regi ster_sclr
BRAK SCLR0 SCLR1
Konfiguracja współczynnika_0
coef0_0 do coef0_7
0x00000 0xFFFFFFFF
Konfiguracja współczynnika_1
coef1_0 do coef1_7
0x00000 0xFFFFFFFF
Konfiguracja współczynnika_2
coef2_0 do coef2_7
0x00000 0xFFFFFFFF
Konfiguracja współczynnika_3
coef3_0 do coef3_7
0x00000 0xFFFFFFFF
8.6.5. Zakładka Akumulator
Tabela 34. Zakładka Akumulator
Parametr
Parametr generowany przez adres IP
Wartość
Włączyć akumulator?
akumulator
TAK NIE
Jaki jest typ pracy akumulatora?
accum_directi ADD,
on
ZASTĄPIĆ
Wartość domyślna BRAK
NIC
0x0000000 0
0x0000000 0
0x0000000 0
0x0000000 0
Opis
Określa asynchroniczne czyste źródło dla rejestru wejściowego coefsel. Aby włączyć ten parametr, należy wybrać opcję Zarejestruj wejście koefsel.
Określa synchroniczne czyste źródło dla rejestru wejściowego coefsel. Aby włączyć ten parametr, należy wybrać opcję Zarejestruj wejście koefsel.
Określa wartości współczynników dla tego pierwszego mnożnika. Liczba bitów musi być taka sama, jak określono w Jak szeroka powinna być szerokość współrzędnych? parametr. Aby włączyć ten parametr, należy wybrać COEF lub CONSTANT dla trybu przedsumowania.
Określa wartości współczynników dla tego drugiego mnożnika. Liczba bitów musi być taka sama, jak określono w Jak szeroka powinna być szerokość współrzędnych? parametr. Aby włączyć ten parametr, należy wybrać COEF lub CONSTANT dla trybu przedsumowania.
Określa wartości współczynników dla tego trzeciego mnożnika. Liczba bitów musi być taka sama, jak określono w Jak szeroka powinna być szerokość współrzędnych? parametr. Aby włączyć ten parametr, należy wybrać COEF lub CONSTANT dla trybu przedsumowania.
Określa wartości współczynników dla tego czwartego mnożnika. Liczba bitów musi być taka sama, jak określono w Jak szeroka powinna być szerokość współrzędnych? parametr. Aby włączyć ten parametr, należy wybrać COEF lub CONSTANT dla trybu przedsumowania.
Wartość domyślna NIE
DODAĆ
Opis
Wybierz TAK, aby włączyć akumulator. W przypadku korzystania z funkcji akumulatora należy wybrać opcję Zarejestruj wyjście sumatora.
Określa działanie akumulatora: · ADD dla operacji dodawania · SUB dla operacji odejmowania. Musisz wybrać TAK dla Włączyć akumulator? parametr, aby włączyć tę opcję.
dalszy…
Wyślij opinię
Podręcznik użytkownika rdzeni arytmetycznych IP Intel FPGA Integer 53
8. Dodatek mnożący Intel FPGA IP Core 683490 | 2020.10.05
Parametr
Preload Constant Włącz stałą preload
Parametr generowany przez adres IP
Wartość
gui_ena_prelo Wł
kons._ad
Wyłączony
Do czego podłączone jest wejście portu akumulacji?
gui_accumula ACCUM_SLOAD, te_port_select SLOAD_ACCUM
Wybierz wartość dla obciążenia wstępnego loadconst_val 0 – 64
stały
ue
Jakie jest źródło sygnału wejściowego zegara?
gui_accum_sl oad_register_ zegar
Zegar0 Zegar1 Zegar2
Jakie jest źródło asynchronicznego czystego wejścia?
gui_accum_sl oad_register_ aclr
BRAK ACLR0 ACLR1
Jakie jest źródło synchronicznego czystego wejścia?
gui_accum_sl oad_register_sclr
BRAK SCLR0 SCLR1
Włącz podwójny akumulator
gui_double_a Wł
kum
Wyłączony
Wartość domyślna
Opis
Wyłączony
Włącz accum_sload lub
sygnały sload_accum i wejście rejestru
aby dynamicznie wybrać wejście do
akumulator.
Kiedy accum_sload jest niskie lub sload_accum, wyjście mnożnika jest podawane do akumulatora.
Kiedy accum_sload jest wysokie lub sload_accum, do akumulatora jest podawana stała napięcia wstępnego określona przez użytkownika.
Musisz wybrać TAK dla Włączyć akumulator? parametr, aby włączyć tę opcję.
OAD ACCUM_SL
Określa zachowanie sygnału accum_sload/sload_accum.
ACCUM_SLOAD: Zmniejsz stan accum_sload, aby załadować wyjście mnożnika do akumulatora.
SLOAD_ACCUM: Przejedź sload_accum w stan wysoki, aby załadować wyjście mnożnika do akumulatora.
Aby włączyć ten parametr, należy wybrać opcję Włącz stałą obciążenia wstępnego.
64
Określ ustawioną wstępnie wartość.
Ta wartość może wynosić 2N, gdzie N jest zadaną stałą wartością.
Gdy N=64, reprezentuje stałe zero.
Aby włączyć ten parametr, należy wybrać opcję Włącz stałą obciążenia wstępnego.
Zegar0
Wybierz Clock0 , Clock1 lub Clock2, aby określić wejściowy sygnał zegara dla rejestru accum_sload/sload_accum.
Aby włączyć ten parametr, należy wybrać opcję Włącz stałą obciążenia wstępnego.
NIC
Określa asynchroniczne źródło czyszczenia dla rejestru accum_sload/sload_accum.
Aby włączyć ten parametr, należy wybrać opcję Włącz stałą obciążenia wstępnego.
NIC
Określa synchroniczne źródło czyszczenia dla rejestru accum_sload/sload_accum.
Aby włączyć ten parametr, należy wybrać opcję Włącz stałą obciążenia wstępnego.
Wyłączony
Włącza podwójny rejestr akumulatorów.
Podręcznik użytkownika rdzeni arytmetycznych IP Intel FPGA Integer 54
Wyślij opinię
8. Dodatek mnożący Intel FPGA IP Core 683490 | 2020.10.05
8.6.6. Zakładka Skurczowe/Łańcuchowe
Tabela 35. Zakładka Dodatek Skurczowe/Łańcuchowe
Parametr Włącz dodatek łańcuchowy
Parametr generowany przez adres IP
Wartość
chainout_add TAK,
er
NIE
Jaki jest typ operacji sumatora chainout?
chainout_add DODAJ,
er_kierunek
ZASTĄPIĆ
Włączyć wejście `negate' dla sumatora chainout?
Port_negate
PORT_UŻYWANY, PORT_NIEUŻYWANY
Zarejestrować wejście „negujące”? negate_regist er
NIEZAREJESTROWANY, ZEGAR 0, ZEGAR 1, ZEGAR 2, ZEGAR 3
Jakie jest źródło asynchronicznego czystego wejścia?
negate_aclr
BRAK ACLR0 ACLR1
Jakie jest źródło synchronicznego czystego wejścia?
negate_sclr
BRAK SCLR0 SCLR1
Opóźnienie skurczowe
Włącz rejestry opóźnienia skurczowego
gui_systolic_d Wł
ułożyć
Wyłączony
Jakie jest źródło sygnału wejściowego zegara?
gui_systolic_d ZEGAR0,
elay_clock
ZEGAR1,
Wartość domyślna
NIE
Opis
Wybierz TAK, aby włączyć moduł dodawania łańcucha.
DODAĆ
Określa operację sumowania łańcucha.
W przypadku operacji odejmowania należy wybrać SIGNED dla Jaki jest format reprezentacji wejść mnożników A? oraz Jaki jest format reprezentacji wejść mnożników B? w zakładce Mnożniki.
UŻYWANY PORT_UN
Wybierz PORT_USED, aby włączyć negację sygnału wejściowego.
Ten parametr jest nieprawidłowy, gdy dodawanie łańcuchów jest wyłączone.
WYREJESTRUJ ERED
Aby włączyć rejestr wejściowy dla zanegowanego sygnału wejściowego i określić wejściowy sygnał zegarowy dla zanegowanego rejestru.
Wybierz UNREGISTERED, jeśli rejestr wejścia negacji do nie jest potrzebny
Ten parametr jest nieprawidłowy, jeśli wybierzesz:
· NIE dla Włącz dodatek łańcuchowy lub
· PORT_UNUSED dla Włącz wejście negacji dla sumatora łańcuchowego? parametr lub
NIC
Określa asynchroniczne czyste źródło dla rejestru negacji.
Ten parametr jest nieprawidłowy, jeśli wybierzesz:
· NIE dla Włącz dodatek łańcuchowy lub
· PORT_UNUSED dla Włącz wejście negacji dla sumatora łańcuchowego? parametr lub
NIC
Określa synchroniczne źródło zerowania dla rejestru negacji.
Ten parametr jest nieprawidłowy, jeśli wybierzesz:
· NIE dla Włącz dodatek łańcuchowy lub
· PORT_UNUSED dla Włącz wejście negacji dla sumatora łańcuchowego? parametr lub
WYŁ. ZEGAR0
Wybierz tę opcję, aby włączyć tryb skurczowy. Ten parametr jest dostępny po wybraniu 2 lub 4 dla Jaka jest liczba mnożników? parametr. Aby korzystać z rejestrów opóźnienia skurczowego, należy włączyć wyjście Register jednostki sumującej.
Określa wejściowy sygnał zegara dla rejestru opóźnienia skurczowego.
dalszy…
Wyślij opinię
Podręcznik użytkownika rdzeni arytmetycznych IP Intel FPGA Integer 55
8. Dodatek mnożący Intel FPGA IP Core 683490 | 2020.10.05
Parametr
Parametr generowany przez adres IP
Wartość
ZEGAR2,
Jakie jest źródło asynchronicznego czystego wejścia?
gui_systolic_d elay_aclr
BRAK ACLR0 ACLR1
Jakie jest źródło synchronicznego czystego wejścia?
gui_systolic_d elay_sclr
BRAK SCLR0 SCLR1
Wartość domyślna
NIC
NIC
Opis
Aby włączyć tę opcję, należy wybrać opcję Włącz rejestry opóźnienia skurczowego.
Określa asynchroniczne źródło zerowania dla rejestru opóźnienia skurczowego. Aby włączyć tę opcję, należy wybrać opcję Włącz rejestry opóźnienia skurczowego.
Określa synchroniczne źródło zerowania dla rejestru opóźnienia skurczowego. Aby włączyć tę opcję, należy wybrać opcję Włącz rejestry opóźnienia skurczowego.
8.6.7. Zakładka Potokowanie
Tabela 36. Zakładka Potokowanie
Konfiguracja potokowania parametrów
Parametr generowany przez adres IP
Wartość
Czy chcesz dodać rejestr potoku do wejścia?
gui_pipelining Nie, tak
Wartość domyślna
NIE
Proszę podać
utajenie
liczba zegarów opóźnienia
cykle
Dowolna wartość większa od 0 niż 0
Jakie jest źródło sygnału wejściowego zegara?
gui_input_late ncy_clock
ZEGAR 0, ZEGAR 1, ZEGAR 2
Jakie jest źródło asynchronicznego czystego wejścia?
gui_input_late ncy_aclr
BRAK ACLR0 ACLR1
Jakie jest źródło synchronicznego czystego wejścia?
gui_input_late ncy_sclr
BRAK SCLR0 SCLR1
ZEGAR0 BRAK BRAK
Opis
Wybierz Tak, aby włączyć dodatkowy poziom rejestru potoku dla sygnałów wejściowych. Musisz podać wartość większą niż 0 dla parametru Podaj liczbę cykli zegara opóźnienia.
Określa żądane opóźnienie w cyklach zegara. Jeden poziom rejestru potoku = 1 latencja w cyklu zegara. Musisz wybrać TAK dla Czy chcesz dodać rejestr potoku do wejścia? aby włączyć tę opcję.
Wybierz opcję Clock0 , Clock1 lub Clock2, aby włączyć i określić wejściowy sygnał zegara rejestru potoku. Musisz wybrać TAK dla Czy chcesz dodać rejestr potoku do wejścia? aby włączyć tę opcję.
Określa asynchroniczne źródło wyczyszczenia rejestru dla dodatkowego rejestru potoku. Musisz wybrać TAK dla Czy chcesz dodać rejestr potoku do wejścia? aby włączyć tę opcję.
Określa źródło synchronicznego czyszczenia rejestru dla dodatkowego rejestru potoku. Musisz wybrać TAK dla Czy chcesz dodać rejestr potoku do wejścia? aby włączyć tę opcję.
Podręcznik użytkownika rdzeni arytmetycznych IP Intel FPGA Integer 56
Wyślij opinię
683490 | 2020.10.05 Prześlij opinię
9. ALTMEMMULT (mnożnik stałych współczynników oparty na pamięci) IP Core
Uwaga:
Firma Intel usunęła obsługę tego adresu IP w wersji Intel Quartus Prime Pro Edition 20.3. Jeśli rdzeń IP w twoim projekcie jest ukierunkowany na urządzenia z procesorem Intel Quartus Prime Pro Edition, możesz zastąpić adres IP LPM_MULT Intel FPGA IP lub ponownie wygenerować adres IP i skompilować projekt przy użyciu oprogramowania Intel Quartus Prime Standard Edition.
Rdzeń IP ALTMEMMULT jest używany do tworzenia mnożników opartych na pamięci przy użyciu bloków pamięci on-chip, które można znaleźć w układach FPGA firmy Intel (z blokami pamięci M512, M4K, M9K i MLAB). Ten rdzeń IP jest przydatny, jeśli nie masz wystarczających zasobów do wdrożenia mnożników w elementach logicznych (LE) lub dedykowanych zasobów mnożnika.
Rdzeń ALTMEMMULT IP jest funkcją synchroniczną wymagającą zegara. Rdzeń IP ALTMEMMULT implementuje mnożnik o najmniejszej możliwej przepustowości i opóźnieniu dla danego zestawu parametrów i specyfikacji.
Poniższy rysunek przedstawia porty rdzenia IP ALTMEMMULT.
Rysunek 21. Porty ALTMEMMULT
ALTMEMMULT
dane_in[] sload_data coeff_in[]
wynik[] wynik_ważny ładowanie_wykonane
sload_coeff
zegar scr
instalacja
Powiązane funkcje informacyjne na stronie 71
9.1. Funkcje
Rdzeń ALTMEMMULT IP oferuje następujące funkcje: · Tworzy tylko mnożniki oparte na pamięci, używając wbudowanych bloków pamięci znajdujących się w
Intel FPGA · Obsługuje szerokość danych 1 bitów · Obsługuje format reprezentacji danych ze znakiem i bez znaku · Obsługuje potokowanie ze stałym opóźnieniem wyjściowym
Korporacja intelektualna. Wszelkie prawa zastrzeżone. Intel, logo Intel i inne znaki Intel są znakami towarowymi firmy Intel Corporation lub jej podmiotów zależnych. Firma Intel gwarantuje wydajność swoich produktów FPGA i półprzewodników zgodnie z aktualnymi specyfikacjami zgodnie ze standardową gwarancją firmy Intel, ale zastrzega sobie prawo do wprowadzania zmian w dowolnych produktach i usługach w dowolnym czasie bez powiadomienia. Firma Intel nie ponosi żadnej odpowiedzialności wynikającej z zastosowania lub wykorzystania jakichkolwiek informacji, produktów lub usług opisanych w niniejszym dokumencie, z wyjątkiem przypadków wyraźnie uzgodnionych na piśmie przez firmę Intel. Klienci firmy Intel powinni uzyskać najnowszą wersję specyfikacji urządzeń przed poleganiem na jakichkolwiek opublikowanych informacjach oraz przed złożeniem zamówienia na produkty lub usługi. *Inne nazwy i marki mogą być przedmiotem praw osób trzecich.
Zarejestrowany zgodnie z ISO 9001: 2015
9. ALTMEMMULT (mnożnik stałego współczynnika oparty na pamięci) IP Core 683490 | 2020.10.05
· Przechowuje stałe wielokrotności w pamięci o dostępie swobodnym (RAM)
· Zapewnia opcję wyboru typu bloku pamięci RAM
· Obsługuje opcjonalne synchroniczne porty wejściowe Clear i Load-Control
9.2. Prototyp Verilog HDL
Poniższy prototyp Verilog HDL znajduje się w Verilog Design File (.v) altera_mf.v w katalog syntezy eda.
moduł altmemmult #( parametr coeff_representation = „SIGNED”, parametr coefficient0 = „UNUSED”, parametr data_representation = „SIGNED”, parametr zamierzona_rodzina_urządzeń = „nieużywany”, parametr max_clock_cycles_per_result = 1, parametr number_of_coefficients = 1, parametr ram_block_type = „AUTO”, parametr total_latency = 1, parametr width_c = 1, parametr width_d = 1, parametr width_r = 1, parametr width_s = 1, parametr lpm_type = „altmemmult”, parametr lpm_hint = „nieużywany”) ( wejście drutu zegar, wejście drutu [width_c-1: 0]coeff_in, przewód wejściowy [width_d-1:0] data_in, przewód wyjściowy load_done, przewód wyjściowy [szerokość_r-1:0] wynik, przewód wyjściowy result_valid, przewód wejściowy sclr, przewód wejściowy [szerokość_s-1:0] sel, input przewód sload_coeff, przewód wejściowy sload_data)/* synteza syn_black_box=1 */; moduł końcowy
9.3. Deklaracja składnika VHDL
Deklaracja komponentu VHDL znajduje się w projekcie VHDL File (.vhd) altera_mf_components.vhd w Libraryvhdlaltera_mf katalog.
składnik altmemmult rodzajowy ( coeff_representation:string := „SIGNED”; coefficient0:string := „UNUSED”; data_representation:string := „SIGNED”; zamierzona_rodzina_urządzeń:string := „nieużywana”; max_clock_cycles_per_result:natural := 1; number_of_coefficients:natural := 1; ram_block_type:string := „AUTO”; total_latency:naturalny; width_c:naturalny; width_d:naturalny; width_r:naturalny; width_s:naturalny := 1; lpm_hint:string := „UNUSED”; lpm_type:string := „altmemult”); port(clock:in std_logic; coeff_in:in std_logic_vector(width_c-1 downto 0) := (inne => '0'); data_in:in std_logic_vector(width_d-1 downto 0);
Podręcznik użytkownika rdzeni arytmetycznych IP Intel FPGA Integer 58
Wyślij opinię
9. ALTMEMMULT (mnożnik stałego współczynnika oparty na pamięci) IP Core 683490 | 2020.10.05
ładowanie_wykonane: out std_logic; wynik: out std_logic_vector (width_r-1 do 0); wynik_poprawny: out std_logic; sclr:in std_logic:= '0'; sel:in std_logic_vector(width_s-1 do 0) := (inne => '0'); sload_coeff:in std_logic:= '0'; sload_data:in std_logic := '0'); element końcowy;
9.4. Porty
W poniższych tabelach wymieniono porty wejściowe i wyjściowe dla rdzenia IP ALTMEMMULT.
Tabela 37. Porty wejściowe ALTMEMMULT
Nazwa portu
Wymagany
Opis
zegar
Tak
Wejście zegara do mnożnika.
współczynnik_w[]
NIE
Port wejściowy współczynnika dla mnożnika. Rozmiar portu wejściowego zależy od wartości parametru WIDTH_C.
dane_w[]
Tak
Port wprowadzania danych do mnożnika. Rozmiar portu wejściowego zależy od wartości parametru WIDTH_D.
sklr
NIE
Synchroniczne jasne wejście. Jeśli nie jest używany, domyślną wartością jest aktywna wysoka.
wybierz []
NIE
Stały wybór współczynnika. Rozmiar portu wejściowego zależy od WIDTH_S
wartość parametru.
sload_coeff
NIE
Synchroniczny port wejściowy współczynnika obciążenia. Zastępuje obecnie wybraną wartość współczynnika wartością określoną w wejściu coeff_in.
sload_data
NIE
Synchroniczny port wejściowy danych obciążenia. Sygnał, który określa nową operację mnożenia i anuluje każdą istniejącą operację mnożenia. Jeśli parametr MAX_CLOCK_CYCLES_PER_RESULT ma wartość 1, port wejściowy sload_data jest ignorowany.
Tabela 38. Porty wyjściowe ALTMEMMULT
Nazwa portu
Wymagany
Opis
wynik[]
Tak
Port wyjściowy mnożnika. Rozmiar portu wejściowego zależy od wartości parametru WIDTH_R.
wynik_ważny
Tak
Wskazuje, kiedy wynik jest prawidłowym wynikiem pełnego mnożenia. Jeśli parametr MAX_CLOCK_CYCLES_PER_RESULT ma wartość 1, port wyjściowy result_valid nie jest używany.
ładowanie_zakończone
NIE
Wskazuje, kiedy ładowanie nowego współczynnika zostało zakończone. Sygnał load_done potwierdza, kiedy ładowanie nowego współczynnika zostało zakończone. Dopóki sygnał load_done nie jest wysoki, do pamięci nie można załadować żadnej innej wartości współczynnika.
9.5. Parametry
W poniższej tabeli wymieniono parametry rdzenia ALTMEMMULT IP.
Tabela 39.
WIDTH_D WIDTH_C
ALTMEMMULT Parametry
Nazwa parametru
Typ wymagany
Opis
Liczba całkowita Tak
Określa szerokość portu data_in[].
Liczba całkowita Tak
Określa szerokość portu coeff_in[]. nieprzerwany…
Wyślij opinię
Podręcznik użytkownika rdzeni arytmetycznych IP Intel FPGA Integer 59
9. ALTMEMMULT (mnożnik stałego współczynnika oparty na pamięci) IP Core 683490 | 2020.10.05
Nazwa parametru WIDTH_R WIDTH
Dokumenty / Zasoby
![]() |
intel FPGA Integer Arytmetyczne rdzenie IP [plik PDF] Instrukcja użytkownika FPGA Rdzenie arytmetyczne IP, Rdzenie arytmetyczne IP, Rdzenie arytmetyczne IP, Rdzenie IP |