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

Odniesienia

Zostaw komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *