FPGA целочислени аритметични IP ядра

Intel FPGA Integer аритметични IP ядра Ръководство за потребителя
Актуализиран за Intel® Quartus® Prime Design Suite: 20.3

Онлайн версия Изпратете обратна връзка

УГ-01063г

ID: 683490 Версия: 2020.10.05

Съдържание
Съдържание
1. Intel FPGA целочислени аритметични IP ядра………………………………………………………………….. 5
2. LPM_COUNTER (Брояч) IP Core………………………………………………………………………….. 7 2.1. Характеристики…………………………………………………………………………………………………7 2.2. Verilog HDL прототип……………………………………………………………………………….. 8 2.3. Декларация на VHDL компонент………………………………………………………………………….8 2.4. Декларация VHDL LIBRARY_USE……………………………………………………………………… 9 2.5. Портове……………………………………………………………………………………………………..9 2.6. Параметри……………………………………………………………………………………………… 10
3. LPM_DIVIDE (Разделител) Intel FPGA IP Core……………………………………………………….. 12 3.1. Характеристика………………………………………………………………………………………………. 12 3.2. Verilog HDL прототип……………………………………………………………………………… 12 3.3. Декларация на VHDL компонент……………………………………………………………………….. 13 3.4. VHDL LIBRARY_USE декларация……………………………………………………………………. 13 3.5. Портове……………………………………………………………………………………………………… 13 3.6. Параметри……………………………………………………………………………………………… 14
4. LPM_MULT (Множител) IP ядро……………………………………………………………………………. 16 4.1. Характеристика………………………………………………………………………………………………. 16 4.2. Verilog HDL прототип……………………………………………………………………………… 17 4.3. Декларация на VHDL компонент……………………………………………………………………….. 17 4.4. VHDL LIBRARY_USE декларация……………………………………………………………………. 17 4.5. Сигнали………………………………………………………………………………………………… 18 4.6. Параметри за устройства Stratix V, Arria V, Cyclone V и Intel Cyclone 10 LP…………… 18 4.6.1. Раздел Общи……………………………………………………………………………………18 4.6.2. Раздел Общи 2……………………………………………………………………………… 19 4.6.3. Раздел „Тръбопроводи“………………………………………………………………………………… 19 4.7. Параметри за устройства Intel Stratix 10, Intel Arria 10 и Intel Cyclone 10 GX……….. 20 4.7.1. Раздел Общи…………………………………………………………………………………20 4.7.2. Раздел Общи 2……………………………………………………………………………… 20 4.7.3. Тръбопроводи………………………………………………………………………………………21
5. LPM_ADD_SUB (Събиращ/Изваждащ)……………………………………………………………………… 22 5.1. Характеристика………………………………………………………………………………………………. 22 5.2. Verilog HDL прототип……………………………………………………………………………… 23 5.3. Декларация на VHDL компонент……………………………………………………………………….. 23 5.4. VHDL LIBRARY_USE декларация……………………………………………………………………. 23 5.5. Портове…………………………………………………………………………………………………… 23 5.6. Параметри……………………………………………………………………………………………… 24
6. LPM_COMPARE (Компаратор)……………………………………………………………………………… 26 6.1. Характеристика………………………………………………………………………………………………. 26 6.2. Verilog HDL прототип……………………………………………………………………………… 27 6.3. Декларация на VHDL компонент……………………………………………………………………….. 27 6.4. VHDL LIBRARY_USE декларация……………………………………………………………………. 27 6.5. Портове…………………………………………………………………………………………………… 27 6.6. Параметри……………………………………………………………………………………………… 28

Intel FPGA Integer Arithmetic IP Cores Ръководство за потребителя 2

Изпратете обратна връзка

Съдържание

7. ALTECC (Код за коригиране на грешки: енкодер/декодер) IP ядро………………………………………… 30
7.1. Характеристики на енкодера ALTECC…………………………………………………………………………..31 7.2. Verilog HDL прототип (ALTECC_ENCODER)………………………………………………………. 32 7.3. Verilog HDL прототип (ALTECC_DECODER)………………………………………………………. 32 7.4. Декларация на VHDL компонент (ALTECC_ENCODER)……………………………………………33 7.5. Декларация на VHDL компонент (ALTECC_DECODER)……………………………………………33 7.6. VHDL LIBRARY_USE декларация……………………………………………………………………. 33 7.7. Портове за енкодери…………………………………………………………………………………………… 33 7.8. Декодерни портове…………………………………………………………………………………………34 7.9. Параметри на енкодера………………………………………………………………………………… 34 7.10. Параметри на декодера ………………………………………………………………………………… 35
8. Intel FPGA Multiply Adder IP Core………………………………………………………………………. 36
8.1. Характеристика………………………………………………………………………………………………. 37 8.1.1. Предварителен суматор…………………………………………………………………………………….. 38 8.1.2. Регистър на систолно забавяне…………………………………………………………………….. 40 8.1.3. Константа на предварително натоварване………………………………………………………………………… 43 8.1.4. Двоен акумулатор………………………………………………………………………… 43
8.2. Verilog HDL прототип……………………………………………………………………………… 44 8.3. Декларация на VHDL компонент……………………………………………………………………….. 44 8.4. VHDL LIBRARY_USE декларация……………………………………………………………………. 44 8.5. Сигнали……………………………………………………………………………………………… 44 8.6. Параметри…………………………………………………………………………………………… 47
8.6.1. Раздел Общи…………………………………………………………………………………47 8.6.2. Раздел Допълнителни режими…………………………………………………………………………….. 47 8.6.3. Раздел Множители……………………………………………………………………………….. 49 8.6.4. Раздел Preadder……………………………………………………………………………………. 51 8.6.5. Раздел Акумулатор…………………………………………………………………………….. 53 8.6.6. Систоличен/верижен раздел………………………………………………………………………. 55 8.6.7. Раздел „Тръбопроводи“………………………………………………………………………………… 56
9. ALTMEMMULT (базиран на паметта умножител на постоянен коефициент) IP Core…………………… 57
9.1. Характеристика………………………………………………………………………………………………. 57 9.2. Verilog HDL прототип……………………………………………………………………………… 58 9.3. Декларация на VHDL компонент……………………………………………………………………….. 58 9.4. Портове…………………………………………………………………………………………………… 59 9.5. Параметри……………………………………………………………………………………………… 59
10. ALTMULT_ACCUM (Multiply-Accumulate) IP Core………………………………………………… 61
10.1. Характеристики…………………………………………………………………………………………….. 62 10.2. Verilog HDL прототип……………………………………………………………………………..62 10.3. Декларация на VHDL компонент……………………………………………………………………… 63 10.4. VHDL LIBRARY_USE декларация………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… Портове……………………………………………………………………………………………………. 63 10.5. Параметри……………………………………………………………………………………………. 63
11. ALTMULT_ADD (Множествен суматор) IP Core……………………………………………………………..69
11.1. Характеристики…………………………………………………………………………………………….. 71 11.2. Verilog HDL прототип……………………………………………………………………………..72 11.3. Декларация на VHDL компонент……………………………………………………………………… 72 11.4. Декларация VHDL LIBRARY_USE……………………………………………………………………72

Изпратете обратна връзка

Intel FPGA Integer Arithmetic IP Cores Ръководство за потребителя 3

Съдържание
11.5. Портове……………………………………………………………………………………………………. 72 11.6. Параметри……………………………………………………………………………………………. 73
12. ALTMULT_COMPLEX (Комплексен множител) IP ядро……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… Комплексно умножение………………………………………………………………………………. 86 12.1. Канонично представяне…………………………………………………………………………… 86 12.2. Конвенционално представяне………………………………………………………………………. 87 12.3. Характеристики…………………………………………………………………………………………….. 87 12.4. Verilog HDL прототип……………………………………………………………………………..88 12.5. Декларация на VHDL компонент……………………………………………………………………… 88 12.6. VHDL LIBRARY_SUSE Декларация ………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………тори89. Сигнали……………………………………………………………………………………………………. 12.7 89. Параметри……………………………………………………………………………………………. 12.8
13. altsqrt (Integer Square Root) IP ядро ​​……………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 92 13.1. Характеристики…………………………………………………………………………………………….. 92 13.2. Verilog HDL прототип……………………………………………………………………………..92 13.3. Декларация на VHDL компонент……………………………………………………………………… 93 13.4. VHDL LIBRARY_USE Декларация ……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… Портове……………………………………………………………………………………………………. 93 13.5. Параметри……………………………………………………………………………………………. 93
14. PARALLEL_ADD (паралелен разширител) IP Core………………………………………………………….. 95 14.1. Характеристика……………………………………………………………………………………………….95 14.2. Verilog HDL прототип……………………………………………………………………………..95 14.3. Декларация на VHDL компонент……………………………………………………………………… 96 14.4. VHDL Library_use Декларация ……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………торине96. Портове……………………………………………………………………………………………………. 14.5 96. Параметри……………………………………………………………………………………………. 14.6
15. Целочислени аритметични IP ядра Ръководство за потребителя Архиви на документи…………………………………… 98
16. История на ревизиите на документа за Intel FPGA Integer аритметични IP ядра Ръководство за потребителя…. 99

Intel FPGA Integer Arithmetic IP Cores Ръководство за потребителя 4

Изпратете обратна връзка

683490 | 2020.10.05 януари XNUMX г. Изпратете обратна връзка

1. Intel FPGA целочислени аритметични IP ядра

Можете да използвате целочислените IP ядра Intel® FPGA, за да извършвате математически операции във вашия дизайн.

Тези функции предлагат по-ефективен логически синтез и внедряване на устройства, отколкото кодирането на вашите собствени функции. Можете да персонализирате IP ядрата, за да отговарят на вашите изисквания за дизайн.

IP ядрата с целочислена аритметика на Intel се разделят на следните две категории: · Библиотека от параметризирани модули (LPM) IP ядра · Специфични за Intel (ALT) IP ядра

Следващата таблица изброява целочислените аритметични IP ядра.

Таблица 1.

Списък на IP ядра

IP ядра

LPM IP ядра

LPM_COUNTER

LPM_DIVIDE

LPM_MULT

LPM_ADD_SUB
LPM_COMPARE
Специфични за Intel (ALT) IP ядра ALTECC

Функцията свършиview Counter Divider Multiplier
Суматор или изваждач Компаратор
ECC енкодер/декодер

Поддържано устройство
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 продължение...

Корпорация Intel. Всички права запазени. Intel, логото на Intel и други марки на Intel са търговски марки на Intel Corporation или нейните филиали. Intel гарантира производителността на своите FPGA и полупроводникови продукти според настоящите спецификации в съответствие със стандартната гаранция на Intel, но си запазва правото да прави промени на продукти и услуги по всяко време без предизвестие. Intel не поема никаква отговорност или задължения, произтичащи от приложението или използването на каквато и да е информация, продукт или услуга, описани тук, освен в случаите, когато Intel е изрично договорено в писмен вид. Клиентите на Intel се съветват да получат най-новата версия на спецификациите на устройството, преди да разчитат на публикувана информация и преди да направят поръчки за продукти или услуги. *Други имена и марки могат да бъдат заявени като собственост на други.

Регистрирано по ISO 9001: 2015

1. Intel FPGA целочислени аритметични IP ядра 683490 | 2020.10.05 г

IP ядра Intel FPGA Multiply Adder или ALTERA_MULT_ADD ALTMEMMULT
ALTMULT_ACCUM ALTMULT_ADD ALTMULT_COMPLEX
ALTSQRT
PARALLEL_ADD

Функцията свършиview Множител-суматор
Умножител на постоянен коефициент, базиран на паметта
Умножител-Акумулатор Умножител-суматор
Комплексен множител
Цяло число квадратен корен
Паралелен суматор

Поддържано устройство
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
Cyclone 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

Свързана информация
· Бележки по изданието на Intel FPGA и програмируеми устройства
· Въведение в Intel FPGA IP ядра Предоставя повече информация за Intel FPGA IP ядра.
· Потребителско ръководство за IP ядра с плаваща запетая Предоставя повече информация относно IP ядра с плаваща запетая на Intel FPGA.
· Въведение в Intel FPGA IP ядра Осигурява обща информация за всички Intel FPGA IP ядра, включително параметризиране, генериране, надграждане и симулиране на IP ядра.
· Създаване на независими от версията IP и Qsys симулационни скриптове Създавайте симулационни скриптове, които не изискват ръчни актуализации за надграждане на софтуер или IP версия.
· Насоки за най-добри практики за управление на проекти за ефективно управление и преносимост на вашия проект и IP files.
· Архив на документи за потребителско ръководство за IP ядра с целочислена аритметика на страница 98 Предоставя списък с ръководства за потребителя за предишни версии на IP ядра за целочислена аритметика.

Intel FPGA Integer Arithmetic IP Cores Ръководство за потребителя 6

Изпратете обратна връзка

683490 | 2020.10.05 януари XNUMX г. Изпратете обратна връзка

2. LPM_COUNTER (Брояч) IP Core

Фигура 1.

IP ядрото LPM_COUNTER е двоичен брояч, който създава броячи нагоре, броячи надолу и броячи нагоре или надолу с изходи с ширина до 256 бита.

Следната фигура показва портовете за IP ядрото LPM_COUNTER.

LPM_COUNTER Портове

LPM_COUNTER

ssclr sload sset данни []

q[]

нагоре надолу

cout

aclr aload aset

clk_en cnt_en cin
инст

2.1. Характеристики
IP ядрото LPM_COUNTER предлага следните функции: · Генерира броячи нагоре, надолу и нагоре/надолу · Генерира следните типове броячи:
— Обикновен двоичен – броячът се увеличава, започвайки от нула, или намалява, започвайки от 255
— Модул – броячът се увеличава или намалява от стойността на модула, зададена от потребителя, и се повтаря
· Поддържа опционални синхронни входни портове за изчистване, зареждане и задаване · Поддържа опционални асинхронни входни портове за изчистване, зареждане и задаване · Поддържа опционални входни портове за активиране на броене и активиране на часовник · Поддържа опционални портове за пренасяне и изнасяне

Корпорация Intel. Всички права запазени. Intel, логото на Intel и други марки на Intel са търговски марки на Intel Corporation или нейните филиали. Intel гарантира производителността на своите FPGA и полупроводникови продукти според настоящите спецификации в съответствие със стандартната гаранция на Intel, но си запазва правото да прави промени на продукти и услуги по всяко време без предизвестие. Intel не поема никаква отговорност или задължения, произтичащи от приложението или използването на каквато и да е информация, продукт или услуга, описани тук, освен в случаите, когато Intel е изрично договорено в писмен вид. Клиентите на Intel се съветват да получат най-новата версия на спецификациите на устройството, преди да разчитат на публикувана информация и преди да направят поръчки за продукти или услуги. *Други имена и марки могат да бъдат заявени като собственост на други.

Регистрирано по ISO 9001: 2015

2. LPM_COUNTER (Брояч) IP Core
683490 | 2020.10.05
2.2. Verilog HDL прототип
Следният прототип на Verilog HDL се намира в Verilog Design File (.v) lpm.v в директория за едасинтез.
модул lpm_counter (q, данни, часовник, cin, cout, clk_en, cnt_en, updown, aset, aclr, aload, sset, sclr, sload, eq); параметър lpm_type = “lpm_counter”; параметър lpm_width = 1; параметър lpm_modulus = 0; параметър lpm_direction = “НЕИЗПОЛЗВАН”; параметър lpm_avalue = “НЕИЗПОЛЗВАН”; параметър lpm_svalue = “НЕИЗПОЛЗВАН”; параметър lpm_pvalue = “НЕИЗПОЛЗВАН”; параметър lpm_port_updown = “PORT_CONNECTIVITY”; параметър lpm_hint = “НЕИЗПОЛЗВАН”; изход [lpm_width-1:0] q; изход cout; изход [15:0] eq; вход cin; вход [lpm_width-1:0] данни; входен часовник, clk_en, cnt_en, нагоре; вход aset, aclr, aload; вход sset, sclr, sload; краен модул
2.3. Декларация на VHDL компонент
Декларацията на VHDL компонента се намира във VHDL Design File (.vhd) LPM_PACK.vhd в директория librariesvhdllpm.
компонент LPM_COUNTER generic ( LPM_WIDTH : natural; LPM_MODULUS : natural := 0; LPM_DIRECTION : string := “UNUSED”; LPM_AVALUE : string := “UNUSED”; LPM_SVALUE : string := “UNUSED”; LPM_PORT_UPDOWN : string := “PORT_CONNECTIVITY” ; LPM_PVALUE : низ := “НЕИЗПОЛЗВАН”; LPM_TYPE : низ := L_COUNTER; LPM_HINT : низ := “НЕИЗПОЛЗВАН”); порт (DATA: в std_logic_vector(LPM_WIDTH-1 downto 0):= (ДРУГИ =>
'0'); ЧАСОВНИК: в std_logic; CLK_EN: в std_logic:= '1'; CNT_EN : в std_logic := '1'; НАГОРЕ: в std_logic:= '1'; SLOAD: в std_logic:= '0'; SSET: в std_logic:= '0'; SCLR : в std_logic := '0'; ALOAD : в std_logic := '0'; ASET: в std_logic:= '0'; ACLR: в std_logic:= '0'; CIN : в std_logic := '1'; COUT : out std_logic := '0'; Q: out std_logic_vector(LPM_WIDTH-1 downto 0); EQ : out std_logic_vector(15 downto 0));
краен компонент;

Intel FPGA Integer Arithmetic IP Cores Ръководство за потребителя 8

Изпратете обратна връзка

2. LPM_COUNTER (Брояч) IP Core 683490 | 2020.10.05 г

2.4. VHDL LIBRARY_USE декларация
Декларацията VHDL LIBRARY-USE не е необходима, ако използвате декларацията за VHDL компонент.
БИБЛИОТЕКА lpm; ИЗПОЛЗВАЙТЕ lpm.lpm_components.all;

2.5. Портове

Следващите таблици изброяват входните и изходните портове за IP ядрото LPM_COUNTER.

Таблица 2.

LPM_COUNTER Входни портове

Име на порт

Задължително

Описание

данни[]

не

Паралелно въвеждане на данни към брояча. Размерът на входния порт зависи от стойността на параметъра LPM_WIDTH.

часовник

да

Вход за часовник, задействан от положителен ръб.

clk_en

не

Вход за активиране на часовника, за да активирате всички синхронни дейности. Ако е пропуснато, стойността по подразбиране е 1.

cnt_en

не

Count enable input за деактивиране на броя, когато се твърди, че е нисък, без да засяга sload, sset или sclr. Ако е пропуснато, стойността по подразбиране е 1.

нагоре надолу

не

Контролира посоката на броенето. Когато е заявено високо (1), посоката на броене е нагоре, а когато е заявено ниско (0), посоката на броене е надолу. Ако се използва параметърът LPM_DIRECTION, горният порт не може да бъде свързан. Ако LPM_DIRECTION не се използва, горният порт е незадължителен. Ако е пропуснато, стойността по подразбиране е нагоре (1).

цин

не

Пренасяне към бита от нисък ред. За броячите нагоре поведението на cin входа е

идентичен с поведението на входа cnt_en. Ако е пропуснато, стойността по подразбиране е 1

(VCC).

aclr

не

Асинхронен чист вход. Ако и aset, и aclr се използват и заявяват, aclr отменя aset. Ако е пропуснато, стойността по подразбиране е 0 (забранено).

актив

не

Асинхронно въвеждане на набор. Указва изходите q[] като всички 1s или към стойността, посочена от параметъра LPM_AVALUE. Ако и двата порта aset и aclr се използват и заявяват, стойността на порта aclr заменя стойността на порта aset. Ако е пропуснато, стойността по подразбиране е 0, дезактивирано.

товар

не

Асинхронен вход за зареждане, който асинхронно зарежда брояча със стойността на входа на данните. Когато се използва aload порт, портът data[] трябва да бъде свързан. Ако е пропуснато, стойността по подразбиране е 0, дезактивирано.

sclr

не

Синхронен изчистен вход, който изчиства брояча на следващия активен фронт на часовника. Ако и двата порта sset и sclr се използват и заявяват, стойността на порта sclr заменя стойността на порта sset. Ако е пропуснато, стойността по подразбиране е 0, дезактивирано.

sset

не

Вход за синхронен набор, който настройва брояча на следващия активен фронт на часовника. Указва стойността на изходите q като всички 1s или към стойността, зададена от параметъра LPM_SVALUE. Ако и двата порта sset и sclr се използват и заявяват,
стойността на порта sclr отменя стойността на порта sset. Ако е пропуснато, стойността по подразбиране е 0 (забранено).

зареждане

не

Вход за синхронно натоварване, който зарежда брояча с данни [] на следващия активен фронт на часовника. Когато се използва sload порт, портът data[] трябва да бъде свързан. Ако е пропуснато, стойността по подразбиране е 0 (забранено).

Изпратете обратна връзка

Intel FPGA Integer Arithmetic IP Cores Ръководство за потребителя 9

2. LPM_COUNTER (Брояч) IP Core 683490 | 2020.10.05 г

Таблица 3.

LPM_COUNTER Изходни портове

Име на порт

Задължително

Описание

q[]

не

Извеждане на данни от брояча. Размерът на изходния порт зависи от

Стойност на параметъра LPM_WIDTH. Или q[], или поне един от eq[15..0] портовете

трябва да са свързани.

eq[15..0]

не

Изход за декодиране на брояча. Портът eq[15..0] не е достъпен в редактора на параметри, тъй като параметърът поддържа само AHDL.
Трябва да са свързани или q[] портът, или eq[] портът. Могат да се използват до c eq портове (0 <= c <= 15). Декодират се само 16-те най-ниски стойности. Когато стойността на броенето е c, изходът на eqc се счита за висок (1). Напримерample, когато броят е 0, eq0 = 1, когато броят е 1, eq1 = 1 и когато броят е 15, eq 15 = 1. Декодираният изход за стойности на броя от 16 или по-големи изисква външно декодиране. Изходите eq[15..0] са асинхронни с изхода q[].

cout

не

Изходен порт на MSB бита на брояча. Може да се използва за свързване с друг брояч, за да се създаде по-голям брояч.

2.6. Параметри

Следващата таблица изброява параметрите за IP ядрото LPM_COUNTER.

Таблица 4.

Параметри LPM_COUNTER

Име на параметъра

Тип

LPM_WIDTH

Цяло число

LPM_DIRECTION

низ

LPM_MODULUS LPM_AVALUE

Цяло число
Цяло число/низ

LPM_SVALUE LPM_HINT

Цяло число/низ
низ

LPM_TYPE

низ

Задължително Да Не Не Не
не не
не

Описание
Указва ширините на портовете data[] и q[], ако се използват.
Стойностите са UP, DOWN и UNUSED. Ако се използва параметърът LPM_DIRECTION, горният порт не може да бъде свързан. Когато горният порт не е свързан, стойността по подразбиране на параметъра LPM_DIRECTION е UP.
Максималният брой плюс едно. Брой уникални състояния в цикъла на брояча. Ако стойността на зареждането е по-голяма от параметъра LPM_MODULUS, поведението на брояча не е посочено.
Постоянна стойност, която се зарежда, когато активът е висок. Ако зададената стойност е по-голяма или равна на , поведението на брояча е недефинирано (X) логическо ниво, където е LPM_MODULUS, ако присъства, или 2 ^ LPM_WIDTH. Intel препоръчва да посочите тази стойност като десетично число за AHDL дизайни.
Постоянна стойност, която се зарежда на нарастващия ръб на часовниковия порт, когато sset портът е висок. Intel препоръчва да посочите тази стойност като десетично число за AHDL дизайни.
Когато създадете библиотека от параметризирани модули (LPM) функция във VHDL дизайн File (.vhd), трябва да използвате параметъра LPM_HINT, за да посочите специфичен за Intel параметър. Напримерample: LPM_HINT = „CHAIN_SIZE = 8, ONE_INPUT_IS_CONSTANT = YES“
Стойността по подразбиране е НЕИЗПОЛЗВАНО.
Идентифицира името на обекта на библиотеката с параметризирани модули (LPM) във VHDL дизайна files.
продължи…

Intel FPGA Integer Arithmetic IP Cores Ръководство за потребителя 10

Изпратете обратна връзка

2. LPM_COUNTER (Брояч) IP Core 683490 | 2020.10.05 г

Име на параметъра INTENDED_DEVICE_FAMILY CARRY_CNT_EN
LABWIDE_SCLR
LPM_PORT_UPDOWN

Тип String String
низ
низ

Задължително Не Не
не
не

Описание
Този параметър се използва за целите на моделиране и поведенческа симулация. Този параметър се използва за целите на моделиране и поведенческа симулация. Редакторът на параметрите изчислява стойността на този параметър.
Специфичен за Intel параметър. Трябва да използвате параметъра LPM_HINT, за да посочите параметъра CARRY_CNT_EN във VHDL дизайна fileс. Стойностите са SMART, ON, OFF и UNUSED. Разрешава функцията LPM_COUNTER за разпространение на сигнала cnt_en през веригата за пренасяне. В някои случаи настройката на параметъра CARRY_CNT_EN може да има леко влияние върху скоростта, така че може да искате да я изключите. Стойността по подразбиране е SMART, която осигурява най-добрия компромис между размер и скорост.
Специфичен за Intel параметър. Трябва да използвате параметъра LPM_HINT, за да посочите параметъра LABWIDE_SCLR във VHDL дизайна fileс. Стойностите са ON, OFF или UNUSED. Стойността по подразбиране е ON. Позволява ви да деактивирате използването на функцията LABwide sclr, открита в остарели семейства устройства. Изключването на тази опция увеличава шансовете за пълно използване на частично запълнените LAB и по този начин може да позволи по-висока логическа плътност, когато SCLR не се прилага към пълен LAB. Този параметър е наличен за обратна съвместимост и Intel ви препоръчва да не използвате този параметър.
Указва използването на входния порт нагоре надолу. Ако е пропуснато, стойността по подразбиране е PORT_CONNECTIVITY. Когато стойността на порта е зададена на PORT_USED, портът се третира като използван. Когато стойността на порта е зададена на PORT_UNUSED, портът се третира като неизползван. Когато стойността на порта е зададена на PORT_CONNECTIVITY, използването на порта се определя чрез проверка на свързаността на порта.

Изпратете обратна връзка

Intel FPGA Integer Arithmetic IP Cores Ръководство за потребителя 11

683490 | 2020.10.05 януари XNUMX г. Изпратете обратна връзка

3. LPM_DIVIDE (Разделител) Intel FPGA IP Core

Фигура 2.

IP ядрото LPM_DIVIDE Intel FPGA прилага делител за разделяне на входна стойност на числител на входна стойност на знаменател, за да се получи частно и остатък.

Следната фигура показва портовете за IP ядрото LPM_DIVIDE.

LPM_DIVIDE Портове

LPM_DIVIDE

число[] деном[] часовник

коефициент[] остава[]

clken aclr

инст

3.1. Характеристики
IP ядрото LPM_DIVIDE предлага следните характеристики: · Генерира делител, който разделя входна стойност на числител на вход на знаменател
стойност за получаване на частно и остатък. · Поддържа ширина на данните от 1 бита. · Поддържа знакови и неподписани формат за представяне на данни както за числителя
и знаменател стойности. · Поддържа оптимизация на площ или скорост. · Предоставя опция за указване на положителен остатък. · Поддържа конвейерна конфигурируема изходна латентност. · Поддържа незадължителни портове за асинхронно изчистване и активиране на часовника.

3.2. Verilog HDL прототип
Следният прототип на Verilog HDL се намира в Verilog Design File (.v) lpm.v в директория за едасинтез.
модул lpm_divide (частно, остатък, число, деном, часовник, clken, aclr); параметър lpm_type = “lpm_divide”; параметър lpm_widthn = 1; параметър lpm_widthd = 1; параметър lpm_nrepresentation = “UNSIGNED”; параметър lpm_drepresentation = “UNSIGNED”; параметър lpm_remainderpositive = “TRUE”; параметър lpm_pipeline = 0;

Корпорация Intel. Всички права запазени. Intel, логото на Intel и други марки на Intel са търговски марки на Intel Corporation или нейните филиали. Intel гарантира производителността на своите FPGA и полупроводникови продукти според настоящите спецификации в съответствие със стандартната гаранция на Intel, но си запазва правото да прави промени на продукти и услуги по всяко време без предизвестие. Intel не поема никаква отговорност или задължения, произтичащи от приложението или използването на каквато и да е информация, продукт или услуга, описани тук, освен в случаите, когато Intel е изрично договорено в писмен вид. Клиентите на Intel се съветват да получат най-новата версия на спецификациите на устройството, преди да разчитат на публикувана информация и преди да направят поръчки за продукти или услуги. *Други имена и марки могат да бъдат заявени като собственост на други.

Регистрирано по ISO 9001: 2015

3. LPM_DIVIDE (делител) Intel FPGA IP Core 683490 | 2020.10.05 г

параметър lpm_hint = “НЕИЗПОЛЗВАН”; входен часовник; вход clken; вход aclr; вход [lpm_widthn-1:0] число; вход [lpm_widthd-1:0] denom; изход [lpm_widthn-1:0] коефициент; изход [lpm_widthd-1:0] остава; краен модул

3.3. Декларация на VHDL компонент
Декларацията на VHDL компонента се намира във VHDL Design File (.vhd) LPM_PACK.vhd в директория librariesvhdllpm.
компонент LPM_DIVIDE общ (LPM_WIDTHN : естествен; LPM_WIDTHD : естествен;
LPM_NREPRESENTATION : низ := “UNSIGNED”; LPM_DREPRESENTATION : низ := “UNSIGNED”; LPM_PIPELINE : естествено := 0; LPM_TYPE : низ := L_DIVIDE; LPM_HINT : низ := “НЕИЗПОЛЗВАН”); порт (NUMER: в std_logic_vector(LPM_WIDTHN-1 downto 0); DENOM: в std_logic_vector(LPM_WIDTHD-1 downto 0); ACLR: в std_logic:= '0'; CLOCK: в std_logic:= '0'; CLKEN: в std_logic := '1'; QUOTIENT: out std_logic_vector(LPM_WIDTHN-1 downto 0); REMAIN: out std_logic_vector(LPM_WIDTHD-1 downto 0)); краен компонент;

3.4. VHDL LIBRARY_USE декларация
Декларацията VHDL LIBRARY-USE не е необходима, ако използвате декларацията за VHDL компонент.
БИБЛИОТЕКА lpm; ИЗПОЛЗВАЙТЕ lpm.lpm_components.all;

3.5. Портове

Следващите таблици изброяват входните и изходните портове за LPM_DIVIDE IP ядрото.

Таблица 5.

LPM_DIVIDE Входни портове

Име на порт

Задължително

число []

да

деном []

да

Описание
Въвеждане на данни за числител. Размерът на входния порт зависи от стойността на параметъра LPM_WIDTHN.
Въвеждане на данни за знаменател. Размерът на входния порт зависи от стойността на параметъра LPM_WIDTHD.
продължи…

Изпратете обратна връзка

Intel FPGA Integer Arithmetic IP Cores Ръководство за потребителя 13

3. LPM_DIVIDE (делител) Intel FPGA IP Core 683490 | 2020.10.05 г

Часовник за име на порт clken
aclr

Задължително Не Не
не

Описание
Вход за часовник за конвейерно използване. За стойности на LPM_PIPELINE, различни от 0 (по подразбиране), часовниковият порт трябва да е активиран.
Часовникът позволява конвейерно използване. Когато clken портът е висок, се извършва операцията по разделяне. Когато сигналът е слаб, не се извършва операция. Ако е пропуснато, стойността по подразбиране е 1.
Асинхронен чист порт, използван по всяко време за нулиране на тръбопровода до всички '0' асинхронно към входа на часовника.

Таблица 6.

LPM_DIVIDE Изходни портове

Име на порт

Задължително

Описание

коефициент[]

да

Извеждане на данни. Размерът на изходния порт зависи от LPM_WIDTHN

стойност на параметъра.

оставам[]

да

Извеждане на данни. Размерът на изходния порт зависи от LPM_WIDTHD

стойност на параметъра.

3.6. Параметри

Следващата таблица изброява параметрите за LPM_DIVIDE Intel FPGA IP ядро.

Име на параметъра

Тип

Задължително

Описание

LPM_WIDTHN

Цяло число

да

Указва ширините на числото [] и

коефициент[] портове. Стойностите са от 1 до 64.

LPM_WIDTHD

Цяло число

да

Указва ширините на denom[] и

остават[] портове. Стойностите са от 1 до 64.

LPM_NREPRESENTATION LPM_DREPRESENTATION

низ низ

не

Знаково представяне на входа на числителя.

Стойностите са SIGNED и UNSIGNED. Когато това

параметърът е зададен на SIGNED, разделителят

интерпретира входа numer[] като две със знак

допълвам.

не

Знаково представяне на входа на знаменателя.

Стойностите са SIGNED и UNSIGNED. Когато това

параметърът е зададен на SIGNED, разделителят

интерпретира входа denom[] като две със знак

допълвам.

LPM_TYPE

низ

не

Идентифицира библиотеката на параметризираните

модули (LPM) име на обект в VHDL дизайн

files (.vhd).

LPM_HINT

низ

не

Когато създадете библиотека от

параметризираните модули (LPM) функционират в a

VHDL дизайн File (.vhd), трябва да използвате

LPM_HINT параметър за указване на Intel-

специфичен параметър. Напримерample: LPM_HINT

= „CHAIN_SIZE = 8,

ONE_INPUT_IS_CONSTANT = YES” The

стойността по подразбиране е НЕИЗПОЛЗВАНА.

LPM_REMAINDERPOSITIVE

низ

не

Специфичен за Intel параметър. Трябва да използвате

LPM_HINT параметър за указване на

LPM_REMAINDERPOSITIVE параметър в

VHDL дизайн fileс. Стойностите са TRUE или FALSE.

Ако този параметър е зададен на TRUE, тогава

стойността на порта remain[] трябва да е по-голяма

продължи…

Intel FPGA Integer Arithmetic IP Cores Ръководство за потребителя 14

Изпратете обратна връзка

3. LPM_DIVIDE (делител) Intel FPGA IP Core 683490 | 2020.10.05 г

Име на параметъра

Тип

MAXIMIZE_SPEED

Цяло число

LPM_PIPELINE

Цяло число

INTENDED_DEVICE_FAMILY SKIP_BITS

Низово цяло число

Задължителен №
Не Не Не

Описание
по-голяма или равна на нула. Ако този параметър е зададен на TRUE, тогава стойността на порта remain[] е или нула, или стойността е със същия знак, положителен или отрицателен, като стойността на цифровия порт. За да се намали площта и да се подобри скоростта, Intel препоръчва да зададете този параметър на TRUE в операции, при които остатъкът трябва да е положителен или където остатъкът е маловажен.
Специфичен за Intel параметър. Трябва да използвате параметъра LPM_HINT, за да посочите параметъра MAXIMIZE_SPEED във VHDL дизайна fileс. Стойностите са [0..9]. Ако се използва, софтуерът Intel Quartus Prime се опитва да оптимизира конкретен екземпляр на функцията LPM_DIVIDE за скорост, а не за възможност за маршрутизиране, и отменя настройката на логическата опция за Техника за оптимизация. Ако MAXIMIZE_SPEED не се използва, вместо това се използва стойността на опцията Optimization Technique. Ако стойността на MAXIMIZE_SPEED е 6 или по-висока, компилаторът оптимизира IP ядрото LPM_DIVIDE за по-висока скорост чрез използване на вериги за пренасяне; ако стойността е 5 или по-малко, компилаторът изпълнява дизайна без вериги за пренасяне.
Указва броя на тактовите цикли на латентност, свързани с изходите quotient[] и remain[]. Стойност нула (0) показва, че не съществува латентност и че е създадена чисто комбинирана функция. Ако е пропуснато, стойността по подразбиране е 0 (неконвейерно). Не можете да посочите стойност за параметъра LPM_PIPELINE, която е по-висока от LPM_WIDTHN.
Този параметър се използва за целите на моделиране и поведенческа симулация. Редакторът на параметрите изчислява стойността на този параметър.
Позволява по-ефективно разделяне на дробни битове за оптимизиране на логиката на водещите битове чрез предоставяне на броя на водещите GND към LPM_DIVIDE IP ядрото. Посочете броя на водещите GND на частния изход към този параметър.

Изпратете обратна връзка

Intel FPGA Integer Arithmetic IP Cores Ръководство за потребителя 15

683490 | 2020.10.05 януари XNUMX г. Изпратете обратна връзка

4. LPM_MULT (Множител) IP ядро

Фигура 3.

IP ядрото LPM_MULT внедрява множител за умножаване на две стойности на входни данни, за да произведе продукт като изход.

Следната фигура показва портовете за IP ядрото LPM_MULT.

LPM_Много портове

LPM_MULT часовникови данниa[] резултат[] datab[] aclr/sclr clken
инст

Характеристики на свързана информация на страница 71

4.1. Характеристики
IP ядрото LPM_MULT предлага следните характеристики: · Генерира множител, който умножава две стойности на входни данни · Поддържа ширина на данните от 1 бита · Поддържа формат за представяне на данни със знак и без знак · Поддържа оптимизация на площ или скорост · Поддържа конвейер с конфигурируема латентност на изхода · Осигурява опция за внедряване в специализирана цифрова обработка на сигнали (DSP)
блокови схеми или логически елементи (LE) Забележка: Когато се изграждат множители, по-големи от първоначално поддържания размер, може/
ще има въздействие върху производителността в резултат на каскадирането на DSP блоковете. · Поддържа опционални входни портове за асинхронно изчистване и активиране на часовник · Поддържа опционално синхронно изчистване за устройства Intel Stratix 10, Intel Arria 10 и Intel Cyclone 10 GX

Корпорация Intel. Всички права запазени. Intel, логото на Intel и други марки на Intel са търговски марки на Intel Corporation или нейните филиали. Intel гарантира производителността на своите FPGA и полупроводникови продукти според настоящите спецификации в съответствие със стандартната гаранция на Intel, но си запазва правото да прави промени на продукти и услуги по всяко време без предизвестие. Intel не поема никаква отговорност или задължения, произтичащи от приложението или използването на каквато и да е информация, продукт или услуга, описани тук, освен в случаите, когато Intel е изрично договорено в писмен вид. Клиентите на Intel се съветват да получат най-новата версия на спецификациите на устройството, преди да разчитат на публикувана информация и преди да направят поръчки за продукти или услуги. *Други имена и марки могат да бъдат заявени като собственост на други.

Регистрирано по ISO 9001: 2015

4. LPM_MULT (Множител) IP ядро ​​683490 | 2020.10.05 г
4.2. Verilog HDL прототип
Следният прототип на Verilog HDL се намира в Verilog Design File (.v) lpm.v в директория за едасинтез.
модул lpm_mult ( резултат, dataa, datab, сума, часовник, clken, aclr ) параметър lpm_type = “lpm_mult”; параметър lpm_widtha = 1; параметър lpm_widthb = 1; параметър lpm_widths = 1; параметър lpm_widthp = 1; параметър lpm_representation = “UNSIGNED”; параметър lpm_pipeline = 0; параметър lpm_hint = “НЕИЗПОЛЗВАН”; входен часовник; вход clken; вход aclr; вход [lpm_widtha-1:0] данниa; вход [lpm_widthb-1:0] datab; вход [lpm_widths-1:0] сума; изход [lpm_widthp-1:0] резултат; краен модул
4.3. Декларация на VHDL компонент
Декларацията на VHDL компонента се намира във VHDL Design File (.vhd) LPM_PACK.vhd в директория librariesvhdllpm.
компонент LPM_MULT общ ​​( LPM_WIDTHA : естествен; LPM_WIDTHB : естествен; LPM_WIDTHS : естествен := 1; LPM_WIDTHP : естествен;
LPM_REPRESENTATION : низ := “UNSIGNED”; LPM_PIPELINE : естествено := 0; LPM_TYPE: низ := L_MULT; LPM_HINT : низ := “НЕИЗПОЛЗВАН”); порт (DATAA: в std_logic_vector(LPM_WIDTHA-1 downto 0); DATAB: в std_logic_vector(LPM_WIDTHB-1 downto 0); ACLR: в std_logic:= '0'; CLOCK: в std_logic:= '0'; CLKEN: в std_logic := '1'; SUM : in std_logic_vector(LPM_WIDTHS-1 downto 0) := (OTHERS => '0'); RESULT : out std_logic_vector(LPM_WIDTHP-1 downto 0)); краен компонент;
4.4. VHDL LIBRARY_USE декларация
Декларацията VHDL LIBRARY-USE не е необходима, ако използвате декларацията за VHDL компонент.
БИБЛИОТЕКА lpm; ИЗПОЛЗВАЙТЕ lpm.lpm_components.all;

Изпратете обратна връзка

Intel FPGA Integer Arithmetic IP Cores Ръководство за потребителя 17

4. LPM_MULT (Множител) IP ядро ​​683490 | 2020.10.05 г

4.5. Сигнали

Таблица 7.

LPM_MULT входни сигнали

Име на сигнала

Задължително

Описание

dataa[]

да

Въвеждане на данни.

За устройства Intel Stratix 10, Intel Arria 10 и Intel Cyclone 10 GX размерът на входния сигнал зависи от стойността на параметъра за ширина на Dataa.

За по-стари устройства и устройства Intel Cyclone 10 LP размерът на входния сигнал зависи от стойността на параметъра LPM_WIDTHA.

datab[]

да

Въвеждане на данни.

За устройства Intel Stratix 10, Intel Arria 10 и Intel Cyclone 10 GX размерът на входния сигнал зависи от стойността на параметъра за ширина на Datab.

За по-стари и Intel Cyclone 10 LP устройства размерът на входния сигнал зависи

върху стойността на параметъра LPM_WIDTHB.

часовник

не

Вход за часовник за конвейерно използване.

За по-стари устройства и устройства Intel Cyclone 10 LP часовниковият сигнал трябва да бъде активиран за стойности на LPM_PIPELINE, различни от 0 (по подразбиране).

За устройства Intel Stratix 10, Intel Arria 10 и Intel Cyclone 10 GX сигналът на часовника трябва да бъде активиран, ако стойността на латентността е различна от 1 (по подразбиране).

clken

не

Активиране на часовника за конвейерно използване. Когато сигналът clken е висок,

извършва се операция за събиране/изваждане. Когато сигналът е слаб, няма работа

възниква. Ако е пропуснато, стойността по подразбиране е 1.

aclr sclr

не

Асинхронен чист сигнал, използван по всяко време за нулиране на тръбопровода до всички 0s,

асинхронно спрямо тактовия сигнал. Тръбопроводът се инициализира към недефиниран (X)

логическо ниво. Резултатите са последователна, но ненулева стойност.

не

Синхронен изчистен сигнал, използван по всяко време за нулиране на тръбопровода до всички 0s,

синхронно с часовниковия сигнал. Тръбопроводът се инициализира към недефиниран (X)

логическо ниво. Резултатите са последователна, но ненулева стойност.

Таблица 8.

LPM_MULT Изходни сигнали

Име на сигнала

Задължително

Описание

резултат[]

да

Извеждане на данни.

За по-стари устройства и устройства Intel Cyclone 10 LP размерът на изходния сигнал зависи от стойността на параметъра LPM_WIDTHP. Ако LPM_WIDTHP < max (LPM_WIDTHA + LPM_WIDTHB, LPM_WIDTHS) или (LPM_WIDTHA + LPM_WIDTHS), присъстват само LPM_WIDTHP MSB.

За Intel Stratix 10, Intel Arria 10 и Intel Cyclone 10 GX размерът на изходните сигнали зависи от параметъра Ширина на резултата.

4.6. Параметри за устройства Stratix V, Arria V, Cyclone V и Intel Cyclone 10 LP

4.6.1. Общи раздел

Таблица 9.

Общи раздел

Параметър

Стойност

Конфигурация на множител

Умножете входа „dataa“ по входа „datab“.

Стойност по подразбиране

Описание

Умножете входа „dataa“ по входа „datab“.

Изберете желаната конфигурация за множителя.
продължи…

Intel FPGA Integer Arithmetic IP Cores Ръководство за потребителя 18

Изпратете обратна връзка

4. LPM_MULT (Множител) IP ядро ​​683490 | 2020.10.05 г

Параметър
Колко широк трябва да бъде входът „dataa“? Колко широк трябва да бъде входът „datab“? Как трябва да се определи ширината на изхода „резултат“? Ограничете ширината

Стойност
Умножете въведеното „dataa“ по себе си (операция за повдигане на квадрат)
1-256 бита

Стойност по подразбиране

Описание

8 бита

Посочете ширината на порта dataa[].

1-256 бита

8 бита

Посочете ширината на порта datab[].

Автоматично изчисляване на ширината Ограничете ширината
1-512 бита

Автоматично изчисляване на ширината

Изберете желания метод за определяне на ширината на резултата [] порт.

16 бита

Посочете ширината на резултата [] порт.
Тази стойност ще бъде ефективна само ако изберете Ограничаване на ширината в параметъра Тип.

4.6.2. Общи 2 Таб

Таблица 10. Общи 2 Таб

Параметър

Стойност

Въвеждане на Datab

Входната шина „datab“ има ли постоянна стойност?

Не Да

Тип умножение

Кой тип

Неподписан

умножение искаш ли Подписано

Внедряване

Коя реализация на множител трябва да се използва?

Използвайте изпълнението по подразбиране
Използвайте специалната схема на умножител (Не се предлага за всички семейства)
Използвайте логически елементи

Стойност по подразбиране

Описание

не

Изберете Да, за да укажете постоянната стойност на

входна шина `datab', ако има такава.

Неподписан

Посочете формата на представяне както за dataa[], така и за datab[] входове.

Използвайте изпълнението по подразбиране

Изберете желания метод за определяне на ширината на резултата [] порт.

4.6.3. Раздел "Тръбопроводи".

Таблица 11. Раздел „Тръбопроводи“.

Параметър

Искате ли да насочите No

функция?

да

Стойност

Създайте „aclr“

асинхронен чист порт

Стойност по подразбиране

Описание

не

Изберете Да, за да активирате регистъра на тръбопровода към

изхода на множителя и посочете желания

латентност на изхода в тактовия цикъл. Активиране на

регистърът на тръбопровода добавя допълнителна латентност към

изход.

Без отметка

Изберете тази опция, за да разрешите на aclr порта да използва асинхронно изчистване за регистъра на конвейера.
продължи…

Изпратете обратна връзка

Intel FPGA Integer Arithmetic IP Cores Ръководство за потребителя 19

4. LPM_MULT (Множител) IP ядро ​​683490 | 2020.10.05 г

Параметър
Създайте часовник за активиране на „clken“.
Оптимизация
Какъв тип оптимизация искате?

Стойност —
Област на скоростта по подразбиране

Стойност по подразбиране

Описание

Без отметка

Указва активно разрешаване на висок часовник за часовниковия порт на регистъра на конвейера

По подразбиране

Посочете желаната оптимизация за IP ядрото.
Изберете По подразбиране, за да позволите на софтуера Intel Quartus Prime да определи най-добрата оптимизация за IP ядрото.

4.7. Параметри за устройства Intel Stratix 10, Intel Arria 10 и Intel Cyclone 10 GX

4.7.1. Общи раздел

Таблица 12. Таб

Параметър

Стойност

Стойност по подразбиране

Описание

Тип конфигурация на множителя
Ширина на порта за данни

Умножете входа „dataa“ по входа „datab“.
Умножете въведеното „dataa“ по себе си (операция за повдигане на квадрат)

Умножете входа „dataa“ по входа „datab“.

Изберете желаната конфигурация за множителя.

Ширина на данните

1-256 бита

8 бита

Посочете ширината на порта dataa[].

Ширина на табл

1-256 бита

8 бита

Посочете ширината на порта datab[].

Как трябва да се определи ширината на изхода „резултат“?

Тип

Автоматично изчисляване на ширината
Ограничете ширината

Автоматично изчисляване на ширината

Изберете желания метод за определяне на ширината на резултата [] порт.

Стойност

1-512 бита

16 бита

Посочете ширината на резултата [] порт.
Тази стойност ще бъде ефективна само ако изберете Ограничаване на ширината в параметъра Тип.

Ширина на резултата

1-512 бита

Показва ефективната ширина на резултата [] порт.

4.7.2. Общи 2 Таб

Таблица 13. Общи 2 Таб

Параметър

Въвеждане на Datab

Входната шина „datab“ има ли постоянна стойност?

Не Да

Стойност

Стойност по подразбиране

Описание

не

Изберете Да, за да укажете постоянната стойност на

входна шина `datab', ако има такава.

продължи…

Intel FPGA Integer Arithmetic IP Cores Ръководство за потребителя 20

Изпратете обратна връзка

4. LPM_MULT (Множител) IP ядро ​​683490 | 2020.10.05 г

Параметър

Стойност

Стойност

Всяка стойност, по-голяма от 0

Тип умножение

Кой тип

Неподписан

умножение искаш ли Подписано

Стил на изпълнение

Коя реализация на множител трябва да се използва?

Използвайте изпълнението по подразбиране
Използвайте специалната схема на умножител
Използвайте логически елементи

Стойност по подразбиране

Описание

0

Посочете постоянната стойност на datab[] port.

Неподписан

Посочете формата на представяне както за dataa[], така и за datab[] входове.

Използвайте изпълнението по подразбиране

Изберете желания метод за определяне на ширината на резултата [] порт.

4.7.3. Конвейерна обработка

Таблица 14. Раздел „Тръбопроводи“.

Параметър

Стойност

Искате ли да преработите функцията?

Тръбопровод

Не Да

Тип сигнал за изчистване на латентността

Всяка стойност, по-голяма от 0.
НЯМА ACLR SCLR

Създайте часовник „clken“.

активиране на часовника

Какъв тип оптимизация искате?

Тип

Област на скоростта по подразбиране

Стойност по подразбиране

Описание

№ 1 НЯМА

Изберете Да, за да активирате конвейерния регистър към изхода на умножителя. Активирането на регистъра на тръбопровода добавя допълнителна латентност към изхода.
Посочете желаното изходно забавяне в тактовия цикъл.
Посочете типа нулиране за регистъра на конвейера. Изберете NONE, ако не използвате регистър на конвейер. Изберете ACLR, за да използвате асинхронно изчистване за регистъра на конвейера. Това ще генерира ACLR порт. Изберете SCLR, за да използвате синхронно изчистване за регистъра на конвейера. Това ще генерира SCLR порт.
Указва активно разрешаване на висок часовник за часовниковия порт на регистъра на конвейера

По подразбиране

Посочете желаната оптимизация за IP ядрото.
Изберете По подразбиране, за да позволите на софтуера Intel Quartus Prime да определи най-добрата оптимизация за IP ядрото.

Изпратете обратна връзка

Intel FPGA Integer Arithmetic IP Cores Ръководство за потребителя 21

683490 | 2020.10.05 януари XNUMX г. Изпратете обратна връзка

5. LPM_ADD_SUB (Събиращ/Изваждащ)

Фигура 4.

IP ядрото LPM_ADD_SUB ви позволява да внедрите суматор или изваждащ елемент за добавяне или изваждане на набори от данни, за да произведете изход, съдържащ сумата или разликата на входните стойности.

Следната фигура показва портовете за IP ядрото LPM_ADD_SUB.

LPM_ADD_SUB Портове

LPM_ADD_SUB add_sub cin

dataa[]

часовник clken datab[] aclr

резултат [] препълване cout

инст

5.1. Характеристики
IP ядрото LPM_ADD_SUB предлага следните функции: · Генерира суматор, изваждащ и динамично конфигурируем суматор/изваждащ
функции. · Поддържа ширина на данните от 1 бита. · Поддържа формат за представяне на данни като подписани и неподписани. · Поддържа незадължително пренасяне (заемане), асинхронно изчистване и активиране на часовника
входни портове. · Поддържа опционални изходни портове за пренасяне (заемане) и преливане. · Присвоява една от шините за входни данни на константа. · Поддържа конвейерна обработка с конфигурируема латентност на изхода.

Корпорация Intel. Всички права запазени. Intel, логото на Intel и други марки на Intel са търговски марки на Intel Corporation или нейните филиали. Intel гарантира производителността на своите FPGA и полупроводникови продукти според настоящите спецификации в съответствие със стандартната гаранция на Intel, но си запазва правото да прави промени на продукти и услуги по всяко време без предизвестие. Intel не поема никаква отговорност или задължения, произтичащи от приложението или използването на каквато и да е информация, продукт или услуга, описани тук, освен в случаите, когато Intel е изрично договорено в писмен вид. Клиентите на Intel се съветват да получат най-новата версия на спецификациите на устройството, преди да разчитат на публикувана информация и преди да направят поръчки за продукти или услуги. *Други имена и марки могат да бъдат заявени като собственост на други.

Регистрирано по ISO 9001: 2015

5. LPM_ADD_SUB (Добавящ/изваждащ) 683490 | 2020.10.05 г
5.2. Verilog HDL прототип
Следният прототип на Verilog HDL се намира в Verilog Design File (.v) lpm.v в директория за едасинтез.
модул lpm_add_sub (резултат, cout, препълване, add_sub, cin, dataa, datab, clock, clken, aclr); параметър lpm_type = “lpm_add_sub”; параметър lpm_width = 1; параметър lpm_direction = “НЕИЗПОЛЗВАН”; параметър lpm_representation = “SIGNED”; параметър lpm_pipeline = 0; параметър lpm_hint = “НЕИЗПОЛЗВАН”; вход [lpm_width-1:0] dataa, datab; вход add_sub, cin; входен часовник; вход clken; вход aclr; изход [lpm_width-1:0] резултат; изход изход, преливане; краен модул
5.3. Декларация на VHDL компонент
Декларацията на VHDL компонента се намира във VHDL Design File (.vhd) LPM_PACK.vhd в директория librariesvhdllpm.
компонент LPM_ADD_SUB общ (LPM_WIDTH : естествен;
LPM_DIRECTION : низ := “НЕИЗПОЛЗВАН”; LPM_REPRESENTATION: низ := “SIGNED”; LPM_PIPELINE : естествено := 0; LPM_TYPE : низ := L_ADD_SUB; LPM_HINT : низ := “НЕИЗПОЛЗВАН”); порт (DATAA: в std_logic_vector(LPM_WIDTH-1 downto 0); DATAB: в std_logic_vector(LPM_WIDTH-1 downto 0); ACLR: в std_logic:= '0'; CLOCK: в std_logic:= '0'; CLKEN: в 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); краен компонент;
5.4. VHDL LIBRARY_USE декларация
Декларацията VHDL LIBRARY-USE не е необходима, ако използвате декларацията за VHDL компонент.
БИБЛИОТЕКА lpm; ИЗПОЛЗВАЙТЕ lpm.lpm_components.all;
5.5. Портове
Следващите таблици изброяват входните и изходните портове за IP ядрото LPM_ADD_SUB.

Изпратете обратна връзка

Intel FPGA Integer Arithmetic IP Cores Ръководство за потребителя 23

5. LPM_ADD_SUB (Добавящ/изваждащ) 683490 | 2020.10.05 г

Таблица 15. LPM_ADD_SUB IP основни входни портове

Име на порт

Задължително

Описание

цин

не

Пренасяне към бита от нисък ред. За операциите на добавяне стойността по подразбиране е 0. За

операции на изваждане, стойността по подразбиране е 1.

dataa[]

да

Въвеждане на данни. Размерът на входния порт зависи от стойността на параметъра LPM_WIDTH.

datab[]

да

Въвеждане на данни. Размерът на входния порт зависи от стойността на параметъра LPM_WIDTH.

add_sub

не

Допълнителен входен порт за активиране на динамично превключване между суматора и изваждащия

функции. Ако се използва параметърът LPM_DIRECTION, add_sub не може да се използва. Ако

пропуснато, стойността по подразбиране е ADD. Intel препоръчва да използвате

LPM_DIRECTION параметър за указване на работата на функцията LPM_ADD_SUB,

вместо да присвоите константа на порта add_sub.

часовник

не

Вход за конвейерно използване. Портът за часовник осигурява вход за часовник за конвейер

операция. За стойности на LPM_PIPELINE, различни от 0 (по подразбиране), часовниковият порт трябва да бъде

активиран.

clken

не

Активиране на часовника за конвейерно използване. Когато clken портът е висок, суматорът/

извършва се операция на изваждане. Когато сигналът е слаб, не се извършва операция. Ако

пропуснато, стойността по подразбиране е 1.

aclr

не

Асинхронно изчистване за конвейерно използване. Тръбопроводът се инициализира към недефиниран (X)

логическо ниво. Портът aclr може да се използва по всяко време за нулиране на конвейера до всички 0,

асинхронно спрямо тактовия сигнал.

Таблица 16. LPM_ADD_SUB IP Core изходни портове

Име на порт

Задължително

Описание

резултат[]

да

Извеждане на данни. Размерът на изходния порт зависи от параметъра LPM_WIDTH

стойност.

cout

не

Изнасяне (заемане) на най-значимия бит (MSB). Портът cout има физически

тълкуване като пренасяне (заемане) на MSB. Портът cout открива

препълване в UNSIGNED операции. Портът cout работи по същия начин за

Операции SIGNED и UNSIGNED.

преливане

не

Незадължителен изход за изключение при препълване. Преливният порт има физическа интерпретация като

XOR на пренасянето към MSB с пренасянето на MSB. Портът за преливане

потвърждава, когато резултатите надвишават наличната точност и се използва само когато

Стойността на параметъра LPM_REPRESENTATION е ПОДПИСАН.

5.6. Параметри

Следващата таблица изброява LPM_ADD_SUB IP основните параметри.

Таблица 17. LPM_ADD_SUB IP основни параметри

Име на параметър LPM_WIDTH

Въведете Integer

Задължително Да

Описание
Указва ширините на портовете dataa[], datab[] и result[].

LPM_DIRECTION

низ

не

Стойностите са ADD, SUB и UNUSED. Ако е пропуснато, стойността по подразбиране е DEFAULT, което насочва параметъра да вземе стойността си от порта add_sub. Портът add_sub не може да се използва, ако се използва LPM_DIRECTION. Intel препоръчва да използвате параметъра LPM_DIRECTION, за да укажете работата на функцията LPM_ADD_SUB, вместо да присвоявате константа на порта add_sub.
продължи…

Intel FPGA Integer Arithmetic IP Cores Ръководство за потребителя 24

Изпратете обратна връзка

5. LPM_ADD_SUB (Добавящ/изваждащ) 683490 | 2020.10.05 г

Име на параметър LPM_REPRESENTATION LPM_PIPELINE LPM_HINT LPM_TYPE ONE_INPUT_IS_CONSTANT MAXIMIZE_SPEED
INTENDED_DEVICE_FAMILY

Тип String Integer String String String Integer
низ

Задължително Не Не Не Не Не Не Не
не

Описание
Указва вида на извършеното добавяне. Стойностите са SIGNED и UNSIGNED. Ако е пропуснато, стойността по подразбиране е SIGNED. Когато този параметър е зададен на SIGNED, суматорът/изваждащото устройство интерпретира въведените данни като допълнение със знак две.
Указва броя на тактовите цикли на латентност, свързани с изходния резултат []. Стойност нула (0) показва, че не съществува латентност и че ще бъде създадена чисто комбинирана функция. Ако е пропуснато, стойността по подразбиране е 0 (неконвейерно).
Позволява ви да посочите специфични за Intel параметри във VHDL дизайна files (.vhd). Стойността по подразбиране е НЕИЗПОЛЗВАНО.
Идентифицира името на обекта на библиотеката с параметризирани модули (LPM) във VHDL дизайна files.
Специфичен за Intel параметър. Трябва да използвате параметъра LPM_HINT, за да посочите параметъра ONE_INPUT_IS_CONSTANT във VHDL дизайна fileс. Стойностите са ДА, НЕ и НЕИЗПОЛЗВАНО. Осигурява по-голяма оптимизация, ако един вход е постоянен. Ако е пропуснато, стойността по подразбиране е НЕ.
Специфичен за Intel параметър. Трябва да използвате параметъра LPM_HINT, за да посочите параметъра MAXIMIZE_SPEED във VHDL дизайна fileс. Можете да зададете стойност между 0 и 10. Ако се използва, софтуерът Intel Quartus Prime се опитва да оптимизира конкретен екземпляр на функцията LPM_ADD_SUB за скорост, а не за възможност за маршрутизиране, и отменя настройката на логическата опция Optimization Technique. Ако MAXIMIZE_SPEED не се използва, вместо това се използва стойността на опцията Optimization Technique. Ако настройката за MAXIMIZE_SPEED е 6 или по-висока, компилаторът оптимизира IP ядрото LPM_ADD_SUB за по-висока скорост, използвайки вериги за пренасяне; ако настройката е 5 или по-малко, компилаторът изпълнява дизайна без вериги за пренасяне. Този параметър трябва да бъде указан за устройства Cyclone, Stratix и Stratix GX само когато портът add_sub не се използва.
Този параметър се използва за целите на моделиране и поведенческа симулация. Редакторът на параметрите изчислява стойността на този параметър.

Изпратете обратна връзка

Intel FPGA Integer Arithmetic IP Cores Ръководство за потребителя 25

683490 | 2020.10.05 януари XNUMX г. Изпратете обратна връзка

6. LPM_COMPARE (компаратор)

Фигура 5.

IP ядрото LPM_COMPARE сравнява стойността на два набора от данни, за да определи връзката между тях. В най-простата му форма можете да използвате изключващ ИЛИ порт, за да определите дали два бита данни са равни.

Следната фигура показва портовете за IP ядрото LPM_COMPARE.

LPM_COMPARE Портове

LPM_COMPARE

clken

алб

aeb

dataa[]

agb

datab[]

възраст b

часовник

анеб

aclr

алеб

инст

6.1. Характеристики
IP ядрото LPM_COMPARE предлага следните функции: · Генерира функция за сравнение за сравняване на два набора от данни · Поддържа ширина на данните от 1 бита · Поддържа формат за представяне на данни, като например със знак и без знак · Произвежда следните типове изход:
— alb (вход A е по-малък от вход B) — aeb (вход A е равен на вход B) — agb (вход A е по-голям от вход B) — ageb (вход A е по-голям или равен на вход B) — aneb ( вход A не е равен на вход B) — aleb (вход A е по-малък или равен на вход B) · Поддържа незадължителни входни портове за асинхронно изчистване и активиране на часовника · Присвоява входа datab[] на константа · Поддържа конвейерна обработка с конфигурируема изходна латентност

Корпорация Intel. Всички права запазени. Intel, логото на Intel и други марки на Intel са търговски марки на Intel Corporation или нейните филиали. Intel гарантира производителността на своите FPGA и полупроводникови продукти според настоящите спецификации в съответствие със стандартната гаранция на Intel, но си запазва правото да прави промени на продукти и услуги по всяко време без предизвестие. Intel не поема никаква отговорност или задължения, произтичащи от приложението или използването на каквато и да е информация, продукт или услуга, описани тук, освен в случаите, когато Intel е изрично договорено в писмен вид. Клиентите на Intel се съветват да получат най-новата версия на спецификациите на устройството, преди да разчитат на публикувана информация и преди да направят поръчки за продукти или услуги. *Други имена и марки могат да бъдат заявени като собственост на други.

Регистрирано по ISO 9001: 2015

6. LPM_COMPARE (Компаратор) 683490 | 2020.10.05 г
6.2. Verilog HDL прототип
Следният прототип на Verilog HDL се намира в Verilog Design File (.v) lpm.v в директория за едасинтез.
модул lpm_compare (alb, aeb, agb, aleb, aneb, ageb, dataa, datab, часовник, clken, aclr); параметър lpm_type = “lpm_compare”; параметър lpm_width = 1; параметър lpm_representation = “UNSIGNED”; параметър lpm_pipeline = 0; параметър lpm_hint = “НЕИЗПОЛЗВАН”; вход [lpm_width-1:0] dataa, datab; входен часовник; вход clken; вход aclr; извеждане alb, aeb, agb, aleb, aneb, ageb; краен модул
6.3. Декларация на VHDL компонент
Декларацията на VHDL компонента се намира във VHDL Design File (.vhd) LPM_PACK.vhd в директория librariesvhdllpm.
компонент LPM_COMPARE общ (LPM_WIDTH : естествен;
LPM_REPRESENTATION : низ := “UNSIGNED”; LPM_PIPELINE : естествено := 0; LPM_TYPE: низ := L_COMPARE; LPM_HINT : низ := “НЕИЗПОЛЗВАН”); порт (DATAA: в std_logic_vector(LPM_WIDTH-1 downto 0); DATAB: в std_logic_vector(LPM_WIDTH-1 downto 0); ACLR: в std_logic:= '0'; CLOCK: в std_logic:= '0'; CLKEN: в std_logic := '1'; AGB : изход std_logic; AGEB : изход std_logic; AEB : изход std_logic; ANEB : изход std_logic; ALB : изход std_logic; ALEB : изход std_logic); краен компонент;
6.4. VHDL LIBRARY_USE декларация
Декларацията VHDL LIBRARY-USE не е необходима, ако използвате декларацията за VHDL компонент.
БИБЛИОТЕКА lpm; ИЗПОЛЗВАЙТЕ lpm.lpm_components.all;
6.5. Портове
Следните таблици изброяват входните и изходните портове за LMP_COMPARE IP ядрото.

Изпратете обратна връзка

Intel FPGA Integer Arithmetic IP Cores Ръководство за потребителя 27

6. LPM_COMPARE (Компаратор) 683490 | 2020.10.05 г

Таблица 18. LPM_COMPARE IP основни входни портове

Име на порт

Задължително

Описание

dataa[]

да

Въвеждане на данни. Размерът на входния порт зависи от стойността на параметъра LPM_WIDTH.

datab[]

да

Въвеждане на данни. Размерът на входния порт зависи от стойността на параметъра LPM_WIDTH.

часовник

не

Вход за часовник за конвейерно използване. Портът за часовник осигурява вход за часовник за конвейер

операция. За стойности на LPM_PIPELINE, различни от 0 (по подразбиране), часовниковият порт трябва да бъде

активиран.

clken

не

Активиране на часовника за конвейерно използване. Когато clken портът е висок,

извършва се операция за сравнение. Когато сигналът е слаб, не се извършва операция. Ако

пропуснато, стойността по подразбиране е 1.

aclr

не

Асинхронно изчистване за конвейерно използване. Тръбопроводът се инициализира към недефинирана (X) логика

ниво. Портът aclr може да се използва по всяко време за нулиране на конвейера до всички 0,

асинхронно спрямо тактовия сигнал.

Таблица 19. LPM_COMPARE IP основни изходни портове

Име на порт

Задължително

Описание

алб

не

Изходен порт за компаратора. Утвърждава се, ако вход A е по-малък от вход B.

aeb

не

Изходен порт за компаратора. Утвърждава се, ако вход A е равен на вход B.

agb

не

Изходен порт за компаратора. Потвърждава се, ако вход A е по-голям от вход B.

възраст b

не

Изходен порт за компаратора. Утвърждава се, ако входът A е по-голям или равен на входа

B.

анеб

не

Изходен порт за компаратора. Потвърждава се, ако вход A не е равен на вход B.

алеб

не

Изходен порт за компаратора. Потвърждава се, ако вход A е по-малък или равен на вход B.

6.6. Параметри

Следващата таблица изброява параметрите за IP ядрото LPM_COMPARE.

Таблица 20. LPM_COMPARE IP основни параметри

Име на параметъра

Тип

Задължително

LPM_WIDTH

Цяло число Да

LPM_ПРЕДСТАВИТЕЛСТВО

низ

не

LPM_PIPELINE

Цяло число №

LPM_HINT

низ

не

Описание
Указва ширините на портовете dataa[] и datab[].
Указва вида на извършеното сравнение. Стойностите са SIGNED и UNSIGNED. Ако е пропуснато, стойността по подразбиране е UNSIGNED. Когато стойността на този параметър е зададена на SIGNED, компараторът интерпретира въведените данни като допълнение със знак две.
Указва броя на тактовите цикли на латентност, свързани с изхода alb, aeb, agb, ageb, aleb или aneb. Стойност нула (0) показва, че не съществува латентност и че ще бъде създадена чисто комбинирана функция. Ако е пропуснато, стойността по подразбиране е 0 (неконвейерно).
Позволява ви да посочите специфични за Intel параметри във VHDL дизайна files (.vhd). Стойността по подразбиране е НЕИЗПОЛЗВАНО.
продължи…

Intel FPGA Integer Arithmetic IP Cores Ръководство за потребителя 28

Изпратете обратна връзка

6. LPM_COMPARE (Компаратор) 683490 | 2020.10.05 г
Име на параметър LPM_TYPE INTENDED_DEVICE_FAMILY
ONE_INPUT_IS_CONSTANT

Тип String String
низ

Задължително Не Не
не

Описание
Идентифицира името на обекта на библиотеката с параметризирани модули (LPM) във VHDL дизайна files.
Този параметър се използва за целите на моделиране и поведенческа симулация. Редакторът на параметрите изчислява стойността на този параметър.
Специфичен за Intel параметър. Трябва да използвате параметъра LPM_HINT, за да посочите параметъра ONE_INPUT_IS_CONSTANT във VHDL дизайна fileс. Стойностите са ДА, НЕ или НЕИЗПОЛЗВАНО. Осигурява по-голяма оптимизация, ако даден вход е постоянен. Ако е пропуснато, стойността по подразбиране е НЕ.

Изпратете обратна връзка

Intel FPGA Integer Arithmetic IP Cores Ръководство за потребителя 29

683490 | 2020.10.05 януари XNUMX г. Изпратете обратна връзка

7. ALTECC (Код за коригиране на грешки: енкодер/декодер) IP ядро

Фигура 6.

Intel предоставя ALTECC IP ядрото за реализиране на ECC функционалността. ECC открива повредени данни, които възникват от страна на приемника по време на предаване на данни. Този метод за коригиране на грешки е най-подходящ за ситуации, при които грешките възникват на случаен принцип, а не на поредици.

ECC открива грешки чрез процеса на кодиране и декодиране на данни. Напримерampнапример, когато ECC се прилага в приложение за предаване, данните, прочетени от източника, се кодират преди да бъдат изпратени към приемника. Изходът (кодова дума) от енкодера се състои от необработените данни, добавени с броя на битовете за четност. Точният брой добавени битове за паритет зависи от броя на битовете във входните данни. След това генерираната кодова дума се предава до дестинацията.

Приемникът получава кодовата дума и я декодира. Информацията, получена от декодера, определя дали е открита грешка. Декодерът открива еднобитови и двубитови грешки, но може да коригира само еднобитови грешки в повредените данни. Този тип ECC е двойна корекция на единична грешка (SECDED).

Можете да конфигурирате функциите на енкодер и декодер на ALTECC IP ядрото. Входните данни към енкодера се кодират за генериране на кодова дума, която е комбинация от входните данни и генерираните битове за паритет. Генерираната кодова дума се предава към модула на декодера за декодиране точно преди да достигне своя целеви блок. Декодерът генерира вектор на синдрома, за да определи дали има грешка в получената кодова дума. Декодерът коригира данните само ако еднобитовата грешка е от битовете данни. Не се маркира сигнал, ако еднобитовата грешка е от битовете за четност. Декодерът също има флагови сигнали, за да покаже статуса на получените данни и действието, предприето от декодера, ако има такова.

Следващите фигури показват портовете за IP ядрото на ALTECC.

ALTECC портове за енкодер

ALTECC_ENCODER

данни[]

q[]

часовник

часовник

aclr

инст

Корпорация Intel. Всички права запазени. Intel, логото на Intel и други марки на Intel са търговски марки на Intel Corporation или нейните филиали. Intel гарантира производителността на своите FPGA и полупроводникови продукти според настоящите спецификации в съответствие със стандартната гаранция на Intel, но си запазва правото да прави промени на продукти и услуги по всяко време без предизвестие. Intel не поема никаква отговорност или задължения, произтичащи от приложението или използването на каквато и да е информация, продукт или услуга, описани тук, освен в случаите, когато Intel е изрично договорено в писмен вид. Клиентите на Intel се съветват да получат най-новата версия на спецификациите на устройството, преди да разчитат на публикувана информация и преди да направят поръчки за продукти или услуги. *Други имена и марки могат да бъдат заявени като собственост на други.

Регистрирано по ISO 9001: 2015

7. ALTECC (Код за коригиране на грешки: енкодер/декодер) IP Core 683490 | 2020.10.05 г

Фигура 7. Портове за декодер ALTECC

ALTECC_DECODER

данни[] часовник clocken

q[] err_detected err_corrected
грешка_фатална

aclr

инст

7.1. Функции на енкодера ALTECC

IP ядрото на енкодера ALTECC предлага следните функции: · Извършва кодиране на данни с помощта на схемата за кодиране на Hamming · Поддържа ширина на данните от 2 бита · Поддържа формат за представяне на данни със знак и без знак · Поддържа конвейерна обработка с латентност на изхода от един или два тактови цикъла · Поддържа опция портове за асинхронно изчистване и активиране на часовник

IP ядрото на енкодера ALTECC приема и кодира данните, използвайки схемата за кодиране на Hamming. Схемата за кодиране на Hamming извлича битовете за паритет и ги добавя към оригиналните данни, за да произведе изходната кодова дума. Броят на добавените битове за паритет зависи от ширината на данните.

Следната таблица изброява броя на битовете за четност, добавени за различни диапазони от ширини на данни. Колоната Total Bits представлява общия брой битове на входните данни и добавените битове за паритет.

Таблица 21.

Брой битове за паритет и кодова дума според ширината на данните

Ширина на данните

Брой битове за четност

Общо битове (кодова дума)

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

Извличането на паритетен бит използва проверка на четен паритет. Допълнителният 1 бит (показан в таблицата като +1) се добавя към битовете за паритет като MSB на кодовата дума. Това гарантира, че кодовата дума има четен брой 1. Напримерampнапример, ако ширината на данните е 4 бита, 4 бита за четност се добавят към данните, за да станат кодова дума с общо 8 бита. Ако 7 бита от LSB на 8-битовата кодова дума имат нечетен брой 1, 8-ият бит (MSB) на кодовата дума е 1, което прави общия брой 1 в кодовата дума четен.
Следващата фигура показва генерираната кодова дума и подредбата на битовете за паритет и битовете за данни в 8-битов вход за данни.

Изпратете обратна връзка

Intel FPGA Integer Arithmetic IP Cores Ръководство за потребителя 31

7. ALTECC (Код за коригиране на грешки: енкодер/декодер) IP Core 683490 | 2020.10.05 г

Фигура 8.

Подреждане на битове за паритет и битове за данни в 8-битова генерирана кодова дума

MSB

LSB

4 бита за четност

4 бита данни

8

1

IP ядрото на енкодера ALTECC приема само входни ширини от 2 до 64 бита наведнъж. Ширините на входа от 12 бита, 29 бита и 64 бита, които са идеално подходящи за устройства на Intel, генерират изходи съответно от 18 бита, 36 бита и 72 бита. Можете да контролирате ограничението за избор на битове в редактора на параметри.

7.2. Verilog HDL прототип (ALTECC_ENCODER)
Следният прототип на Verilog HDL се намира в Verilog Design File (.v) lpm.v в директория за едасинтез.
модул altecc_encoder #( параметър предназначен_устройство_фамилия = “неизползван”, параметър lpm_pipeline = 0, параметър width_codeword = 8, параметър width_dataword = 8, параметър lpm_type = “altecc_encoder”, параметър lpm_hint = “unused”) ( входен проводник aclr, входен проводник часовник, вход кабелен часовник, входен проводник [width_dataword-1:0] данни, изходен проводник [width_codeword-1:0] q); краен модул

7.3. Verilog HDL прототип (ALTECC_DECODER)
Следният прототип на Verilog HDL се намира в Verilog Design File (.v) lpm.v в директория за едасинтез.
модул altecc_decoder #( параметър предназначен_device_family = “неизползван”, параметър lpm_pipeline = 0, параметър width_codeword = 8, параметър width_dataword = 8, параметър lpm_type = “altecc_decoder”, параметър lpm_hint = “unused”) ( входен проводник aclr, входен кабелен часовник, вход кабел clocken, входен проводник [width_codeword-1:0] данни, изходен проводник err_corrected, изходен проводник err_detected, изходен проводник err_fatal, изходен проводник [width_dataword-1:0] q); краен модул

Intel FPGA Integer Arithmetic IP Cores Ръководство за потребителя 32

Изпратете обратна връзка

7. ALTECC (Код за коригиране на грешки: енкодер/декодер) IP Core 683490 | 2020.10.05 г
7.4. Декларация на VHDL компонент (ALTECC_ENCODER)
Декларацията на VHDL компонента се намира във VHDL Design File (.vhd) altera_mf_components.vhd в директория librariesvhdlaltera_mf.
компонент altecc_encoder generic (načrtovanо_устройство_фамилия:низ:= “неизползван”; lpm_pipeline:естествено:= 0; width_codeword:естествено:= 8; width_dataword:естествено:= 8; lpm_hint:низ:= “НЕИЗПОЛЗВАН”; lpm_type:низ:= “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 надолу до 0)); краен компонент;
7.5. Декларация на VHDL компонент (ALTECC_DECODER)
Декларацията на VHDL компонента се намира във VHDL Design File (.vhd) altera_mf_components.vhd в директория librariesvhdlaltera_mf.
компонент altecc_decoder generic ( предназначено_устройство_фамилия:низ := “неизползван”; lpm_pipeline:натурален := 0; width_codeword:натурален := 8; width_dataword:натурален := 8; lpm_hint:низ := “НЕИЗПОЛЗВАН”; lpm_type:низ := “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); краен компонент;
7.6. VHDL LIBRARY_USE декларация
Декларацията VHDL LIBRARY-USE не е необходима, ако използвате декларацията за VHDL компонент.
БИБЛИОТЕКА altera_mf; ИЗПОЛЗВАЙТЕ altera_mf.altera_mf_components.all;
7.7. Портове за енкодер
Следващите таблици изброяват входните и изходните портове за IP ядрото на енкодера ALTECC.

Изпратете обратна връзка

Intel FPGA Integer Arithmetic IP Cores Ръководство за потребителя 33

7. ALTECC (Код за коригиране на грешки: енкодер/декодер) IP Core 683490 | 2020.10.05 г

Таблица 22. Входни портове на енкодер ALTECC

Име на порт

Задължително

Описание

данни[]

да

Порт за въвеждане на данни. Размерът на входния порт зависи от WIDTH_DATAWORD

стойност на параметъра. Портът data[] съдържа необработените данни, които трябва да бъдат кодирани.

часовник

да

Входен порт за часовник, който осигурява часовниковия сигнал за синхронизиране на операцията по кодиране.

Портът за часовник е необходим, когато стойността на LPM_PIPELINE е по-голяма от 0.

часовник

не

Активиране на часовника. Ако е пропуснато, стойността по подразбиране е 1.

aclr

не

Асинхронен чист вход. Активният сигнал с висок aclr може да се използва по всяко време за

асинхронно изчистване на регистрите.

Таблица 23. Изходни портове на енкодер ALTECC

Име на порт q[]

Задължително Да

Описание
Порт за изход на кодирани данни. Размерът на изходния порт зависи от стойността на параметъра WIDTH_CODEWORD.

7.8. Декодерни портове

Следните таблици изброяват входните и изходните портове за IP ядрото на декодера ALTECC.

Таблица 24. Входни портове на ALTECC декодер

Име на порт

Задължително

Описание

данни[]

да

Порт за въвеждане на данни. Размерът на входния порт зависи от стойността на параметъра WIDTH_CODEWORD.

часовник

да

Входен порт за часовник, който осигурява часовниковия сигнал за синхронизиране на операцията по кодиране. Портът за часовник е необходим, когато стойността на LPM_PIPELINE е по-голяма от 0.

часовник

не

Активиране на часовника. Ако е пропуснато, стойността по подразбиране е 1.

aclr

не

Асинхронен чист вход. Активният висок aclr сигнал може да се използва по всяко време за асинхронно изчистване на регистрите.

Таблица 25. Изходни портове на ALTECC декодер

Име на порт q[]

Задължително Да

Описание
Порт за изход на декодирани данни. Размерът на изходния порт зависи от стойността на параметъра WIDTH_DATAWORD.

err_detected Да

Флаг сигнал за отразяване на състоянието на получените данни и указва всички открити грешки.

err_correcte Да d

Флаг сигнал за отразяване на състоянието на получените данни. Означава намерена и коригирана еднобитова грешка. Можете да използвате данните, защото вече са коригирани.

грешка_фатална

да

Флаг сигнал за отразяване на състоянието на получените данни. Означава двубитова грешка, намерена, но некоригирана. Не трябва да използвате данните, ако се твърди този сигнал.

syn_e

не

Изходен сигнал, който ще бъде висок, когато бъде открита еднобитова грешка в паритета

битове.

7.9. Параметри на енкодера
Следващата таблица изброява параметрите за IP ядрото на енкодера ALTECC.

Intel FPGA Integer Arithmetic IP Cores Ръководство за потребителя 34

Изпратете обратна връзка

7. ALTECC (Код за коригиране на грешки: енкодер/декодер) IP Core 683490 | 2020.10.05 г

Таблица 26. Параметри на енкодера ALTECC

Име на параметъра

Тип

Задължително

Описание

WIDTH_DATAWORD

Цяло число Да

Указва ширината на необработените данни. Стойностите са от 2 до 64. Ако е пропуснато, стойността по подразбиране е 8.

WIDTH_CODEWORD

Цяло число Да

Указва ширината на съответната кодова дума. Валидни стойности са от 6 до 72, с изключение на 9, 17, 33 и 65. Ако са пропуснати, стойността по подразбиране е 13.

LPM_PIPELINE

Цяло число №

Указва тръбопровода за веригата. Стойностите са от 0 до 2. Ако стойността е 0, портовете не са регистрирани. Ако стойността е 1, изходните портове са регистрирани. Ако стойността е 2, входните и изходните портове са регистрирани. Ако е пропуснато, стойността по подразбиране е 0.

7.10. Параметри на декодера

Следващата таблица изброява IP основните параметри на декодера ALTECC.

Таблица 27. Параметри на декодера ALTECC

Име на параметъра WIDTH_DATAWORD

Въведете Integer

Задължително

Описание

да

Указва ширината на необработените данни. Стойностите са от 2 до 64. The

стойността по подразбиране е 8.

WIDTH_CODEWORD

Цяло число

да

Указва ширината на съответната кодова дума. Стойностите са 6

до 72, с изключение на 9, 17, 33 и 65. Ако е пропуснато, стойността по подразбиране

е 13.

LPM_PIPELINE

Цяло число

не

Указва регистъра на веригата. Стойностите са от 0 до 2. Ако

стойността е 0, не е внедрен регистър. Ако стойността е 1,

изходът е регистриран. Ако стойността е 2, както входът, така и

изходите са регистрирани. Ако стойността е по-голяма от 2, доп

регистри са реализирани на изхода за доп

закъснения. Ако е пропуснато, стойността по подразбиране е 0.

Създайте порт "syn_e".

Цяло число

не

Включете този параметър, за да създадете syn_e порт.

Изпратете обратна връзка

Intel FPGA Integer Arithmetic IP Cores Ръководство за потребителя 35

683490 | 2020.10.05 януари XNUMX г. Изпратете обратна връзка

8. Intel FPGA Multiply Adder IP Core

Фигура 9.

IP ядрото Intel FPGA Multiply Adder (устройства Intel Stratix 10, Intel Arria 10 и Intel Cyclone 10 GX) или ALTERA_MULT_ADD (устройства Arria V, Stratix V и Cyclone V) ви позволява да внедрите умножител-добавител.

Следващата фигура показва портовете за Intel FPGA Multiply Adder или ALTERA_MULT_ADD IP ядро.

Intel FPGA Multiply Adder или ALTERA_MULT_ADD портове

Intel FPGA Multiply Adder или 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[]

сканиране[] резултат[]

aclr0 aclr1

инст
Множител-суматор приема двойки входове, умножава стойностите заедно и след това добавя или изважда от продуктите на всички останали двойки.
Ако всички ширини на входните данни са с ширина 9 бита или по-малки, функцията използва конфигурацията на входния умножител 9 x 9 бита в DSP блока за устройства, които поддържат конфигурация 9 x 9. Ако не, DSP блокът използва 18 × 18-битови входни умножители за обработка на данни с ширина между 10 бита и 18 бита. Ако в даден дизайн се появят множество Intel FPGA Multiply Adder или ALTERA_MULT_ADD IP ядра, функциите се разпределят като

Корпорация Intel. Всички права запазени. Intel, логото на Intel и други марки на Intel са търговски марки на Intel Corporation или нейните филиали. Intel гарантира производителността на своите FPGA и полупроводникови продукти според настоящите спецификации в съответствие със стандартната гаранция на Intel, но си запазва правото да прави промени на продукти и услуги по всяко време без предизвестие. Intel не поема никаква отговорност или задължения, произтичащи от приложението или използването на каквато и да е информация, продукт или услуга, описани тук, освен в случаите, когато Intel е изрично договорено в писмен вид. Клиентите на Intel се съветват да получат най-новата версия на спецификациите на устройството, преди да разчитат на публикувана информация и преди да направят поръчки за продукти или услуги. *Други имена и марки могат да бъдат заявени като собственост на други.

Регистрирано по ISO 9001: 2015

8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05 г
възможно най-много различни DSP блокове, така че маршрутизирането към тези блокове да е по-гъвкаво. По-малко множители на DSP блок позволяват повече възможности за избор на маршрутизиране в блока чрез минимизиране на пътищата до останалата част от устройството.
Регистрите и допълнителните конвейерни регистри за следните сигнали също се поставят вътре в DSP блока: · Въвеждане на данни · Подписан или неподписан избор · Добавяне или изваждане, избор · Продукти от умножители
В случай на изходен резултат, първият регистър се поставя в DSP блока. Допълнителните регистри за латентност обаче се поставят в логически елементи извън блока. Периферията на DSP блока, включително входовете на данни към умножителя, входовете на управляващия сигнал и изходите на суматора, използват редовно маршрутизиране за комуникация с останалата част от устройството. Всички връзки във функцията използват специално маршрутизиране вътре в DSP блока. Това специално маршрутизиране включва веригите на регистрите за преместване, когато изберете опцията за преместване на регистрираните входни данни на множителя от един множител към съседен множител.
За повече информация относно DSP блоковете във всяка от сериите устройства Stratix V и Arria V вижте главата за DSP блокове на съответните ръководства на страницата с литература и техническа документация.
Свързана информация AN 306: Внедряване на умножители в FPGA устройства
Предоставя повече информация за внедряването на умножители, използващи DSP и блокове памет в FPGA устройства на Intel.
8.1. Характеристики
Intel FPGA Multiply Adder или ALTERA_MULT_ADD IP ядрото предлага следните функции: · Генерира умножител за извършване на операции за умножение на две сложни
числа Забележка: При изграждане на множители, по-големи от естествено поддържания размер, може да/
ще има въздействие върху производителността в резултат на каскадирането на DSP блоковете. · Поддържа ширина на данните от 1 256 бита · Поддържа формат за представяне на данни със знак и без знак · Поддържа конвейерна обработка с конфигурируема латентност на входа · Осигурява опция за динамично превключване между поддръжка на подписани и неподписани данни · Предоставя опция за динамично превключване между операции за добавяне и изваждане · Поддържа опционални входни портове за асинхронно и синхронно изчистване и активиране на часовника · Поддържа режим на регистриране на систолно забавяне · Поддържа предварителен суматор с 8 коефициента на предварително натоварване на умножител · Поддържа константа на предварително натоварване за допълване на обратната връзка на акумулатора

Изпратете обратна връзка

Intel FPGA Integer Arithmetic IP Cores Ръководство за потребителя 37

8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05 г

8.1.1. Предварителен суматор
С предварителния суматор добавянията или изважданията се извършват преди подаването на множителя.
Има пет режима на предварителен суматор: · Прост режим · Режим на коефициент · Режим на въвеждане · Режим на квадрат · Режим на константа

Забележка:

Когато се използва предварителен суматор (коефициент на предварителен суматор/вход/квадратен режим), всички входни данни към умножителя трябва да имат еднаква настройка на часовника.

8.1.1.1. Опростен режим на предварително добавяне

В този режим и двата операнда произлизат от входните портове и предварителният суматор не се използва или заобикаля. Това е режимът по подразбиране.

Фигура 10. Опростен режим на предварително добавяне
a0 b0

Множество0

резултат

8.1.1.2. Режим на коефициент на предварителен суматор
В този режим единият операнд на умножителя произлиза от предварителния суматор, а другият операнд произлиза от вътрешната памет на коефициента. Съхранението на коефициента позволява до 8 предварително зададени константи. Сигналите за избор на коефициент са coefsel[0..3].
Този режим се изразява в следното уравнение.

По-долу е показан режимът на коефициент на предварителен суматор на множител.

Фигура 11. Режим на коефициент на предварителен суматор

Preadder

a0

Множество0

+/-

резултат

b0

coefsel0 коеф

Intel FPGA Integer Arithmetic IP Cores Ръководство за потребителя 38

Изпратете обратна връзка

8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05 г
8.1.1.3. Режим на въвеждане на предварителен суматор В този режим единият операнд на умножителя произлиза от предварителния суматор, а другият операнд произлиза от входния порт datac[]. Този режим се изразява в следното уравнение.

По-долу е показан режимът за въвеждане на умножител преди суматора.

Фигура 12. Режим на въвеждане преди суматора
a0 b0

Множество0

+/-

резултат

c0

8.1.1.4. Квадратен режим на предварителен суматор Този режим се изразява в следното уравнение.

По-долу е показан квадратният режим преди суматора на два умножителя.

Фигура 13. Квадратен режим на предварителен суматор
a0 b0

Множество0

+/-

резултат

8.1.1.5. Постоянен режим на предварителен суматор
В този режим единият операнд на умножителя произлиза от входния порт, а другият операнд произлиза от вътрешната памет на коефициента. Съхранението на коефициента позволява до 8 предварително зададени константи. Сигналите за избор на коефициент са coefsel[0..3].
Този режим се изразява в следното уравнение.

Изпратете обратна връзка

Intel FPGA Integer Arithmetic IP Cores Ръководство за потребителя 39

8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05 г

Следващата фигура показва постоянния режим на умножителя преди суматора.

Фигура 14. Постоянен режим на предварителен суматор
a0

Множество0

резултат

коефициент0
коеф
8.1.2. Регистър на систолно забавяне
В систолична архитектура входните данни се подават в каскада от регистри, действащи като буфер за данни. Всеки регистър доставя вход sampна множител, където се умножава по съответния коефициент. Верижният суматор съхранява постепенно комбинираните резултати от умножителя и предварително регистрирания резултат от входния порт chainin[], за да формира крайния резултат. Всеки елемент за умножаване-добавяне трябва да бъде отложен с един цикъл, така че резултатите да се синхронизират по подходящ начин, когато се добавят заедно. Всяко следващо забавяне се използва за адресиране както на паметта на коефициента, така и на буфера за данни на съответните им елементи за умножаване и добавяне. Напримерample, едно закъснение за втория елемент за добавяне на умножение, две закъснения за третия елемент за добавяне на умножение и т.н.
Фигура 15. Систолични регистри
Систолични регистри

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) представлява резултатите от непрекъснат поток от входни samples и y(t)
представлява сумирането на набор от входни samples, и във времето, умножено по техните
съответни коефициенти. Както входните, така и изходните резултати протичат отляво надясно. c(0) до c(N-1) означава коефициентите. Регистрите за систолно закъснение са обозначени със S-1, докато 1 представлява едно закъснение на часовника. Регистрите за систолно забавяне се добавят при
входовете и изходите за тръбопроводи по начин, който гарантира резултатите от
операндът на умножителя и натрупаните суми остават синхронизирани. Този обработващ елемент
се репликира, за да образува верига, която изчислява функцията за филтриране. Тази функция е
изразено в следното уравнение.

Intel FPGA Integer Arithmetic IP Cores Ръководство за потребителя 40

Изпратете обратна връзка

8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05 г

N представлява броя цикли на данни, които са влезли в акумулатора, y(t) представлява изхода в момент t, A(t) представлява входа в момент t, а B(i) са коефициентите. T и i в уравнението съответстват на определен момент от времето, така че да се изчисли изходът sample y(t) в момент t, група от входове sampфайлове в N различни точки във времето или се изисква A(n), A(n-1), A(n-2), … A(n-N+1). Групата от N входни sampфайловете се умножават по N коефициента и се сумират, за да образуват крайния резултат y.
Архитектурата на систоличния регистър е налична само за режимите сума на 2 и сума на 4. И за двата режима на архитектура на систоличния регистър първият сигнал за верига трябва да бъде свързан с 0.
Следващата фигура показва реализацията на регистъра на систолното забавяне на 2 умножителя.
Фигура 16. Прилагане на регистъра на систолното забавяне на 2 умножителя
верига

a0

Множество0

+/-

b0

a1

Множество1

+/-

b1

резултат
Сумата от два множителя се изразява в следното уравнение.
Следващата фигура показва реализацията на регистъра на систолното забавяне на 4 умножителя.

Изпратете обратна връзка

Intel FPGA Integer Arithmetic IP Cores Ръководство за потребителя 41

8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05 г

Фигура 17. Прилагане на регистъра на систолното забавяне на 4 умножителя
верига

a0

Множество0

+/-

b0

a1

Множество1

+/-

b1

a2

Множество2

+/-

b2

a3

Множество3

+/-

b3

резултат
Сумата от четири множителя се изразява в следното уравнение. Фигура 18. Сума от 4 множителя
По-долу е изброен advantages на внедряването на систоличен регистър: · Намалява използването на DSP ресурси · Позволява ефективно картографиране в DSP блока, използвайки структурата на верижния суматор

Intel FPGA Integer Arithmetic IP Cores Ръководство за потребителя 42

Изпратете обратна връзка

8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05 г

8.1.3. Константа на предварително натоварване
Константата на предварително натоварване контролира акумулиращия операнд и допълва акумулаторната обратна връзка. Валидната LOADCONST_VALUE варира от 0. Постоянната стойност е равна на 64N, където N = LOADCONST_VALUE. Когато LOADCONST_VALUE е зададено на 2, константната стойност е равна на 64. Тази функция може да се използва като предубедено закръгляване.
Следващата фигура показва изпълнението на константата на предварително натоварване.
Фигура 19. Константа на предварително натоварване

Обратна връзка на акумулатора

постоянен

a0

Множество0

+/-

b0

a1

Множество1

+/b1

резултат

accum_sload sload_accum

Обърнете се към следните IP ядра за други реализации на множителя: · ALTMULT_ACCUM · ALTMEMMULT · LPM_MULT
8.1.4. Двоен акумулатор
Функцията за двоен акумулатор добавя допълнителен регистър в пътя за обратна връзка на акумулатора. Двойният акумулиращ регистър следва изходния регистър, който включва часовника, активирането на часовника и aclr. Допълнителният акумулаторен регистър връща резултат със закъснение от един цикъл. Тази функция ви позволява да имате два акумулаторни канала с еднакъв брой ресурси.
Следващата фигура показва изпълнението на двоен акумулатор.

Изпратете обратна връзка

Intel FPGA Integer Arithmetic IP Cores Ръководство за потребителя 43

8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05 г

Фигура 20. Двоен акумулатор

Регистър на двоен акумулатор

Захранване на акумулатора

a0

Множество0

+/-

b0

a1

Множество1

+/b1

Изходен резултат Изходен регистър

8.2. Verilog HDL прототип
Можете да намерите прототипа на Intel FPGA Multiply Adder или ALTERA_MULT_ADD Verilog HDL file (altera_mult_add_rtl.v) в библиотеки мегафункции директория.
8.3. Декларация на VHDL компонент
Декларацията на VHDL компонента се намира в altera_lnsim_components.vhd в директория librariesvhdl altera_lnsim.
8.4. VHDL LIBRARY_USE декларация
Декларацията VHDL LIBRARY-USE не е необходима, ако използвате декларацията за VHDL компонент.
БИБЛИОТЕКА altera_mf; ИЗПОЛЗВАЙТЕ altera_mf.altera_mf_components.all;

8.5. Сигнали

Следващите таблици изброяват входните и изходните сигнали на ядрото Intel FPGA IP или ALTERA_MULT_ADD на Multiply Adder.

Таблица 28. Умножителен суматор Intel FPGA IP или входни сигнали ALTERA_MULT_ADD

Сигнал

Задължително

Описание

dataa_0[]/dataa_1[]/

да

dataa_2[]/dataa_3[]

Въвеждане на данни в умножителя. Входен порт [NUMBER_OF_MULTIPLIERS * WIDTH_A – 1 … 0] широк
продължи…

Intel FPGA Integer Arithmetic IP Cores Ръководство за потребителя 44

Изпратете обратна връзка

8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05 г

Сигнал datab_0[]/datab_1[]/ datab_2[]/datab_3[] datac_0[] /datac_1[]/ datac_2[]/datac_3[] часовник[1:0] aclr[1:0] sclr[1:0] ena [1:0] сигнал
signb
scanina[] accum_sload

Задължително Да Не
Не не НЕ НЕ НЕ
не
не не

Описание
Симулационният модел за този IP поддържа неопределена входна стойност (X) към тези сигнали. Когато предоставите X стойност на тези сигнали, X стойността се разпространява върху изходните сигнали.
Въвеждане на данни в умножителя. Входен сигнал [NUMBER_OF_MULTIPLIERS * WIDTH_B – 1 … 0] широк Симулационният модел за този IP поддържа неопределена входна стойност (X) към тези сигнали. Когато предоставите X стойност на тези сигнали, X стойността се разпространява върху изходните сигнали.
Въвеждане на данни в умножителя. Входен сигнал [NUMBER_OF_MULTIPLIERS * WIDTH_C – 1, … 0] широк Изберете INPUT за параметъра Select preadder mode, за да разрешите тези сигнали. Симулационният модел за този IP поддържа неопределена входна стойност (X) към тези сигнали. Когато предоставите X стойност на тези сигнали, X стойността се разпространява върху изходните сигнали.
Входен порт за часовник към съответния регистър. Този сигнал може да се използва от всеки регистър в IP ядрото. Симулационният модел за този IP поддържа неопределена входна стойност (X) към тези сигнали. Когато предоставите X стойност на тези сигнали, X стойността се разпространява върху изходните сигнали.
Асинхронен чист вход към съответния регистър. Симулационният модел за този IP поддържа неопределена входна стойност (X) към тези сигнали. Когато предоставите X стойност на тези сигнали, X стойността се разпространява върху изходните сигнали.
Синхронен чист вход към съответния регистър. Симулационният модел за този IP поддържа неопределена входна стойност X към тези сигнали. Когато предоставите X стойност на тези сигнали, X стойността се разпространява върху изходните сигнали
Разрешете въвеждането на сигнал в съответния регистър. Симулационният модел за този IP поддържа неопределена входна стойност (X) към тези сигнали. Когато предоставите X стойност на тези сигнали, X стойността се разпространява върху изходните сигнали.
Указва цифровото представяне на входа на множителя A. Ако сигналът signa е висок, умножителят третира сигнала на входа на множителя A като число със знак. Ако сигналът signa е нисък, умножителят третира входния сигнал A на умножителя като число без знак. Изберете VARIABLE за какъв е форматът за представяне на входния параметър Multipliers A, за да активирате този сигнал. Симулационният модел за този IP поддържа неопределена входна стойност (X) към този сигнал. Когато предоставите X стойност на този вход, X стойността се разпространява върху изходните сигнали.
Указва цифровото представяне на входния B сигнал на умножителя. Ако сигналът signb е висок, умножителят третира входния B сигнал на умножителя като число, допълващо със знак две. Ако сигналът signb е нисък, умножителят третира входния B сигнал на умножителя като число без знак. Симулационният модел за този IP поддържа неопределена входна стойност (X) към този сигнал. Когато предоставите X стойност на този вход, X стойността се разпространява върху изходните сигнали.
Вход за сканираща верига A. Входен сигнал [WIDTH_A – 1, … 0] широк. Когато параметърът INPUT_SOURCE_A има стойност SCANA, сигналът scanina[] е необходим.
Динамично указва дали стойността на акумулатора е постоянна. Ако сигналът accum_sload е нисък, тогава изходът на умножителя се зарежда в акумулатора. Не използвайте accum_sload и sload_accum едновременно.
продължи…

Изпратете обратна връзка

Intel FPGA Integer Arithmetic IP Cores Ръководство за потребителя 45

8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05 г

Сигнал sload_accum
chainin[] addnsub1
addnsub3
coefsel0[] coefsel1[] coefsel2[] coefsel3[]

Задължителен №
не не
не
Не не не НЕ

Описание
Симулационният модел за този IP поддържа неопределена входна стойност (X) към този сигнал. Когато предоставите X стойност на този вход, X стойността се разпространява върху изходните сигнали.
Динамично указва дали стойността на акумулатора е постоянна. Ако сигналът sload_accum е висок, тогава изходът на умножителя се зарежда в акумулатора. Не използвайте accum_sload и sload_accum едновременно. Симулационният модел за този IP поддържа неопределена входна стойност (X) към този сигнал. Когато предоставите X стойност на този вход, X стойността се разпространява върху изходните сигнали.
Входна шина за резултат на суматора от предходните stagд. Входен сигнал [WIDTH_CHAININ – 1, … 0] широк.
Извършете събиране или изваждане на изходите от първата двойка умножители. Въведете 1 към сигнала addnsub1, за да добавите изходите от първата двойка умножители. Въведете 0 към сигнала addnsub1, за да извадите изходите от първата двойка умножители. Симулационният модел за този IP поддържа неопределена входна стойност (X) към този сигнал. Когато предоставите X стойност на този вход, X стойността се разпространява върху изходните сигнали.
Извършете събиране или изваждане на изходите от първата двойка умножители. Въведете 1 към сигнала addnsub3, за да добавите изходите от втората двойка умножители. Въведете 0 към сигнала addnsub3, за да извадите изходите от първата двойка умножители. Симулационният модел за този IP поддържа неопределена входна стойност (X) към този сигнал. Когато предоставите X стойност на този вход, X стойността се разпространява върху изходните сигнали.
Коефициент на входен сигнал [0:3] към първия множител. Симулационният модел за този IP поддържа неопределена входна стойност (X) към този сигнал. Когато предоставите X стойност на този вход, X стойността се разпространява върху изходните сигнали.
Коефициент на входен сигнал [0:3] към втория множител. Симулационният модел за този IP поддържа неопределена входна стойност (X) към този сигнал. Когато предоставите X стойност на този вход, X стойността се разпространява върху изходните сигнали.
Коефициент на входен сигнал [0:3] към третия множител. Симулационният модел за този IP поддържа неопределена входна стойност (X) към този сигнал. Когато предоставите X стойност на този вход, X стойността се разпространява върху изходните сигнали.
Коефициент на входен сигнал [0:3] към четвъртия множител. Симулационният модел за този IP поддържа неопределена входна стойност (X) към този сигнал. Когато предоставите X стойност на този вход, X стойността се разпространява върху изходните сигнали.

Таблица 29. Intel FPGA IP изходни сигнали на размножител

Сигнал

Задължително

Описание

резултат []

да

Изходен сигнал на умножител. Изходен сигнал [WIDTH_RESULT – 1 … 0] широк

Симулационният модел за този IP поддържа неопределена изходна стойност (X). Когато предоставите X стойност като вход, X стойността се разпространява по този сигнал.

scanouta []

не

Изход на сканираща верига A. Изходен сигнал [WIDTH_A – 1..0] широк.

Изберете повече от 2 за броя на множителите и изберете Сканиране на вход за верига за Какъв е входът A на множителя, свързан към параметъра, за да активирате този сигнал.

Intel FPGA Integer Arithmetic IP Cores Ръководство за потребителя 46

Изпратете обратна връзка

8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05 г

8.6. Параметри

8.6.1. Общи раздел

Таблица 30. Таб

Параметър

Параметър, генериран от IP

Стойност

Какъв е броят на множителите?

брой_на_m 1 – 4 множителя

Колко широки трябва да бъдат входните шини A width_a?

1 – 256

Колко широки трябва да бъдат входните шини B width_b?

1 – 256

Колко широка трябва да бъде изходната шина „резултат“?

ширина_резултат

1 – 256

Създайте свързан часовник за всеки часовник

gui_associate Включено d_clock_enabl Изключено e

8.6.2. Раздел Допълнителни режими

Таблица 31. Раздел Допълнителни режими

Параметър

Параметър, генериран от IP

Стойност

Конфигурация на изходите

Регистрирайте изхода на суматора

gui_output_re Вкл

кича

Изкл

Какъв е източникът за въвеждане на часовник?

gui_output_re gister_clock

Часовник0 Часовник1 Часовник2

Какъв е източникът за асинхронен чист вход?

gui_output_re gister_aclr

НЯМА ACLR0 ACLR1

Какъв е източникът за синхронен чист вход?

gui_output_re gister_sclr

НЯМА SCLR0 SCLR1

Операция на суматора

Каква операция трябва да се извърши върху изходите на първата двойка умножители?

gui_множител 1_посока

ADD, SUB, VARIABLE

Стойност по подразбиране 1
16

Описание
Брой множители, които трябва да бъдат добавени заедно. Стойностите са от 1 до 4. Посочете ширината на порта dataa[].

16

Посочете ширината на порта datab[].

32

Посочете ширината на резултата [] порт.

Изкл

Изберете тази опция, за да създадете активиране на часовник

за всеки часовник.

Стойност по подразбиране

Описание

Изключен часовник0
НЯМА НИКОЙ

Изберете тази опция, за да активирате изходния регистър на модула на суматора.
Изберете Clock0, Clock1 или Clock2, за да активирате и посочите източника на часовник за изходните регистри. Трябва да изберете Регистриране на изхода на суматора, за да активирате този параметър.
Указва асинхронния чист източник за изходния регистър на суматора. Трябва да изберете Регистриране на изхода на суматора, за да активирате този параметър.
Указва източника на синхронно изчистване за изходния регистър на суматора. Трябва да изберете Регистриране на изхода на суматора, за да активирате този параметър.

ДОБАВЯНЕ

Изберете операция за събиране или изваждане, която да се извърши за изходите между първия и втория множител.
· Изберете ADD, за да извършите операция по добавяне.
· Изберете SUB, за да извършите операция за изваждане.
· Изберете VARIABLE, за да използвате addnsub1 порт за динамично управление на добавяне/изваждане.
продължи…

Изпратете обратна връзка

Intel FPGA Integer Arithmetic IP Cores Ръководство за потребителя 47

8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05 г

Параметър

Параметър, генериран от IP

Стойност

Регистрирайте входа „addnsub1“.

gui_addnsub_ On multiplier_reg Off ister1

Какъв е източникът за въвеждане на часовник?

gui_addnsub_ multiplier_reg ister1_clock

Часовник0 Часовник1 Часовник2

Какъв е източникът за асинхронен чист вход?

gui_addnsub_ multiplier_aclr 1

НЯМА ACLR0 ACLR1

Какъв е източникът за синхронен чист вход?

gui_addnsub_ multiplier_sclr 1

НЯМА SCLR0 SCLR1

Каква операция трябва да се извърши върху изходите на втората двойка умножители?

gui_множител 3_посока

ADD, SUB, VARIABLE

Регистрирайте входа „addnsub3“.

gui_addnsub_ On multiplier_reg Off ister3

Какъв е източникът за въвеждане на часовник?

gui_addnsub_ multiplier_reg ister3_clock

Часовник0 Часовник1 Часовник2

Стойност по подразбиране
Off Clock0 NONE NONE ADD
Изключен часовник0

Описание
Когато е избрана стойност VARIABLE: · Задайте сигнала addnsub1 на високо ниво за
операция добавяне. · Задвижете сигнала addnsub1 на ниско ниво за
операция изваждане. Трябва да изберете повече от два множителя, за да активирате този параметър.
Изберете тази опция, за да активирате входен регистър за addnsub1 порт. Трябва да изберете VARIABLE за каква операция трябва да се извърши върху изходите на първата двойка множители, за да активирате този параметър.
Изберете Clock0, Clock1 или Clock2, за да укажете входния тактов сигнал за регистър addnsub1. Трябва да изберете Регистриране на входа „addnsub1“, за да активирате този параметър.
Указва асинхронния чист източник за регистъра addnsub1. Трябва да изберете Регистриране на входа „addnsub1“, за да активирате този параметър.
Указва източника на синхронно изчистване за регистъра addnsub1. Трябва да изберете Регистриране на входа „addnsub1“, за да активирате този параметър.
Изберете операция за добавяне или изваждане, която да изпълните за изходите между третия и четвъртия множител. · Изберете ADD, за да извършите добавяне
операция. · Изберете SUB, за да извършите изваждане
операция. · Изберете VARIABLE, за да използвате addnsub1
порт за динамично управление на добавяне/изваждане. Когато е избрана стойност VARIABLE: · Задайте сигнала addnsub1 на високо ниво за операция на добавяне. · Задайте сигнала addnsub1 на ниско ниво за операция на изваждане. Трябва да изберете стойност 4 за Какъв е броят на множителите? за да активирате този параметър.
Изберете тази опция, за да разрешите входен регистър за addnsub3 сигнал. Трябва да изберете VARIABLE за каква операция трябва да се извърши върху изходите на втората двойка множители, за да активирате този параметър.
Изберете Clock0, Clock1 или Clock2, за да укажете входния тактов сигнал за addnsub3 регистър. Трябва да изберете Регистрирайте входа 'addnsub3', за да активирате този параметър.
продължи…

Intel FPGA Integer Arithmetic IP Cores Ръководство за потребителя 48

Изпратете обратна връзка

8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05 г

Параметър
Какъв е източникът за асинхронен чист вход?

Параметър, генериран от IP

Стойност

gui_addnsub_ multiplier_aclr 3

НЯМА ACLR0 ACLR1

Какъв е източникът за синхронен чист вход?

gui_addnsub_ multiplier_sclr 3

НЯМА SCLR0 SCLR1

Полярност Активиране на `use_subadd'

gui_use_subn Вкл

добавете

Изкл

8.6.3. Таб. Множители

Таблица 32. Таб. Множители

Параметър

Параметър, генериран от IP

Стойност

Какво е

gui_represent

формат на представяне ation_a

за множители А входове?

ЗНАК, НЕПОДПИС, ПРОМЕНЛИВА

Регистрирайте входа `signa'

gui_register_s Вкл

игна

Изкл

Какъв е източникът за въвеждане на часовник?

gui_register_s igna_clock

Часовник0 Часовник1 Часовник2

Какъв е източникът за асинхронен чист вход?

gui_register_s igna_aclr

НЯМА ACLR0 ACLR1

Какъв е източникът за синхронен чист вход?

gui_register_s igna_sclr

НЯМА SCLR0 SCLR1

Какво е

gui_represent

формат на представяне ation_b

за множители B входове?

ЗНАК, НЕПОДПИС, ПРОМЕНЛИВА

Регистрирайте входа `signb'

gui_register_s Вкл

ignb

Изкл

Стойност по подразбиране NONE
НЯМА

Описание
Указва асинхронния чист източник за регистъра addnsub3. Трябва да изберете Регистриране на входа „addnsub3“, за да активирате този параметър.
Указва източника на синхронно изчистване за регистъра addnsub3. Трябва да изберете Регистрирайте входа 'addnsub3', за да активирате този параметър.

Изкл

Изберете тази опция, за да обърнете функцията

на входния порт addnsub.

Задайте addnsub на високо ниво за операция на изваждане.

Задайте addnsub на ниско ниво за операция по добавяне.

Стойност по подразбиране

Описание

UNSIGNED Посочете формата на представяне за входа на множителя A.

Изкл

Изберете тази опция, за да активирате signa

регистър.

Трябва да изберете стойност VARIABLE за Какъв е форматът на представяне за входове на множителите A? параметър за активиране на тази опция.

Часовник 0

Изберете Clock0, Clock1 или Clock2, за да активирате и зададете входния тактов сигнал за регистъра signa.
Трябва да изберете Регистриране на вход `signa', за да активирате този параметър.

НЯМА

Указва асинхронния чист източник за регистъра signa.
Трябва да изберете Регистриране на вход `signa', за да активирате този параметър.

НЯМА

Указва синхронния чист източник за регистъра signa.
Трябва да изберете Регистриране на вход `signa', за да активирате този параметър.

UNSIGNED Посочете формата на представяне за входа на множителя B.

Изкл

Изберете тази опция, за да активирате signb

регистър.

продължи…

Изпратете обратна връзка

Intel FPGA Integer Arithmetic IP Cores Ръководство за потребителя 49

8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05 г

Параметър

Параметър, генериран от IP

Стойност

Стойност по подразбиране

Какъв е източникът за въвеждане на часовник?

gui_register_s ignb_часовник

Часовник0 Часовник1 Часовник2

Часовник 0

Какъв е източникът за асинхронен чист вход?

gui_register_s ignb_aclr

НЯМА ACLR0 ACLR1

Какъв е източникът за синхронен чист вход?

gui_register_s ignb_sclr

НЯМА SCLR0 SCLR1

Входна конфигурация
Регистрирайте вход А на множителя
Какъв е източникът за въвеждане на часовник?

gui_input_reg Вкл

ister_a

Изкл

gui_input_reg ister_a_clock

Часовник0 Часовник1 Часовник2

НЯМА НИКОЙ
Изключен часовник0

Какъв е източникът за асинхронен чист вход?

gui_input_reg ister_a_aclr

НЯМА ACLR0 ACLR1

Какъв е източникът за синхронен чист вход?

gui_input_reg ister_a_sclr

НЯМА SCLR0 SCLR1

Регистрирайте вход B на умножителя
Какъв е източникът за въвеждане на часовник?

gui_input_reg Вкл

ister_b

Изкл

gui_input_reg ister_b_clock

Часовник0 Часовник1 Часовник2

NONE NONE Off Clock0

Какъв е източникът за асинхронен чист вход?

gui_input_reg ister_b_aclr

НЯМА ACLR0 ACLR1

НЯМА

Какъв е източникът за синхронен чист вход?

gui_input_reg ister_b_sclr

НЯМА SCLR0 SCLR1

НЯМА

Към какво е свързан вход А на умножителя?

gui_multiplier Входен множител Множител

_a_вход

Сканиране верига вход вход

Описание
Трябва да изберете стойност VARIABLE за Какъв е форматът на представяне за входове на Множители B? параметър за активиране на тази опция.
Изберете Clock0, Clock1 или Clock2, за да активирате и зададете входния тактов сигнал за signb регистър. Трябва да изберете Регистриране на вход `signb', за да активирате този параметър.
Указва асинхронния чист източник за регистъра signb. Трябва да изберете Регистриране на вход `signb', за да активирате този параметър.
Указва източника на синхронно изчистване за регистъра signb. Трябва да изберете Регистриране на вход `signb', за да активирате този параметър.
Изберете тази опция, за да активирате входен регистър за входна шина за данни.
Изберете Clock0, Clock1 или Clock2, за да активирате и укажете входния тактов сигнал на регистъра за входната шина за данни. Трябва да изберете Регистриране на вход A на множителя, за да активирате този параметър.
Указва източника на асинхронно изчистване на регистъра за входната шина dataa. Трябва да изберете Регистриране на вход A на множителя, за да активирате този параметър.
Указва източника за синхронно изчистване на регистъра за входната шина dataa. Трябва да изберете Регистриране на вход A на множителя, за да активирате този параметър.
Изберете тази опция, за да разрешите входен регистър за входна шина datab.
Изберете Clock0, Clock1 или Clock2, за да активирате и укажете входния тактов сигнал на регистъра за входната шина на datab. Трябва да изберете Регистриране на вход B на множителя, за да активирате този параметър.
Указва източника на асинхронно изчистване на регистъра за входната шина datab. Трябва да изберете Регистриране на вход B на множителя, за да активирате този параметър.
Указва източника за синхронно изчистване на регистъра за входната шина datab. Трябва да изберете Регистриране на вход B на множителя, за да активирате този параметър.
Изберете входния източник за вход A на множителя.
продължи…

Intel FPGA Integer Arithmetic IP Cores Ръководство за потребителя 50

Изпратете обратна връзка

8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05 г

Параметър

Параметър, генериран от IP

Стойност

Scanout A Register Configuration

Регистрирайте изхода на веригата за сканиране

gui_scanouta Вкл

_регистрация

Изкл

Какъв е източникът за въвеждане на часовник?

gui_scanouta _register_cloc k

Часовник0 Часовник1 Часовник2

Какъв е източникът за асинхронен чист вход?

gui_scanouta _register_aclr

НЯМА ACLR0 ACLR1

Какъв е източникът за синхронен чист вход?

gui_scanouta _register_sclr

НЯМА SCLR0 SCLR1

8.6.4. Раздел Preadder

Таблица 33. Раздел Preadder

Параметър

Параметър, генериран от IP

Стойност

Изберете режим на предварително добавяне

preadder_mo de

SIMPLE, COEF, INPUT, SQUARE, CONSTANT

Стойност по подразбиране

Описание
Изберете вход на множителя, за да използвате входната шина на данни като източник на множителя. Изберете Scan chain input, за да използвате входната шина за сканиране като източник на умножителя и да активирате изходната шина за сканиране. Този параметър е наличен, когато изберете 2, 3 или 4 за Какъв е броят на множителите? параметър.

Off Clock0 NONE NONE

Изберете тази опция, за да активирате изходния регистър за изходната шина scanouta.
Трябва да изберете Scan chain input за Какво е свързан вход A на умножителя? параметър за активиране на тази опция.
Изберете Clock0, Clock1 или Clock2, за да активирате и укажете входния тактов сигнал на регистъра за изходната шина на scanouta.
Трябва да включите Register output на параметъра на веригата за сканиране, за да активирате тази опция.
Указва източника за асинхронно изчистване на регистъра за изходната шина scanouta.
Трябва да включите Register output на параметъра на веригата за сканиране, за да активирате тази опция.
Указва източника за синхронно изчистване на регистъра за изходната шина scanouta.
Трябва да изберете Регистриране на изхода на параметъра на веригата за сканиране, за да активирате тази опция.

Стойност по подразбиране
ПРОСТО

Описание
Указва режима на работа за модула за предварителен разширител. ПРОСТО: Този режим заобикаля предварително разширителя. Това е режимът по подразбиране. COEF: Този режим използва изхода на предварителния суматор и входната шина на coefsel като входове към умножителя. INPUT: Този режим използва изхода на предразширителя и входната шина за данни като входове към умножителя. SQUARE: Този режим използва изхода на предразширителя като два входа към умножителя.
продължи…

Изпратете обратна връзка

Intel FPGA Integer Arithmetic IP Cores Ръководство за потребителя 51

8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05 г

Параметър

Параметър, генериран от IP

Стойност

Изберете посока на предразширителя

gui_preadder ДОБАВЯНЕ,

_посока

ПОДП

Колко широки трябва да бъдат входните шини C width_c?

1 – 256

Конфигурация на входен регистър на данни C

Регистрирайте входа на данни

gui_datac_inp Вкл

ut_register

Изкл

Какъв е източникът за въвеждане на часовник?

gui_datac_inp ut_register_cl ock

Часовник0 Часовник1 Часовник2

Какъв е източникът за асинхронен чист вход?

gui_datac_inp ut_register_a clr

НЯМА ACLR0 ACLR1

Какъв е източникът за синхронен чист вход?

gui_datac_inp ut_register_sc lr

НЯМА SCLR0 SCLR1

Коефициенти
Колко широка трябва да бъде ширината на coef?

ширина_коеф

1 – 27

Конфигурация на регистъра на Coef

Регистрирайте входа на coefsel

gui_coef_regi Вкл

стер

Изкл

Какъв е източникът за въвеждане на часовник?

gui_coef_regi ster_clock

Часовник0 Часовник1 Часовник2

Стойност по подразбиране
ДОБАВЯНЕ
16

Описание
CONSTANT: Този режим използва входна шина за данни с прескочен предварителен суматор и входна шина coefsel като входове към умножителя.
Указва работата на предварителния разширител. За да активирате този параметър, изберете следното за Избор на режим на предварителен суматор: · COEF · INPUT · SQUARE или · CONSTANT
Указва броя на битовете за C входна шина. Трябва да изберете INPUT за Select preadder mode, за да активирате този параметър.

На часовник0 НЯМА НЯМА

Изберете тази опция, за да разрешите входен регистър за входна шина за данни. Трябва да зададете INPUT на параметър Select preadder mode, за да активирате тази опция.
Изберете Clock0, Clock1 или Clock2, за да укажете входния тактов сигнал за входния регистър на данни. Трябва да изберете Регистриране на вход за данни, за да активирате този параметър.
Указва асинхронния чист източник за входния регистър на данни. Трябва да изберете Регистриране на вход за данни, за да активирате този параметър.
Указва източника на синхронно изчистване за входния регистър на данни. Трябва да изберете Регистриране на вход за данни, за да активирате този параметър.

18

Указва броя на битовете за

coefsel входна шина.

Трябва да изберете COEF или CONSTANT за режим на предварителен суматор, за да активирате този параметър.

На часовник0

Изберете тази опция, за да разрешите входен регистър за входна шина на coefsel. Трябва да изберете COEF или CONSTANT за режим на предварителен суматор, за да активирате този параметър.
Изберете Clock0, Clock1 или Clock2, за да зададете входния тактов сигнал за входния регистър на coefsel. Трябва да изберете Регистриране на входния коефсел, за да активирате този параметър.
продължи…

Intel FPGA Integer Arithmetic IP Cores Ръководство за потребителя 52

Изпратете обратна връзка

8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05 г

Параметър
Какъв е източникът за асинхронен чист вход?

Параметър, генериран от IP

Стойност

gui_coef_regi ster_aclr

НЯМА ACLR0 ACLR1

Какъв е източникът за синхронно ясно въвеждане

gui_coef_regi ster_sclr

НЯМА SCLR0 SCLR1

Коефициент_0 Конфигурация

coef0_0 до coef0_7

0x00000 0xFFFFFFF

Коефициент_1 Конфигурация

coef1_0 до coef1_7

0x00000 0xFFFFFFF

Коефициент_2 Конфигурация

coef2_0 до coef2_7

0x00000 0xFFFFFFF

Коефициент_3 Конфигурация

coef3_0 до coef3_7

0x00000 0xFFFFFFF

8.6.5. Таб. Акумулатор

Таблица 34. Таб. Акумулатор

Параметър

Параметър, генериран от IP

Стойност

Активиране на акумулатора?

акумулатор

ДА НЕ

Какъв е типът работа на акумулатора?

accum_directi ADD,

on

ПОДП

Стойност по подразбиране NONE
НЯМА
0x0000000 0
0x0000000 0
0x0000000 0
0x0000000 0

Описание
Указва асинхронния чист източник за входния регистър на coefsel. Трябва да изберете Регистриране на входния коефсел, за да активирате този параметър.
Указва източника на синхронно изчистване за входния регистър на coefsel. Трябва да изберете Регистриране на входния коефсел, за да активирате този параметър.
Указва стойностите на коефициента за този първи множител. Броят на битовете трябва да бъде същият като посочения в Колко широка трябва да бъде ширината на коефициента? параметър. Трябва да изберете COEF или CONSTANT за режим на предварителен суматор, за да активирате този параметър.
Указва стойностите на коефициента за този втори множител. Броят на битовете трябва да бъде същият като посочения в Колко широка трябва да бъде ширината на коефициента? параметър. Трябва да изберете COEF или CONSTANT за режим на предварителен суматор, за да активирате този параметър.
Указва стойностите на коефициента за този трети множител. Броят на битовете трябва да бъде същият като посочения в Колко широка трябва да бъде ширината на коефициента? параметър. Трябва да изберете COEF или CONSTANT за режим на предварителен суматор, за да активирате този параметър.
Указва стойностите на коефициента за този четвърти множител. Броят на битовете трябва да бъде същият като посочения в Колко широка трябва да бъде ширината на коефициента? параметър. Трябва да изберете COEF или CONSTANT за режим на предварителен суматор, за да активирате този параметър.

Стойност по подразбиране NO
ДОБАВЯНЕ

Описание
Изберете ДА, за да активирате акумулатора. Трябва да изберете Регистриране на изхода на суматора, когато използвате функцията за акумулатор.
Указва операцията на акумулатора: · ADD за операция събиране · SUB за операция изваждане. Трябва да изберете ДА за Разрешаване на акумулатор? параметър за активиране на тази опция.
продължи…

Изпратете обратна връзка

Intel FPGA Integer Arithmetic IP Cores Ръководство за потребителя 53

8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05 г

Параметър
Константа за предварително зареждане Активиране на константа за предварително зареждане

Параметър, генериран от IP

Стойност

gui_ena_prelo Вкл

ad_const

Изкл

Към какво е свързан входът на акумулиращия порт?

gui_accumula ACCUM_SLOAD, te_port_select SLOAD_ACCUM

Изберете стойност за предварително натоварване loadconst_val 0 – 64

постоянен

ue

Какъв е източникът за въвеждане на часовник?

gui_accum_sl oad_register_ часовник

Часовник0 Часовник1 Часовник2

Какъв е източникът за асинхронен чист вход?

gui_accum_sl oad_register_ aclr

НЯМА ACLR0 ACLR1

Какъв е източникът за синхронен чист вход?

gui_accum_sl oad_register_ sclr

НЯМА SCLR0 SCLR1

Активиране на двоен акумулатор

gui_double_a Вкл

скум

Изкл

Стойност по подразбиране

Описание

Изкл

Активирайте accum_sload или

sload_accum сигнали и регистрационен вход

за динамичен избор на входа към

акумулатор.

Когато accum_sload е ниско или sload_accum, изходът на множителя се подава в акумулатора.

Когато accum_sload е висок или sload_accum, определена от потребителя константа за предварително натоварване се подава в акумулатора.

Трябва да изберете ДА за Разрешаване на акумулатор? параметър за активиране на тази опция.

ACCUM_SL OAD

Указва поведението на сигнала accum_sload/sload_accum.
ACCUM_SLOAD: Задвижете accum_sload ниско, за да заредите изхода на множителя към акумулатора.
SLOAD_ACCUM: Задвижете sload_accum високо, за да заредите изхода на множителя към акумулатора.
Трябва да изберете опцията Разрешаване на константата на предварително зареждане, за да активирате този параметър.

64

Посочете предварително зададената константна стойност.

Тази стойност може да бъде 2N, където N е предварително зададената постоянна стойност.

Когато N=64, това представлява постоянна нула.

Трябва да изберете опцията Разрешаване на константата на предварително зареждане, за да активирате този параметър.

Часовник 0

Изберете Clock0, Clock1 или Clock2, за да посочите входния тактов сигнал за accum_sload/sload_accum регистър.
Трябва да изберете опцията Разрешаване на константата на предварително зареждане, за да активирате този параметър.

НЯМА

Указва асинхронния чист източник за регистъра accum_sload/sload_accum.
Трябва да изберете опцията Разрешаване на константата на предварително зареждане, за да активирате този параметър.

НЯМА

Указва източника на синхронно изчистване за регистъра accum_sload/sload_accum.
Трябва да изберете опцията Разрешаване на константата на предварително зареждане, за да активирате този параметър.

Изкл

Активира регистъра с двоен акумулатор.

Intel FPGA Integer Arithmetic IP Cores Ръководство за потребителя 54

Изпратете обратна връзка

8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05 г

8.6.6. Систолично/верижно табл

Таблица 35. Раздел Систоличен/верижен суматор

Параметър Разрешаване на верижен суматор

Параметър, генериран от IP

Стойност

chainout_add ДА,

er

НЕ

Какъв е типът операция на суматора за верига?

chainout_add ДОБАВЯНЕ,

er_посока

ПОДП

Разрешаване на „отрицателен“ вход за суматора за верига?

Port_negate

PORT_USED, PORT_UNUSED

Регистрирам `отрицателен' вход? отрицателен_регистр er

НЕРЕГИСТРИРАН, ЧАСОВНИК0, ЧАСОВНИК1, ЧАСОВНИК2, ЧАСОВНИК3

Какъв е източникът за асинхронен чист вход?

отрицание_aclr

НЯМА ACLR0 ACLR1

Какъв е източникът за синхронен чист вход?

отрицание_sclr

НЯМА SCLR0 SCLR1

Систолично забавяне
Активиране на регистрите за систолично забавяне

gui_systolic_d Вкл

елай

Изкл

Какъв е източникът за въвеждане на часовник?

gui_systolic_d CLOCK0,

elay_clock

ЧАСОВНИК1,

Стойност по подразбиране
НЕ

Описание
Изберете ДА, за да активирате модула за добавяне на верига.

ДОБАВЯНЕ

Указва операцията на суматора за верига.
За операция на изваждане трябва да се избере SIGNED за Какъв е форматът на представяне за входове на множителите A? и Какъв е форматът на представяне за входове на множители B? в раздела Множители.

PORT_UN ИЗПОЛЗВАН

Изберете PORT_USED, за да активирате отрицателен входен сигнал.
Този параметър е невалиден, когато суматорът за верига е деактивиран.

НЕРЕГИСТРИРАНЕ ERED

За активиране на входния регистър за отрицателен входен сигнал и определя входния тактов сигнал за отрицателен регистър.
Изберете НЕРЕГИСТРИРАН, ако входният регистър за отрицание не е необходим
Този параметър е невалиден, когато изберете:
· НЕ за Разрешаване на верижен суматор или
· PORT_UNUSED за Разрешаване на „отрицателен“ вход за суматор за верига? параметър или

НЯМА

Указва асинхронния чист източник за отрицателния регистър.
Този параметър е невалиден, когато изберете:
· НЕ за Разрешаване на верижен суматор или
· PORT_UNUSED за Разрешаване на „отрицателен“ вход за суматор за верига? параметър или

НЯМА

Указва източника на синхронно изчистване за отрицателния регистър.
Този параметър е невалиден, когато изберете:
· НЕ за Разрешаване на верижен суматор или
· PORT_UNUSED за Разрешаване на „отрицателен“ вход за суматор за верига? параметър или

Изкл. CLOCK0

Изберете тази опция, за да активирате систоличен режим. Този параметър е наличен, когато изберете 2 или 4 за Какъв е броят на множителите? параметър. Трябва да разрешите регистрационния изход на суматора, за да използвате регистрите за систолично забавяне.
Указва входния тактов сигнал за регистъра на систолното закъснение.
продължи…

Изпратете обратна връзка

Intel FPGA Integer Arithmetic IP Cores Ръководство за потребителя 55

8. Intel FPGA Multiply Adder IP Core 683490 | 2020.10.05 г

Параметър

Параметър, генериран от IP

Стойност

ЧАСОВНИК2,

Какъв е източникът за асинхронен чист вход?

gui_systolic_d elay_aclr

НЯМА ACLR0 ACLR1

Какъв е източникът за синхронен чист вход?

gui_systolic_d elay_sclr

НЯМА SCLR0 SCLR1

Стойност по подразбиране
НЯМА
НЯМА

Описание
Трябва да изберете активиране на регистрите за систолично забавяне, за да активирате тази опция.
Указва източника на асинхронно изчистване за регистъра на систолното забавяне. Трябва да изберете активиране на регистрите за систолично забавяне, за да активирате тази опция.
Указва източника на синхронно изчистване за регистъра на систолното забавяне. Трябва да изберете активиране на регистрите за систолично забавяне, за да активирате тази опция.

8.6.7. Раздел "Тръбопроводи".

Таблица 36. Раздел „Тръбопроводи“.

Конфигурация на конвейерна обработка на параметри

Параметър, генериран от IP

Стойност

Искате ли да добавите регистър на тръбопровода към входа?

gui_pipelining Не, Да

Стойност по подразбиране
не

Моля, посочете

латентност

брой часовник за латентност

цикли

Всяка стойност, по-голяма от 0

Какъв е източникът за въвеждане на часовник?

gui_input_късно ncy_clock

ЧАСОВНИК0, ЧАСОВНИК1, ЧАСОВНИК2

Какъв е източникът за асинхронен чист вход?

gui_input_late ncy_aclr

НЯМА ACLR0 ACLR1

Какъв е източникът за синхронен чист вход?

gui_input_late ncy_sclr

НЯМА SCLR0 SCLR1

ЧАСОВНИК0 НЯМА НЯМА

Описание
Изберете Да, за да активирате допълнително ниво на конвейерния регистър към входните сигнали. Трябва да посочите стойност, по-голяма от 0 за параметъра Моля, посочете броя на циклите на забавяне.
Указва желаното забавяне в тактови цикли. Едно ниво на конвейерния регистър = 1 латентност в тактовия цикъл. Трябва да изберете ДА за Искате ли да добавите тръбопроводен регистър към входа? за да активирате тази опция.
Изберете Clock0, Clock1 или Clock2, за да активирате и укажете входния тактов сигнал на конвейерния регистър. Трябва да изберете ДА за Искате ли да добавите тръбопроводен регистър към входа? за да активирате тази опция.
Указва асинхронния изчистен източник на регистъра за допълнителния регистър на конвейера. Трябва да изберете ДА за Искате ли да добавите тръбопроводен регистър към входа? за да активирате тази опция.
Указва източника за синхронно изчистване на регистъра за допълнителния конвейерен регистър. Трябва да изберете ДА за Искате ли да добавите тръбопроводен регистър към входа? за да активирате тази опция.

Intel FPGA Integer Arithmetic IP Cores Ръководство за потребителя 56

Изпратете обратна връзка

683490 | 2020.10.05 януари XNUMX г. Изпратете обратна връзка

9. ALTMEMMULT (базиран на паметта умножител на постоянен коефициент) IP ядро

Внимание:

Intel премахна поддръжката на този IP в Intel Quartus Prime Pro Edition версия 20.3. Ако IP ядрото във вашия дизайн е насочено към устройства в Intel Quartus Prime Pro Edition, можете да замените IP с LPM_MULT Intel FPGA IP или да генерирате повторно IP и да компилирате своя дизайн с помощта на софтуера Intel Quartus Prime Standard Edition.

IP ядрото ALTMEMMULT се използва за създаване на умножители, базирани на паметта, като се използват блоковете памет на чипа, намиращи се в FPGA на Intel (с блокове памет M512, M4K, M9K и MLAB). Това IP ядро ​​е полезно, ако нямате достатъчно ресурси за внедряване на умножителите в логически елементи (LE) или специални ресурси за умножение.
IP ядрото ALTMEMMULT е синхронна функция, която изисква часовник. IP ядрото ALTMEMMULT прилага умножител с възможно най-малката производителност и закъснение за даден набор от параметри и спецификации.
Следващата фигура показва портовете за IP ядрото ALTMEMMULT.

Фигура 21. Портове ALTMEMMULT

ALTMEMMULT

data_in[] sload_data coeff_in[]

резултат[] валиден_резултат load_done

sload_coeff

sclr часовник
инст

Характеристики на свързана информация на страница 71

9.1. Характеристики
IP ядрото ALTMEMMULT предлага следните характеристики: · Създава само базирани на памет умножители, като използва блокове памет в чипа, намерени в
Intel FPGA · Поддържа ширина на данните от 1 бита · Поддържа формат за представяне на данни със знак и без знак · Поддържа конвейер с фиксирана латентност на изхода

Корпорация Intel. Всички права запазени. Intel, логото на Intel и други марки на Intel са търговски марки на Intel Corporation или нейните филиали. Intel гарантира производителността на своите FPGA и полупроводникови продукти според настоящите спецификации в съответствие със стандартната гаранция на Intel, но си запазва правото да прави промени на продукти и услуги по всяко време без предизвестие. Intel не поема никаква отговорност или задължения, произтичащи от приложението или използването на каквато и да е информация, продукт или услуга, описани тук, освен в случаите, когато Intel е изрично договорено в писмен вид. Клиентите на Intel се съветват да получат най-новата версия на спецификациите на устройството, преди да разчитат на публикувана информация и преди да направят поръчки за продукти или услуги. *Други имена и марки могат да бъдат заявени като собственост на други.

Регистрирано по ISO 9001: 2015

9. ALTMEMMULT (базиран на паметта умножител на постоянен коефициент) IP ядро ​​683490 | 2020.10.05 г
· Съхранява множество константи в памет с произволен достъп (RAM)
· Предоставя опция за избор на тип RAM блок
· Поддържа допълнителни входни портове за синхронно изчистване и контрол на натоварването
9.2. Verilog HDL прототип
Следният прототип на Verilog HDL се намира в Verilog Design File (.v) altera_mf.v в директория за синтез на eda.
module altmemmult #( параметър coeff_representation = “SIGNED”, параметър coefficient0 = “UNUSED”, параметър data_representation = “SIGNED”, параметър предназначен_device_family = “unused”, параметър max_clock_cycles_per_result = 1, параметър number_of_coefficients = 1, параметър ram_block_type = “AUTO”, параметър total_latency = 1, параметър width_c = 1, параметър width_d = 1, параметър width_r = 1, параметър width_s = 1, параметър lpm_type = „altmemmult“, параметър lpm_hint = „unused“) ( часовник на входния кабел, входен проводник [width_c-1: 0]coeff_in, входен проводник [width_d-1:0] data_in, изходен кабел load_done, изходен проводник [width_r-1:0] резултат, изходен проводник valid_valid, входен проводник sclr, входен проводник [width_s-1:0] sel, вход проводник sload_coeff, входен проводник sload_data)/* синтез syn_black_box=1 */; краен модул
9.3. Декларация на VHDL компонент
Декларацията на VHDL компонента се намира във VHDL Design File (.vhd) altera_mf_components.vhd в директория librariesvhdlaltera_mf.
компонент altmemmult generic ( coeff_representation:string := “SIGNED”; coefficient0:string := “UNUSED”; data_representation:string := “SIGNED”; nameravaно_устройство_фамилия:низ := “unused”; max_clock_cycles_per_result:natural := 1; number_of_coefficients:natural := 1; ram_block_type:string := “AUTO”; total_latency:natural; width_c:natural; width_d:natural; width_r:natural; width_s:natural := 1; lpm_hint:string := “UNUSED”; lpm_type:string := „altmemmult“); port( clock:in std_logic; coeff_in:in std_logic_vector(width_c-1 downto 0) := (други => '0'); data_in:in std_logic_vector(width_d-1 downto 0);

Intel FPGA Integer Arithmetic IP Cores Ръководство за потребителя 58

Изпратете обратна връзка

9. ALTMEMMULT (базиран на паметта умножител на постоянен коефициент) IP ядро ​​683490 | 2020.10.05 г

load_done: out std_logic; резултат:изход std_logic_vector(width_r-1 downto 0); valid_резултат: изход std_logic; sclr:in std_logic := '0'; sel:in std_logic_vector(width_s-1 downto 0) := (други => '0'); sload_coeff:in std_logic := '0'; sload_data:in std_logic := '0'); краен компонент;

9.4. Портове

Следващите таблици изброяват входните и изходните портове за IP ядрото ALTMEMMULT.

Таблица 37. Входни портове ALTMEMMULT

Име на порт

Задължително

Описание

часовник

да

Тактов вход към умножителя.

coeff_in[]

не

Входен порт за коефициент за умножителя. Размерът на входния порт зависи от стойността на параметъра WIDTH_C.

data_in[]

да

Порт за въвеждане на данни към умножителя. Размерът на входния порт зависи от стойността на параметъра WIDTH_D.

sclr

не

Синхронен чист вход. Ако не се използва, стойността по подразбиране е активно високо.

сел []

не

Избор на фиксиран коефициент. Размерът на входния порт зависи от WIDTH_S

стойност на параметъра.

sload_coeff

не

Входен порт за коефициент на синхронно натоварване. Заменя текущо избраната стойност на коефициента със стойността, посочена във входа coeff_in.

sload_data

не

Порт за въвеждане на данни за синхронно натоварване. Сигнал, който указва нова операция за умножение и отменя всяка съществуваща операция за умножение. Ако параметърът MAX_CLOCK_CYCLES_PER_RESULT има стойност 1, входният порт на sload_data се игнорира.

Таблица 38. ALTMEMMULT Изходни портове

Име на порт

Задължително

Описание

резултат[]

да

Изходен порт на умножителя. Размерът на входния порт зависи от стойността на параметъра WIDTH_R.

резултат_валиден

да

Показва кога изходът е валиден резултат от пълно умножение. Ако параметърът MAX_CLOCK_CYCLES_PER_RESULT има стойност 1, изходният порт result_valid не се използва.

load_done

не

Показва кога новият коефициент е приключил със зареждането. Сигналът load_done потвърждава, когато нов коефициент приключи зареждането. Освен ако сигналът load_done не е висок, в паметта не може да се зареди друга стойност на коефициента.

9.5. Параметри

Следващата таблица изброява параметрите за IP ядрото ALTMEMMULT.

Таблица 39.
WIDTH_D WIDTH_C

Параметри ALTMEMMULT
Име на параметъра

Тип Задължителен

Описание

Цяло число Да

Указва ширината на порта data_in[].

Цяло число Да

Указва ширината на порта coeff_in[]. продължи…

Изпратете обратна връзка

Intel FPGA Integer Arithmetic IP Cores Ръководство за потребителя 59

9. ALTMEMMULT (базиран на паметта умножител на постоянен коефициент) IP ядро ​​683490 | 2020.10.05 г

Име на параметър WIDTH_R WIDTH

Документи / Ресурси

intel FPGA целочислени аритметични IP ядра [pdf] Ръководство за потребителя
FPGA целочислени аритметични IP ядра, цели аритметични IP ядра, аритметични IP ядра, IP ядра

Референции

Оставете коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са маркирани *