Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΏΠ»ΠΈΡ ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΠ°
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΠΠΠ‘ ΠΏΡΠΎΡΡΡΠΌ ΡΠ·ΡΠΊΠΎΠΌ Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ
Π‘ΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ ΡΡΠ°ΡΡΠΈ
ΠΡΠ»ΠΈΡΠΈΡ ΠΎΡ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠ²
ΠΠ»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² Π² ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°Ρ Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Π½Π°Π±ΠΎΡ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ ΠΈ ΡΡΠ΅Π΄ΡΡΠ² ΠΏΡΠΈΡΡΡΠΈΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΌΡ ΡΠΈΠΏΡ, ΠΎΡΡΡΡΠΏΠΈΡΡ ΠΎΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ Π½ΠΈΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π½Π΅ ΠΏΠΎΠ»ΡΡΠΈΡΡΡ. ΠΠ°ΠΌ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ Π½Π°Π±ΠΎΡ ΠΊΠΎΠΌΠ°Π½Π΄, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΡΠΎΡΡΡ Π²Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ ΠΎΠΊΡΡΠΆΠ°ΡΡΠ΅ΠΉ ΡΡΠ΅Π΄ΠΎΠΉ, ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ ΡΡΠΈΡΡΠ²Π°Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ Ρ ΡΠΈΡΡΠΎΠ²ΡΡ ΠΈ Π°Π½Π°Π»ΠΎΠ³ΠΎΠ²ΡΡ Π²Ρ ΠΎΠ΄ΠΎΠ² ΠΈ ΠΎΡΠΏΡΠ°Π²ΠΊΠ° ΡΠΈΠ³Π½Π°Π»ΠΎΠ² ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²Π°ΠΌ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π²ΡΡ ΠΎΠ΄ΠΎΠ².
ΠΡΠΎΠΌΠ΅ ΡΡΠΎΠ³ΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ, ΡΠΎΡ ΡΠ°Π½ΡΡΡ Π΄Π°Π½Π½ΡΠ΅ Π² ΡΠ΅Π³ΠΈΡΡΡΠ°Ρ ΠΈΠ»ΠΈ ΠΠΠ£, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΎΠΏΠ΅ΡΠΈΡΠΎΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΠΌΠΈ ΠΏΡΠΎΡΠΈΡΡΠΌΠΈ Π² ΠΏΠ°ΠΌΡΡΡ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°. ΠΠ° ΡΡΠΎΠΌ Π² ΡΡΡΠ½ΠΎΡΡΠΈ ΠΈ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΡΠ°Π±ΠΎΡΡ Ρ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°ΠΌΠΈ.
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ΅ΠΌΡΠ΅ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΈΠ½ΡΠ΅Π³ΡΠ°Π»ΡΠ½ΡΠ΅ ΡΡ Π΅ΠΌΡ (ΠΠΠΠ‘) ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ ΡΠ΅ΠΌ, ΡΡΠΎ, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ Π²Ρ ΡΠ°ΠΌΠΈ ΡΠΎΠ·Π΄Π°Π΅ΡΠ΅ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ΠΈΠ· Π±Π°Π·ΠΎΠ²ΡΡ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ². Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π²Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΠ΅ Π²ΡΡΠΎΠΊΠΎΠ΅ Π±ΡΡΡΡΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΈ Π³ΠΈΠ±ΠΊΠΎΡΡΡ ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΡ. ΠΡΠΎ Π΄Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ, Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ΅Π»ΡΠΉ ΡΡΠ΄ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ².
ΠΠ±ΠΎΠ±ΡΡΠ½Π½ΠΎ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π΅ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ ΠΠΠΠ‘ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΡ Π½Π° ΡΡΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ Π³ΡΡΠΏΠΏΡ:
1. ΠΠ°ΡΡΠΈΠ² ΠΈΠ· Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² (ΠΌΠ°ΠΊΡΠΎΡΡΠ΅Π΅ΠΊ, Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΡ Π±Π»ΠΎΠΊΠΎΠ²).
2. ΠΠ»ΠΎΠΊΠΈ Π²Ρ ΠΎΠ΄Π°-Π²ΡΡ ΠΎΠ΄Π° (IO).
3. ΠΠΈΠ½ΠΈΠΈ ΡΠ²ΡΠ·ΠΈ ΠΌΠ΅ΠΆΠ΄Ρ Π½ΠΈΠΌΠΈ ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΡΡΠΈΠΌΠΈ ΡΠ²ΡΠ·ΡΠΌΠΈ.
ΠΠ΄Π½Π°ΠΊΠΎ ΡΠ°ΠΊΠΎΠ΅ ΡΡΡΡΠΊΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΡΠ΅Π½Ρ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½ΠΎ, Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΡΠΎΡ Π²ΠΎΠΏΡΠΎΡ Π½ΠΈΠΆΠ΅.
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ Π²Ρ ΡΠΎΠ΅Π΄ΠΈΠ½ΡΠ΅ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ ΡΠΎΠΌΡ ΠΊΠ°ΠΊ Π±Ρ Π²Ρ ΡΡΠΎ Π΄Π΅Π»Π°Π»ΠΈ, ΡΠΎΠ±ΠΈΡΠ°Ρ ΠΈΠ· ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ ΠΈ ΡΠΎΠ΅Π΄ΠΈΠ½ΡΡ ΠΈΡ Π²Ρ ΠΎΠ΄Ρ ΠΈ Π²ΡΡ ΠΎΠ΄Ρ ΠΏΡΠΎΠ²ΠΎΠ΄Π½ΠΈΠΊΠ°ΠΌΠΈ.
ΠΠ»Π°Π²Π½ΡΠΌ ΠΎΡΠ»ΠΈΡΠΈΠ΅ΠΌ ΠΠΠΠ‘ ΠΎΡ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠ² ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎ, ΡΡΠΎ Π² ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ΅ Π²Ρ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΡ ΡΠ²ΡΠ·Π΅ΠΉ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΡΠΎΡΡΠ΅ΠΉΡΠΈΠΌΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ, Π° Π² ΠΠΠΠ‘ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΏΡΠΎΠΏΠΈΡΡΠ²Π°Π½ΠΈΡ ΡΠ²ΡΠ·Π΅ΠΉ ΠΎΡΠ½ΠΎΠ²ΡΠ²Π°Π΅ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΡΠ°Π±ΠΎΡΠ° Ρ Π½ΠΈΠΌΠΈ.
ΠΡΠ±ΠΎΡ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠ² ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΠΊΡΠΈΡΠ΅ΡΠΈΠ΅Π², ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ:
ΠΡΡΡΡΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΈ ΡΠ°ΠΊΡΠΎΠ²Π°Ρ ΡΠ°ΡΡΠΎΡΠ°;
ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π²Ρ ΠΎΠ΄ΠΎΠ² ΠΈ Π²ΡΡ ΠΎΠ΄ΠΎΠ².
ΠΡΡΠ³ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΠΈ ΠΏΠ΅ΡΠΈΡΠ΅ΡΠΈΠΈ, ΡΠΈΠΏΠ° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ Π»ΠΈΠ½ΠΈΠΉ ΡΠ²ΡΠ·ΠΈ ΠΈ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠ² (I2C, one-wire, PWM-ΡΠΈΠ³Π½Π°Π» ΠΈ ΠΏΡΠΎΡΠ΅Π΅).
Π Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΠΠΠ‘ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π±Π»ΠΎΠΊΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡΡΡ Π² ΡΠΈΡΠΎΠΊΠΈΡ ΠΏΡΠ΅Π΄Π΅Π»Π°Ρ , ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΈ ΡΡΠΎΠΈΠΌΠΎΡΡΡ.
ΠΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ Π²ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, ΠΏΡΠΎΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π² Π΅Π³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅, Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ Π±Π»ΠΎΠΊΠΈ ΠΠΠΠ‘ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π·Π°Π΄Π°ΡΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ ΠΈ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ Π΄ΡΡΠ³ ΠΎΡ Π΄ΡΡΠ³Π°, ΠΏΠΎΡΡΠΎΠΌΡ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΡΡΠΈΡ ΡΡΡΡΠΎΠΉΡΡΠ² ΠΏΠΎ ΡΠ°ΠΊΡΠΎΠ²ΠΎΠΉ ΡΠ°ΡΡΠΎΡΠ΅ Π½Π΅ΡΠ΅Π»Π΅ΡΠΎΠΎΠ±ΡΠ°Π·Π½ΠΎ. Π‘Π»ΠΈΡΠΊΠΎΠΌ ΡΠ°Π·Π»ΠΈΡΠ°Π΅ΡΡΡ ΠΈΡ ΠΏΡΠΈΠ½ΡΠΈΠΏ ΡΠ°Π±ΠΎΡΡ.
ΠΠΈΠ΄Ρ
ΠΠΊΡΡΠ°Π»ΡΠ½ΡΠΌΠΈ Π½Π° ΡΠ΅Π³ΠΎΠ΄Π½ΡΡΠ½ΠΈΠΉ Π΄Π΅Π½Ρ ΡΠ²Π»ΡΡΡΡΡ Π΄Π²Π° ΠΎΡΠ½ΠΎΠ²Π½ΡΡ Π²ΠΈΠ΄Π° ΠΠΠΠ‘:
ΠΠ½ΡΡΡΠ΅Π½Π½ΡΡ ΡΡΡΡΠΊΡΡΡΠ° ΡΡΡΠΎΠΈΡΡΡ Π½Π° ΠΌΠ°ΡΡΠΈΡΠ΅ ΠΌΠ°ΠΊΡΠΎΡΡΠ΅Π΅ΠΊ ΠΈΠ»ΠΈ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΡ Π±Π»ΠΎΠΊΠΎΠ², Π° ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π² Π½ΠΈΡ Π»Π΅ΠΆΠΈΡ Π² ΠΏΡΠ΅Π΄Π΅Π»Π°Ρ ΡΠΎΡΠ΅Π½ ΠΈ ΡΡΡΡΡ ΡΡΡΠΊ. ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΏΡΠΎΡΡΠΎΡΠ΅ ΡΡΠΎΡΡ Π΄Π΅ΡΠ΅Π²Π»Π΅ ΡΠ΅ΠΌ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π²ΠΈΠ΄ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ΅ΠΌΠΎΠΉ Π»ΠΎΠ³ΠΈΠΊΠΈ. ΠΡΡ ΡΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΡΠΎΠΌΡ, ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ CPLD Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ Π² ΡΡ Π΅ΠΌΠ°Ρ , Π³Π΄Π΅ Π½ΡΠΆΠ½Π° Π²ΡΡΠΎΠΊΠ°Ρ ΡΠΊΠΎΡΠΎΡΡΡ ΠΈ Π±ΠΎΠ»ΡΡΠΎΠ΅ ΡΠΈΡΠ»ΠΎ Π²ΡΠ²ΠΎΠ΄ΠΎΠ², ΠΏΡΠΈ ΡΡΠΎΠΌ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π½Π΅ΡΠ»ΠΎΠΆΠ½ΡΠ΅ Π·Π°Π΄Π°ΡΠΈ.
ΠΡΠΎΡΠΈΠ²ΠΊΠ°, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, Ρ ΡΠ°Π½ΠΈΡΡΡ Π²ΠΎ Π²Π½Π΅ΡΠ½Π΅ΠΉ ΡΠ½Π΅ΡΠ³ΠΎΠ½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ. ΠΡΠΎΠΌΠ΅ ΠΏΡΠΎΡΡΠ΅ΠΉΡΠΈΡ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π² FPGA ΠΌΠΎΠ³ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡΡ Π³ΠΎΡΠΎΠ²ΡΠ΅ Π±Π»ΠΎΠΊΠΈ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠ°ΠΊΠΈΡ -Π»ΠΈΠ±ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π±Π»ΠΎΠΊΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΈΠ³Π½Π°Π»Π° DSP. ΠΡΡ ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ, ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΈΠ³Π½Π°Π»ΠΎΠ² ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π°.
ΠΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ:
Π₯ΠΎΡΡ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π°Π»ΠΈΡΠΈΠ΅ ΡΠ½Π΅ΡΠ³ΠΎΠ½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ Π½Π΅ Π΄Π΅Π»Π°Π΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ΅ΠΌΡΡ Π»ΠΎΠ³ΠΈΠΊΡ CPLD. ΠΡΠΎ ΡΠ°ΡΡΠΈΡΠ½ΠΎ Π·Π°Π±Π»ΡΠΆΠ΄Π΅Π½ΠΈΠ΅. ΠΠ»Π°Π²Π½ΡΠΌ ΠΎΡΠ»ΠΈΡΠΈΠ΅ΠΌ CPLD ΠΎΡ FPGA ΡΠ²Π»ΡΠ΅ΡΡΡ Π²Π½ΡΡΡΠ΅Π½Π½ΡΡ ΡΡΡΡΠΊΡΡΡΠ°.
ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π΅ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ CPLD ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΎ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ Π½ΠΈΠΆΠ΅.
Π ΠΏΡΠΈΠΌΠ΅ΡΠ½Π°Ρ ΡΡ Π΅ΠΌΠ° Π΅Ρ ΠΌΠ°ΠΊΡΠΎΡΡΠ΅ΠΉΠΊΠΈ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
ΠΠ°ΠΊΡΠΎΡΡΠ΅ΠΉΠΊΠ° ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ΅ΠΌΡΡ ΠΌΡΠ»ΡΡΠΈΠΏΠ»Π΅ΠΊΡΠΎΡΠΎΠ², ΡΡΠΈΠ³Π³Π΅ΡΠΎΠ² (ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ) ΠΈ ΡΠΎΡΠΌΠΈΡΡΠ΅Ρ Π³ΡΡΠΏΠΏΡ Π²ΡΡ ΠΎΠ΄Π½ΡΡ ΡΠΈΠ³Π½Π°Π»ΠΎΠ² Π€Π Π² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΈΡ Π²Π°ΡΠΈΠ°Π½ΡΠ°Ρ .
ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΏΡΠΈΠΌΠ΅Ρ β Π±Π»ΠΎΠΊ-ΡΡ Π΅ΠΌΠ° CPLD ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΡ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²Π° MAX II ΡΠΈΡΠΌΡ Altera.
Π ΡΡΡΡΠΊΡΡΡΠ½ΡΠΉ ΠΏΠ»Π°Π½ ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌ ΡΡΠΎΠ³ΠΎ ΠΆΠ΅ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²Π°.
ΠΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΠ΅ ΡΠΈΠ½Ρ ΠΌΠ°ΠΊΡΠΎΡΡΠ΅ΠΉΠΊΠ°ΠΌ Π½Π°Π·Π½Π°ΡΠ°ΡΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ°ΠΊΠΎΠ³ΠΎ ΡΠ·Π»Π°, ΠΊΠ°ΠΊ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ, Π½Π° Π°Π½Π³Π». ΠΎΠ½ Π·Π²ΡΡΠΈΡ ΠΊΠ°ΠΊ Logic Allocator, ΡΡΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΎ Π½Π° ΡΡ Π΅ΠΌΠ΅ Π½ΠΈΠΆΠ΅, Π½Π° Π½Π΅ΠΉ ΠΆΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½Π° ΠΌΠ°ΡΡΠΈΡΠ° ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ (Global Routing Pool), Π° Ρ Π²ΡΡ ΠΎΠ΄Π½ΡΡ ΠΌΠ°ΠΊΡΠΎΡΡΠ΅ΠΉΠΊΠΈ (macrocells) ΠΈΠΌΠ΅ΡΡ ΠΏΠΎ Π΄Π²Π΅ ΠΎΠ±ΡΠ°ΡΠ½ΡΡ ΡΠ²ΡΠ·ΠΈ.
ΠΠ½Π΅ΡΠ½ΠΈΠ΅ Π²ΡΠ²ΠΎΠ΄Ρ ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΡ ΡΠΎΠ΅Π΄ΠΈΠ½ΡΡΡΡΡ Ρ Π²ΡΡ ΠΎΠ΄Π°ΠΌΠΈ ΠΌΠ°ΠΊΡΠΎΡΡΠ΅Π΅ΠΊ ΡΠ΅ΡΠ΅Π· Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ Π±Π»ΠΎΠΊ (ΠΌΠ°ΡΡΠΈΡΡ) β ORP (Output Routing Pool), ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΡΠ΅ΡΠ΅Π· Π½Π΅Ρ ΠΆΠ΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΠ₯ΠΠΠΠΠ Π»ΠΎΠ³ΠΈΠΊΠΈ Ρ GRP, ΡΡΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΎ Π½Π° ΠΈΠ»Π»ΡΡΡΡΠ°ΡΠΈΠΈ Π½ΠΈΠΆΠ΅.
Π Π½Π΅ΠΊΠΎΡΠΎΡΡΡ CPLD Π΅ΡΡΡ Ρ.Π½. ΠΏΡΡΠΌΡΠ΅ Π²Ρ ΠΎΠ΄Ρ (Direct Input) β ΠΎΠ½ΠΈ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½Ρ ΡΠΎ Π²Ρ ΠΎΠ΄Π°ΠΌΠΈ ΡΡΠ΅Π΅ΠΊ Π½Π°ΠΏΡΡΠΌΡΡ, ΡΡΠΎ ΡΠΌΠ΅Π½ΡΡΠ°Π΅Ρ Π·Π°Π΄Π΅ΡΠΆΠΊΠΈ.
Π£ FPGA ΡΡΡΡΠΊΡΡΡΠ° ΠΈΠΌΠ΅Π΅Ρ Π²ΠΈΠ΄:
L β Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΡΠ΅ΠΌΡΠΉ Π±Π»ΠΎΠΊ;
S (substitution block) β Π±Π»ΠΎΠΊ ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΎΠΊ, ΠΎΠ½ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ Π½Π° Ρ ΠΎΠ΄ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ Π±ΠΈΡ, ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅Ρ, ΠΏΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ, Π° Π½Π° Π²ΡΡ ΠΎΠ΄Π΅ Π²ΡΠ΄Π°ΡΡ Π΄ΡΡΠ³ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ Π±ΠΈΡ. ΠΡΡΠ³ΠΈΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ β Π΄Π΅ΡΠΈΡΡΠ°ΡΠΎΡ, ΡΠΈΡΡΠ°ΡΠΎΡ ΠΈ ΠΊΠΎΠΌΠΌΡΡΠ°ΡΠΎΡ.
C (connection block) β Π±Π»ΠΎΠΊ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ.
ΠΠ°ΡΡΠΈΡΠ΅ΡΡ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π° Π½Π° Π±Π°Π·Π΅ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠ² ΠΈ ΡΡΠ°Π½ΡΡΠ΅ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠΎΠΌ ΡΠΌΠ½ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ² Ρ Π½ΡΠ»Ρ: ΠΠ½ΠΆΠ΅Π½Π΅Ρ ΡΠΌΠ½ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΠΠΠ‘ Π΄ΠΎΡΡΡΠΏΠ½ΠΎ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅. Π’ΠΎ Π΅ΡΡΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΡΡΠΎ ΡΠΈΡΠΎΠ²Π°ΡΡ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΡ Π΅ΠΌΡ ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄ Ρ Π³ΡΠ°ΡΠΈΠΊΠΎΠΉ. ΠΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ Π½Π°Π·ΡΠ²Π°ΡΡ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΡΠΌ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΏΡΠΎΠΏΠΈΡΡΠ²Π°ΡΡΡΡ, Π° Π²Π΅ΡΡ Π½ΠΈΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π²ΡΡ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΠ΅ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ΅ΡΡΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ.
ΠΠΎΠ΄Π±ΠΎΡΠΊΠ° ΠΏΠΎΠ»Π΅Π·Π½ΡΡ ΡΡΠ°ΡΠ΅ΠΉ ΠΏΡΠΎ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΡ:
ΠΡΠΈΠΌΠ΅ΡΡ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π΅ΠΉ ΠΈ ΡΠ΅ΡΠΈΠΉ ΠΠΠΠ‘
ΠΠ° ΠΌΠΎΠΌΠ΅Π½Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΡΡΠ°ΡΡΠΈ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΌΠΈ ΡΠ²Π»ΡΡΡΡΡ ΠΈΠ·Π΄Π΅Π»ΠΈΡ Π΄Π²ΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π΅ΠΉ.
Altera (ΠΎΡΠ½ΠΎΠ²Π°Π½Π° Π² 1983 Π³ΠΎΠ΄Ρ);
Xilinx (ΠΡΠ½ΠΎΠ²Π°Π½Π° Π² 1984 Π³ΠΎΠ΄Ρ).
Π£ Altera Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΡΠ΅ΡΠΈΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ΅ΠΌΠΎΠΉ Π»ΠΎΠ³ΠΈΠΊΠΈ:
ΠΠ°ΡΠΈΠ½Π°Π΅ΠΌ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ FPGA ΠΈΠ»ΠΈ ΠΠΠΠ‘ ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ. Π§Π°ΡΡΡ 1
ΠΠΠΠΠΠΠΠ
ΠΠ· Π΄ΠΎΡΡΡΠΏΠ½ΡΡ Π±ΡΠ΄ΠΆΠ΅ΡΠ½ΡΡ ΠΠΠΠ‘ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ΄Π΅Π»ΠΈΡΡ Π΄Π²ΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π΅ΠΉ Altera ΠΈ Xilinx, Ρ ΠΈΡ ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΠ°ΡΡ ΡΠ²ΠΎΠΉ ΠΏΡΡΡ ΠΎΡΠ²ΠΎΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ. ΠΠ° ΠΌΠΎΠΉ Π²Π·Π³Π»ΡΠ΄ Π»ΡΡΡΠ΅ Π²ΡΠ±ΡΠ°ΡΡ ΡΠΈΠΏΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Altera, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΈΡ ΡΡΠ΅Π΄Π° ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΡΡΡ, Π° Π²ΡΠ±ΡΠ°Π² ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠΉ ΡΠΈΠΏ Xilinx XC3S500E Π²Π°ΠΌ ΠΏΡΠΈΠ΄Π΅ΡΡΡ Π΄ΠΎΠ²ΠΎΠ»ΡΡΡΠ²ΠΎΠ²Π°ΡΡΡΡ ΡΡΡΠ°ΡΠ΅Π²ΡΠ΅ΠΉ ΡΡΠ΅Π΄ΠΎΠΉ ISE 14.7 (Ρ ΠΎΡΡ ΠΈ ΡΠ°ΠΌ Π΅ΡΡΡ ΡΠ²ΠΎΠΈ ΠΏΠ»ΡΡΡ).
Π Π°Π·Π³ΠΎΠ²ΠΎΡ ΠΏΠΎΠΉΠ΄Π΅Ρ ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΡΡΡΡ Π²Π΅ΡΠ°Ρ , ΡΠ΅ΠΌ Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎ ΠΌΠ½Π΅ Π² ΡΡΠΊΠΈ ΠΏΠΎΠΏΠ°Π» Π½Π°Π±ΠΎΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°: Cyclone IV 4 FPGA Core Board ΠΈ Altera USB Blaster Downloader PLD Development kit Π·Π° 35$, ΠΏΡΠΈΠΎΠ±ΡΠ΅ΡΠ΅Π½Π½ΡΠΉ Π½Π° AliExpress.
1 ΠΠ΅ΠΌΠΎΠΏΠ»Π°ΡΠ° Cyclone IV 4 FPGA Core Board, ΠΊΡΠ°ΡΠΊΠ°Ρ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠ°
ΠΠ° ΠΏΠ»Π°ΡΠ΅ (Π ΠΈΡ. 1) ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ ΡΠΈΠΏ EP4CE6E22C8N, Π΅Π³ΠΎ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ:
ΠΠ° ΠΏΠ»Π°ΡΠ΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ:
Π ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ΅ ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ΄Π΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΡΠΎΡ JTAG, Altera USB Blaster.
2. Π‘ΡΠ΅Π΄Π° Quartus II ΠΈ Π½Π°Ρ ΠΏΠ΅ΡΠ²ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ
Π ΠΆΠΌΠ΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΡ ΡΠΊΠ°ΡΠ°ΡΡ (Download Selected Files). ΠΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ Π½Π°ΠΌ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ°Ρ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°ΡΡΡΡ, ΡΠ΅Π³ΠΈΡΡΡΠΈΡΡΠ΅ΠΌΡΡ, ΡΠΊΠ°ΡΠΈΠ²Π°Π΅ΠΌ ΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ.
Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΡΠ²ΠΎΠΉ ΠΏΠ΅ΡΠ²ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ.
ΠΠΌΠ΅ΠΌ next, Ρ Π½Π°Ρ ΡΠΏΡΠ°ΡΠΈΠ²Π°ΡΡ, ΠΏΡΡΡΠΎΠΉ ΠΏΡΠΎΠ΅ΠΊΡ (empty project) ΠΈΠ»ΠΈ ΡΠ°Π±Π»ΠΎΠ½ (Project template). ΠΡΡΠ°Π²Π»ΡΠ΅ΠΌ ΠΏΡΡΡΠΎΠΉ, next. ΠΠ°Π»ΡΡΠ΅ Π½Π°Ρ ΠΏΡΠΎΡΡΡ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠ΅ ΡΠ°ΠΉΠ»Ρ, Ρ Π½Π°Ρ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅Ρ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΌΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π°ΡΠΈΠ½Π°Π΅ΠΌ ΡΠ²ΠΎΠΉ ΠΏΡΡΡ, ΠΆΠΌΠ΅ΠΌ next.
ΠΠ°Π»Π΅Π΅ Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΠ±ΡΠ°ΡΡ Π½Π°Ρ ΡΠΈΠΏ, ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π² Π»ΡΠ±ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ. ΠΡΠ±ΠΈΡΠ°Π΅ΠΌ ΠΊΠ°ΠΊ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅, Family β Cyclone IV E, specific device selected in βAvailable devicesβ ΠΈ Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ Π½Π°Ρ ΡΠΈΠΏ EP4CE6E22C8N, ΠΎΠ½ Π² ΡΠ°ΠΌΠΎΠΌ Π½Π°ΡΠ°Π»Π΅. ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π΄ΡΡΠ³ΠΎΠΉ, Π½Π°ΠΉΠ΄ΠΈΡΠ΅ ΡΠ²ΠΎΠΉ, ΡΡΠΎ Π²Π°ΠΆΠ½ΠΎ. ΠΠΌΠ΅ΠΌ next.
Π ΠΎΠΊΠ½Π΅ Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ ΠΏΡΠ½ΠΊΡ Β«Unused pinsΒ». ΠΡΠ° Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, ΡΡΠΎ Π±ΡΠ΄Π΅Ρ Ρ Π½Π΅ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Π½ΡΠΌΠΈ ΠΏΠΈΠ½Π°ΠΌΠΈ. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²Π°ΠΆΠ½ΠΎ, Π² ΡΠ²ΠΎΠ΅ΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅ Π²Ρ Π²ΡΡΠ΄ Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Π²ΡΠ΅ ΠΏΠΈΠ½Ρ, Π° Π½Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Π½ΡΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π½Π° Π΄Π΅Π»Π΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½Ρ Ρ Π·Π΅ΠΌΠ»Π΅ΠΉ ΠΈΠ»ΠΈ ΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΌ (Π½Ρ ΠΌΠ°Π»ΠΎ Π»ΠΈ, ΠΊΡΠΎ ΡΠ°Π·Π²ΠΎΠ΄ΠΈΠ» ΠΏΠ»Π°ΡΡ). ΠΡΠ»ΠΈ Π²Ρ ΠΏΠΎΠ΄Π°Π΄ΠΈΡΠ΅ Π΅Π΄ΠΈΠ½ΠΈΡΠΊΡ Π½Π° Π·Π°Π·Π΅ΠΌΠ»Π΅Π½Π½ΡΠΉ ΠΏΠΈΠ½, ΡΠΎ ΠΎΠ½ ΡΠ³ΠΎΡΠΈΡ, ΠΏΠΎΡΡΠΎΠΌΡ Π½ΡΠΆΠ½ΠΎ Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½ΠΎ ΡΠ»Π΅Π΄ΠΈΡΡ Π·Π° ΡΡΠΈΠΌ.
ΠΠ°Π»Π΅Π΅ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π½Π°ΡΡΡΠΎΠΈΡΡ ΠΏΠΈΠ½Ρ, ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ ΡΡΠΎΠ±Ρ ΡΠΈΠ³Π½Π°Π» ΡΠ΅Π» Π½Π° Π½ΡΠΆΠ½ΡΠ΅ Π½Π°ΠΌ Π½ΠΎΠΆΠΊΠΈ ΡΠΈΠΏΠ°, Π²Π΅Π΄Ρ ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ Quartus Π½Π΅ Π·Π½Π°Π΅Ρ, ΡΡΠΎ ΠΊΡΠ΄Π° ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΎ ΠΈ ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎΡΡΡΠ΅ΡΡΠ²Π»Π΅Π½Π° ΡΠ°Π·Π²ΠΎΠ΄ΠΊΠ° ΠΏΠ»Π°ΡΡ.
ΠΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌ ΡΡΠΎ Π²ΡΠ΅ Π² Β«Assignment EditorΒ»
Π ΠΏΠΎΡΠ²ΠΈΠ²ΡΠ΅ΠΌΡΡ ΠΎΠΊΠ½Π΅ Π΄Π΅Π»Π°Π΅ΠΌ ΠΊΠ°ΠΊ Ρ ΠΌΠ΅Π½Ρ, Π½Ρ ΠΈΠ»ΠΈ Π΅ΡΠ»ΠΈ ΡΠΎΠ²ΡΠ΅ΠΌ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ, ΡΠΎ ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ ΡΡ Π΅ΠΌΠ΅ Π²Π°ΡΠ΅ΠΉ ΠΏΠ»Π°ΡΡ.
Π ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ΅ Β«ToΒ» Π²ΠΏΠΈΡΡΠ²Π°Π΅ΠΌ ΠΈΠΌΡ Π²Ρ ΠΎΠ΄Π° ΠΈΠ»ΠΈ Π²ΡΡ ΠΎΠ΄Π°. Π ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ΅ Β«Assignment NameΒ» Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ Β«LocationΒ». Π ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ΅ Β«ValueΒ» Π½ΠΎΠΌΠ΅Ρ ΠΊΠΎΠ½ΡΠ°ΠΊΡΠ° ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΡ, ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ ΡΡ Π΅ΠΌΡ ΠΏΠ»Π°ΡΡ (Ρ ΠΌΠ΅Π½Ρ Π½ΠΎΠΌΠ΅ΡΠ° ΠΏΠΈΠ½ΠΎΠ² Π½Π°ΠΏΠΈΡΠ°Π½Ρ ΠΏΡΡΠΌΠΎ Π½Π° ΠΏΠ»Π°ΡΠ΅).
Π’Π°ΠΊΠΆΠ΅ Π½ΡΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ Π΄Π΅Π»Π°ΡΡ Ρ ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ΄Π½ΠΎΠΉ Π½ΠΎΠ³ΠΎΠΉ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Ρ ΠΊ Π·Π΅ΠΌΠ»Π΅, Π° Π΄ΡΡΠ³ΠΎΠΉ ΠΊΠΎ Π²Ρ ΠΎΠ΄Ρ ΡΠΈΠΏΠ°. ΠΡΠΈ Π½Π°ΠΆΠ°ΡΠΈΠΈ Π½Π° Π½ΠΎΠ³Π΅ Π±ΡΠ΄Π΅Ρ Π½ΠΈΠ·ΠΊΠΈΠΉ ΡΡΠΎΠ²Π΅Π½Ρ, Π° Π²ΠΎΡ Π±Π΅Π· Π½Π°ΠΆΠ°ΡΠΈΡ, Π½Π΅ΠΏΠΎΠ½ΡΡΠ½ΠΎ, Π½ΠΎΠ³Π° ΡΠΈΠΏΠ° Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΡΡΠΎ Π²ΠΈΡΠ΅ΡΡ Π² Π²ΠΎΠ·Π΄ΡΡ Π΅, ΡΡΠΎ ΠΎΡΠ΅Π½Ρ ΠΏΠ»ΠΎΡ ΠΎ. ΠΡΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΡΡΠ½ΡΡΡ ΠΊ ΠΏΠΈΡΠ°Π½ΠΈΡ Π²Ρ ΠΎΠ΄ ΡΠΈΠΏΠ° Π»ΠΈΠ±ΠΎ ΡΠ΅Π·ΠΈΡΡΠΎΡΠΎΠΌ Π½Π° ΠΏΠ»Π°ΡΠ΅, Π»ΠΈΠ±ΠΎ Π±ΠΎΠ»Π΅ ΡΠ»Π΅Π³Π°Π½ΡΠ½ΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ Π² Β«Assignments EditorΒ». Π ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ΅ Β«Assignment NameΒ» Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ Β«Weak Pull Up resistorΒ» Π΄Π»Ρ Π³ΡΡΠΏΠΏΡ key* (Π³ΡΡΠΏΠΏΠ° ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°Π΅ΡΡΡ ΡΠ΅ΡΠ΅Π· Π·Π²Π΅Π·Π΄ΠΎΡΠΊΡ).
ΠΠ°Π»Π΅Π΅ Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»Ρ Π²Π΅ΡΡ Π½Π΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Ρ Π½ΠΎΠΆΠΊΠ°ΠΌΠΈ ΡΠΈΠΏΠ°, Π²ΡΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ Π±ΡΠ΄ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Ρ Π½ΠΈΠΌ. Π Π³Π»Π°Π²Π½ΠΎΠΌ ΠΌΠ΅Π½Ρ ΠΆΠΌΠ΅ΠΌ New, ΠΈ Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ «Design Files-> Block Diagram/Schematic File».
Π ΠΎΡΠΊΡΡΠ²ΡΠ΅ΠΌΡΡ ΠΎΠΊΠ½Π΅ Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Β«Pin ToolΒ» ΠΈ ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌ Π²Ρ ΠΎΠ΄ ΠΈ Π²ΡΡ ΠΎΠ΄ (ΠΏΠΈΠ½Ρ Π²Π²ΠΎΠ΄Π° ΠΈ Π²ΡΠ²ΠΎΠ΄Π°) Π½Π° Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ΅. ΠΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²ΡΠ²Π°Π΅ΠΌ Π²Ρ ΠΎΠ΄ ΠΊΠ°ΠΊ key[0], Π²ΡΡ ΠΎΠ΄ ΠΊΠ°ΠΊ led[0] ΠΈ ΡΠΎΠ΅Π΄ΠΈΠ½ΡΠ΅ΠΌ ΠΈΡ ΠΏΡΠΎΠ²ΠΎΠ΄Π½ΠΈΠΊΠΎΠΌ. Π‘ΠΎΡ ΡΠ°Π½ΡΠ΅ΠΌ ΠΈ Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ «Start Compilation».
ΠΠΎΡΠ»Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ Ρ Π½Π°Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΈ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ, ΠΏΠΎΠΊΠ° ΠΈΠ³Π½ΠΎΡΠΈΡΡΠ΅ΠΌ ΠΈΡ , ΠΎΠ½ΠΈ ΠΊΠ°ΡΠ°ΡΡΡΡ Π½Π΅ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Π½ΡΡ ΠΏΠΈΠ½ΠΎΠ², ΠΎΡΡΡΡΡΡΠ²ΠΈΡ ΡΠ°ΠΊΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠΈΠ³Π½Π°Π»Π° ΠΈ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ Π΄Π»Ρ Β«Timing AnalyzerΒ».
ΠΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌ Π΄Π΅ΠΌΠΎΠΏΠ»Π°ΡΡ ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΡΠΎΡ, Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Β«ProgrammerΒ». Π ΠΎΠΊΠ½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π·Π½Π°ΡΠΈΡΡΡΡ Β«USB-Blaster [USB-..]Β», Π΅ΡΠ»ΠΈ Π½Π΅Ρ ΡΠΎ Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ Β«Hardware SetupΒ» ΠΈ ΠΏΡΡΠ°Π΅ΠΌΡΡ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ ΠΏΠΎΡΠ΅ΠΌΡ Π½Π΅Ρ, ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ Π½Π΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Ρ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ°, ΡΠΌΠΎΡΡΠΈΠΌ Π² ΡΡΡΡΠΎΠΉΡΡΠ²Π° Windows, ΠΈΡΠ΅ΠΌ Π½Π΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π°, ΠΌΠΎΠΆΠ΅Ρ Ρ ΠΊΠ°Π±Π΅Π»Π΅ΠΌ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°. ΠΡΠ»ΠΈ Π²ΡΠ΅ Ρ ΠΎΡΠΎΡΠΎ Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ Β«Auto DetectΒ» ΠΈ Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ Π½Π°Ρ ΡΠΈΠΏ.
ΠΠ°ΠΆΠΈΠΌΠ°Π΅ΠΌ Π΄Π²ΠΎΠΉΠ½ΡΠΌ ΡΠ΅Π»ΡΠΊΠΎΠΌ ΠΌΡΡΠΈ Π² ΠΏΠΎΠ»Π΅ Β«FileΒ» ΠΈ Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ ΡΠ°ΠΉΠ» Π΄Π»Ρ Π·Π°ΠΏΠΈΡΠΈ Π½Π° ΠΠΠΠ‘ (Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡΡ Π² ΠΏΠ°ΠΏΠΊΠ΅ output_files Π½Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°), ΡΡΠ°Π²ΠΈΠΌ Π³Π°Π»ΠΎΡΠΊΡ Π² ΠΏΠΎΠ»Π΅ Β«Program / ConfigureΒ», ΠΈ Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΡ Β«StartΒ».
ΠΠΎΠ·Π΄ΡΠ°Π²Π»ΡΡ Ρ ΠΏΠ΅ΡΠ²ΠΎΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠ΅ΠΉ ΠΠΠΠ‘! ΠΠΈΠΎΠ΄ D1 Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ²Π΅ΡΠΈΡΡΡΡ, ΠΏΡΠΈ Π½Π°ΠΆΠ°ΡΠΈΠΈ key1 Π΄ΠΎΠ»ΠΆΠ΅Π½ Π³Π°ΡΠ½ΡΡΡ (ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΊΠ½ΠΎΠΏΠΊΠ° Π·Π°ΠΌΡΠΊΠ°Π΅Ρ Π½ΠΎΠΆΠΊΡ Ρ Π·Π΅ΠΌΠ»Π΅ΠΉ), Π΄Π°Π»Π΅Π΅ ΠΌΡ Ρ ΡΡΠΈΠΌ ΡΡΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ ΡΠ΄Π΅Π»Π°Π΅ΠΌ)
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΏΠ»ΠΈΡ ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΠ°
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΠΈ ΠΠΠΠ‘ ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΡ Π΄Π»Ρ ΡΠ²ΠΎΠΈΡ ΠΠΠΠ‘, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Ρ ΠΏΠΎΠ΄ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ Π·Π°Π΄Π°ΡΡ, Π° Π·Π°ΡΠ΅ΠΌ Π²ΡΡΡΠΎΠ΅Π½Ρ Π² ΠΠΠΠ‘. Π’Π΅ΠΌ ΡΠ°ΠΌΡΠΌ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅ΡΡΡ ΡΠΌΠ΅Π½ΡΡΠ΅Π½ΠΈΠ΅ ΠΌΠ΅ΡΡΠ° Π½Π° ΠΏΠ΅ΡΠ°ΡΠ½ΠΎΠΉ ΠΏΠ»Π°ΡΠ΅ ΠΈ ΡΠΏΡΠΎΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ°ΠΌΠΎΠΉ ΠΠΠΠ‘, Π·Π° ΡΡΡΡ Π±ΡΡΡΡΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ.
Π‘ΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ΅ΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ
ΠΠΠΠ‘ ΡΠΈΡΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΏΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΈ ΠΏΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠΌ ΡΠΈΡΡΠΎΠ²ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ².
ΠΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π³Π΄Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΡΡΠΎΠ² Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π° (Π±ΡΠ²Π°ΡΡ ΠΠΠΠ‘ Ρ Π±ΠΎΠ»Π΅Π΅ ΡΠ΅ΠΌ 1000 Π²ΡΠ²ΠΎΠ΄ΠΎΠ² (Β«ΠΏΠΈΠ½ΠΎΠ²Β»)), ΡΠΈΡΡΠΎΠ²Π°Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠΈΠ³Π½Π°Π»Π° (Π¦ΠΠ‘), ΡΠΈΡΡΠΎΠ²Π°Ρ Π²ΠΈΠ΄Π΅ΠΎΠ°ΡΠ΄ΠΈΠΎΠ°ΠΏΠΏΠ°ΡΠ°ΡΡΡΠ°, Π²ΡΡΠΎΠΊΠΎΡΠΊΠΎΡΠΎΡΡΠ½Π°Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ° Π΄Π°Π½Π½ΡΡ , ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡ, ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΏΡΠΎΡΠΎΡΠΈΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ASIC, Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΌΠΎΡΡΠΎΠ² (ΠΊΠΎΠΌΠΌΡΡΠ°ΡΠΎΡΠΎΠ²) ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌΠΈ Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΎΠΉ Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ ΠΈ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΠΈΡΠ°Π½ΠΈΡ, ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π΅ΠΉΡΠΎΡΠΈΠΏΠΎΠ², ΠΌΠΎΠ΄Π΅Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠ²Π°Π½ΡΠΎΠ²ΡΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ.
Π ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΏΠ΅ΡΠΈΡΠ΅ΡΠΈΠΉΠ½ΡΡ ΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°Ρ ΠΏΠ»Π°ΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ Plug and Play ΠΈΠΌΠ΅ΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΡ β ΠΠΠΠ‘, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠ»Π°ΡΠ΅ ΡΠΎΠΎΠ±ΡΠ°ΡΡ ΡΠ²ΠΎΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΈ ΡΠΏΠΈΡΠΎΠΊ ΡΡΠ΅Π±ΡΠ΅ΠΌΡΡ ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΡ ΡΠ΅ΡΡΡΡΠΎΠ².
Π’ΠΈΠΏΡ ΠΠΠΠ‘
Π Π°Π½Π½ΠΈΠ΅ ΠΠΠΠ‘
Π 1970 Π³ΠΎΠ΄Ρ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ Texas Instruments ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π»Π° ΠΌΠ°ΡΠΊΠΈΡΡΠ΅ΠΌΡΠ΅ (ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ΅ΠΌΡΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ°ΡΠΊΠΈ, Π°Π½Π³Π». mask-programmable) ΠΠ‘ ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΠ΅ Π½Π° Π°ΡΡΠΎΡΠΈΠ°ΡΠΈΠ²Π½ΠΎΠΌ ΠΠΠ£ (ROAM) ΡΠΈΡΠΌΡ IBM. ΠΡΠ° ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΠ°, TMS2000, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π»Π°ΡΡ ΡΠ΅ΡΠ΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΌΠ΅ΡΠ°Π»Π»ΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ»ΠΎΡΠ² Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π° ΠΠ‘. TMS2000 ΠΈΠΌΠ΅Π»Π° Π΄ΠΎ 17 Π²Ρ ΠΎΠ΄ΠΎΠ² ΠΈ 18 Π²ΡΡ ΠΎΠ΄ΠΎΠ² Ρ 8-Ρ JK-ΡΡΠΈΠ³Π³Π΅ΡΠ°ΠΌΠΈ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ°ΠΌΡΡΠΈ. ΠΠ»Ρ ΡΡΠΈΡ ΡΡΡΡΠΎΠΉΡΡΠ² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ TI Π²Π²Π΅Π»Π° ΡΠ΅ΡΠΌΠΈΠ½ Programmable Logic Array(PLA) β ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ΅ΠΌΠ°Ρ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΌΠ°ΡΡΠΈΡΠ°.
PAL (Π°Π½Π³Π». Programmable Array Logic) β ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ΅ΠΌΡΠΉ ΠΌΠ°ΡΡΠΈΠ² (ΠΌΠ°ΡΡΠΈΡΠ°) Π»ΠΎΠ³ΠΈΠΊΠΈ. Π Π‘Π‘Π‘Π PLA ΠΈ PLM Π½Π΅ ΡΠ°Π·Π»ΠΈΡΠ°Π»ΠΈΡΡ ΠΈ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠΈΠ»ΠΈΡΡ ΠΊΠ°ΠΊ ΠΠΠ. Π Π°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ Π½ΠΈΠΌΠΈ ΡΠΎΡΡΠΎΠΈΡ Π² Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΡΡΡΡΠΊΡΡΡΡ (ΠΌΠ°ΡΡΠΈΡ) ΠΠΠ.
CPLD (Π°Π½Π³Π». complex programmable logic device β ΡΠ»ΠΎΠΆΠ½ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ΅ΠΌΡΠ΅ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π°) ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΊΡΡΠΏΠ½ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ΅ΠΌΡΠ΅ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π±Π»ΠΎΠΊΠΈ β ΠΌΠ°ΠΊΡΠΎΡΡΠ΅ΠΉΠΊΠΈ, ΡΠΎΠ΅Π΄ΠΈΠ½ΡΠ½Π½ΡΠ΅ Ρ Π²Π½Π΅ΡΠ½ΠΈΠΌΠΈ Π²ΡΠ²ΠΎΠ΄Π°ΠΌΠΈ ΠΈ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΌΠΈ ΡΠΈΠ½Π°ΠΌΠΈ. Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ CPLD ΠΊΠΎΠ΄ΠΈΡΡΠ΅ΡΡΡ Π² ΡΠ½Π΅ΡΠ³ΠΎΠ½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ, ΠΏΠΎΡΡΠΎΠΌΡ Π½Π΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΈ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ. ΠΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ Π΄Π»Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ ΡΠΈΡΠ»Π° Π²Ρ ΠΎΠ΄ΠΎΠ²/Π²ΡΡ ΠΎΠ΄ΠΎΠ² ΡΡΠ΄ΠΎΠΌ Ρ Π±ΠΎΠ»ΡΡΠΈΠΌΠΈ ΠΊΡΠΈΡΡΠ°Π»Π»Π°ΠΌΠΈ, ΠΈΠ»ΠΈ Π΄Π»Ρ ΠΏΡΠ΅Π΄ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΈΠ³Π½Π°Π»ΠΎΠ² (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ COM-ΠΏΠΎΡΡΠ°, USB, VGA).
FPGA (Π°Π½Π³Π». field-programmable gate array ) ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ Π±Π»ΠΎΠΊΠΈ ΡΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΡ-ΡΡΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΈΡΠΎΠΊΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΠΏΡΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ΅ ΡΠΈΠ³Π½Π°Π»ΠΎΠ² (DSP), Π° ΡΠ°ΠΊΠΆΠ΅ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ (ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, Π½Π° Π±Π°Π·Π΅ ΡΠ°Π±Π»ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠΈ β ΡΠ°Π±Π»ΠΈΡ ΠΈΡΡΠΈΠ½Π½ΠΎΡΡΠΈ) ΠΈ ΠΈΡ Π±Π»ΠΎΠΊΠΈ ΠΊΠΎΠΌΠΌΡΡΠ°ΡΠΈΠΈ. FPGA ΠΎΠ±ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΈΠ³Π½Π°Π»ΠΎΠ², ΠΈΠΌΠ΅ΡΡ Π±ΠΎΠ»ΡΡΠ΅ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΈ Π±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΡΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ, ΡΠ΅ΠΌ CPLD. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π΄Π»Ρ FPGA Ρ ΡΠ°Π½ΠΈΡΡΡ Π² ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π° ΠΊΠ°ΠΊ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠ½Π΅ΡΠ³ΠΎΠ·Π°Π²ΠΈΡΠΈΠΌΡΡ ΡΡΠ΅Π΅ΠΊ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΠΠ£ (ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠΈΡΠΌΡ Xilinx ΠΈ Altera) β Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π½Π΅ ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΡΡΡ ΠΏΡΠΈ ΠΈΡΡΠ΅Π·Π½ΠΎΠ²Π΅Π½ΠΈΠΈ ΡΠ»Π΅ΠΊΡΡΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΡ, ΡΠ°ΠΊ ΠΈ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠ½Π΅ΡΠ³ΠΎΠ½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΡ ΡΡΠ΅Π΅ΠΊ Flash-ΠΏΠ°ΠΌΡΡΠΈ ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΡΡΠ΅ΠΊ antifuse (ΡΠ°ΠΊΠΈΠ΅ ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ ΡΠΈΡΠΌΠ° Actel ΠΈ Lattice Semiconductor) β Π² ΡΡΠΈΡ ΡΠ»ΡΡΠ°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΡΡΡ ΠΏΡΠΈ ΠΈΡΡΠ΅Π·Π½ΠΎΠ²Π΅Π½ΠΈΠΈ ΡΠ»Π΅ΠΊΡΡΠΎΠΏΠΈΡΠ°Π½ΠΈΡ. ΠΡΠ»ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Ρ ΡΠ°Π½ΠΈΡΡΡ Π² ΡΠ½Π΅ΡΠ³ΠΎΠ·Π°Π²ΠΈΡΠΈΠΌΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ, ΡΠΎ ΠΏΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°Π½ΠΎΠ²ΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠΎΠ²Π°ΡΡ Π΅Ρ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²ΡΡΡΠΎΠ΅Π½ ΠΈ Π² ΡΠ°ΠΌΡ FPGA. ΠΠ»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²ΠΎΠΉ ΠΠΠΠ‘ FPGA ΡΠ²Π»ΡΡΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡΠ΅ ΡΠΈΡΡΠΎΠ²ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΈΠ³Π½Π°Π»ΠΎΠ². FPGA ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΡΠ°ΠΊΠΆΠ΅, ΠΊΠ°ΠΊ ΡΡΠΊΠΎΡΠΈΡΠ΅Π»ΠΈ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠ² Π² ΡΡΠΏΠ΅ΡΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°Ρ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ: Cray β XD1, SGI β ΠΡΠΎΠ΅ΠΊΡ RASC).
FPGA. Π Π°Π·Π±ΠΈΡΠ°Π΅ΠΌΡΡ, ΠΊΠ°ΠΊ ΡΡΡΡΠΎΠ΅Π½Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ΅ΠΌΡΠ΅ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΡ Π΅ΠΌΡ ΠΈ ΡΠ΅ΠΌ ΠΎΠ½ΠΈ Ρ ΠΎΡΠΎΡΠΈ
Π‘ΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ ΡΡΠ°ΡΡΠΈ
ΠΠΎΠΆΠ΅Ρ Π±ΡΡΡ, ΡΡ ΡΠΌΠ΅Π΅ΡΡ Π²Π·Π»Π°ΠΌΡΠ²Π°ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π° Π½Π° Π΄ΡΡΠ³ΠΎΠΌ ΠΊΠΎΠ½ΡΠ΅ ΡΠ²Π΅ΡΠ° ΠΈΠ»ΠΈ ΠΊΠΎΠ΄ΠΈΡΡ ΠΊΡΡΡΡΠ΅ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΡΡ Π»ΠΈ ΡΡ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠ²ΠΎΠΉ ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ? Π ΡΠ΅ΡΡ Π½Π΅ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½ΠΊΠ°, ΠΊΠ°ΠΊ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΡΠ΅Ρ garbage collector Π² Java ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ ΡΡΡΡΠΎΠ΅Π½ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ C++. Π― Π³ΠΎΠ²ΠΎΡΡ ΠΎ ΡΠ°ΠΌΠΎΠΌ Π½ΠΈΠ·ΠΊΠΎΠΌ, Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎΠΌ ΡΡΠΎΠ²Π½Π΅, Π½ΠΈΠΆΠ΅ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ°: ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΆΠ΅Π»Π΅Π·ΠΎ.
Π§ΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π² ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΠ΅ ΡΠ΅ΡΠ΅Π²ΠΎΠΉ ΠΊΠ°ΡΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡ ΠΏΠ°ΠΊΠ΅Ρ Ethernet? ΠΠ°ΠΊ ΡΡΠΎΡ ΠΏΠ°ΠΊΠ΅Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ Π΄Π°Π»ΡΡΠ΅ Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΡΡ ΠΏΠ°ΠΌΡΡΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ° ΡΠ΅ΡΠ΅Π· ΡΠΈΠ½Ρ PCI Express? ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠ°ΠΌΡΠ΅ Π±ΡΡΡΡΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Π½Π° Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎΠΌ ΡΡΠΎΠ²Π½Π΅?
ΠΠ»Ρ ΠΎΡΠ²Π΅ΡΠ° Π½Π° ΡΡΠΈ Π²ΠΎΠΏΡΠΎΡΡ Π½Π°Π΄ΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°Π·Π±ΠΈΡΠ°ΡΡΡΡ Π² ΡΠΈΡΡΠΎΠ²ΠΎΠΉ Π»ΠΎΠ³ΠΈΠΊΠ΅ ΡΠ°Π±ΠΎΡΡ ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌ ASIC, Π½ΠΎ Π½Π°ΡΠΈΠ½Π°ΡΡ Ρ Π½ΠΈΡ ΠΎΡΠ΅Π½Ρ ΡΠ»ΠΎΠΆΠ½ΠΎ ΠΈ Π΄ΠΎΡΠΎΠ³ΠΎ, ΠΈ Π²ΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ Π»ΡΡΡΠ΅ Π½Π°ΡΠ°ΡΡ Ρ FPGA.
FPGA ΡΠ°ΡΡΠΈΡΡΠΎΠ²ΡΠ²Π°Π΅ΡΡΡ ΠΊΠ°ΠΊ field-programmable gate array, ΠΏΠΎ-ΡΡΡΡΠΊΠΈ β ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ΅ΠΌΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ Π²Π΅Π½ΡΠΈΠ»ΡΠ½ΡΠ΅ ΠΌΠ°ΡΡΠΈΡΡ, ΠΠΠΠ. Π Π±ΠΎΠ»Π΅Π΅ ΠΎΠ±ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΎΠ½ΠΈ Π½Π°Π·ΡΠ²Π°ΡΡΡΡ ΠΠΠΠ‘ β ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ΅ΠΌΡΠ΅ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΈΠ½ΡΠ΅Π³ΡΠ°Π»ΡΠ½ΡΠ΅ ΡΡ Π΅ΠΌΡ.
Π‘ ΠΏΠΎΠΌΠΎΡΡΡ FPGA ΠΌΠΎΠΆΠ½ΠΎ Π² Π±ΡΠΊΠ²Π°Π»ΡΠ½ΠΎΠΌ ΡΠΌΡΡΠ»Π΅ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΈΡΡΠΎΠ²ΡΠ΅ ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΡ, ΡΠΈΠ΄Ρ Ρ ΡΠ΅Π±Ρ Π΄ΠΎΠΌΠ° Ρ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠΉ ΠΎΡΠ»Π°Π΄ΠΎΡΠ½ΠΎΠΉ ΠΏΠ»Π°ΡΠΎΠΉ Π½Π° ΡΡΠΎΠ»Π΅ ΠΈ ΡΠΎΡΡΠΎΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° Π·Π° ΠΏΠ°ΡΡ ΠΊΠΈΠ»ΠΎΠ±Π°ΠΊΡΠΎΠ². ΠΠΏΡΠΎΡΠ΅ΠΌ, Π΅ΡΡΡ ΠΈ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΡ. ΠΠ°ΠΌΠ΅ΡΡ: ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ, Π° Π½Π΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°ΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π½Π° Π²ΡΡ ΠΎΠ΄Π΅ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠΈΡΡΠΎΠ²Π°Ρ ΡΡ Π΅ΠΌΠ°, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠ°Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌ Π½Π° Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎΠΌ ΡΡΠΎΠ²Π½Π΅, Π° Π½Π΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π΄Π»Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°.
Π Π°Π±ΠΎΡΠ°Π΅Ρ ΡΡΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊ. ΠΡΡΡ Π³ΠΎΡΠΎΠ²Π°Ρ ΠΏΠ΅ΡΠ°ΡΠ½Π°Ρ ΠΏΠ»Π°ΡΠ° Ρ Π½Π°Π±ΠΎΡΠΎΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Ρ ΠΊ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠΉ Π½Π° ΠΏΠ»Π°ΡΠ΅ ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΠ΅ FPGA, Π²ΡΠΎΠ΄Π΅ ΠΊΡΡΡΠΎΠΉ ΠΏΠ»Π°ΡΡ Π΄Π»Ρ Π΄Π°ΡΠ°-ΡΠ΅Π½ΡΡΠ° ΠΈΠ»ΠΈ ΠΎΡΠ»Π°Π΄ΠΎΡΠ½ΠΎΠΉ ΠΏΠ»Π°ΡΡ Π΄Π»Ρ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ.
ΠΠΎΠΊΠ° ΠΌΡ Π½Π΅ ΡΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΡΠ΅ΠΌ FPGA, Π²Π½ΡΡΡΠΈ ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΡ ΠΏΡΠΎΡΡΠΎ Π½Π΅Ρ Π»ΠΎΠ³ΠΈΠΊΠΈ Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π΄Π°Π½Π½ΡΡ Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ², ΠΈ ΠΏΠΎΡΠΎΠΌΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½ΠΈΡΠ΅Π³ΠΎ, ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, Π½Π΅ Π±ΡΠ΄Π΅Ρ. ΠΠΎ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ·Π΄Π°Π½Π° ΠΏΡΠΎΡΠΈΠ²ΠΊΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΡΠ»Π΅ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π² FPGA ΡΠΎΠ·Π΄Π°ΡΡ Π½ΡΠΆΠ½ΡΡ Π½Π°ΠΌ ΡΠΈΡΡΠΎΠ²ΡΡ ΡΡ Π΅ΠΌΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ 100G Ethernet, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΠΈ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΡΠ΅ΡΠ΅Π²ΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΡ.
ΠΠ°ΠΆΠ½Π°Ρ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡ FPGA β Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ΅ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ. Π‘Π΅Π³ΠΎΠ΄Π½Ρ Π½Π°ΠΌ Π½ΡΠΆΠ΅Π½ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ 100G Ethernet, Π° Π·Π°Π²ΡΡΠ° ΡΡΠ° ΠΆΠ΅ ΠΏΠ»Π°ΡΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π° Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΡ ΡΠ΅ΡΡΡΠ΅Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² 25G Ethernet.
Π‘ΡΡΠ΅ΡΡΠ²ΡΡΡ Π΄Π²Π° ΠΊΡΡΠΏΠ½ΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ FPGA-ΡΠΈΠΏΠΎΠ²: Xilinx ΠΈ Intel, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΡΡΡ 58 ΠΈ 42% ΡΡΠ½ΠΊΠ° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ. ΠΡΠ½ΠΎΠ²Π°ΡΠ΅Π»ΠΈ Xilinx ΠΈΠ·ΠΎΠ±ΡΠ΅Π»ΠΈ ΠΏΠ΅ΡΠ²ΡΠΉ ΡΠΈΠΏ FPGA Π² Π΄Π°Π»Π΅ΠΊΠΎΠΌ 1985 Π³ΠΎΠ΄Ρ. Intel ΠΏΡΠΈΡΠ»Π° Π½Π° ΡΡΠ½ΠΎΠΊ Π½Π΅Π΄Π°Π²Π½ΠΎ β Π² 2015 Π³ΠΎΠ΄Ρ, ΠΏΠΎΠ³Π»ΠΎΡΠΈΠ² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ Altera, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ»Π° ΠΎΡΠ½ΠΎΠ²Π°Π½Π° Π² ΡΠΎ ΠΆΠ΅ Π²ΡΠ΅ΠΌΡ, ΡΡΠΎ ΠΈ Xilinx. Π’Π΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Xilinx ΠΈ Altera Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΌ ΡΡ ΠΎΠΆΠΈ, ΠΊΠ°ΠΊ ΠΈ ΡΡΠ΅Π΄Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ. Π§Π°ΡΠ΅ Ρ ΡΠ°Π±ΠΎΡΠ°Π» Ρ ΠΏΡΠΎΠ΄ΡΠΊΡΠ°ΠΌΠΈ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Xilinx, ΠΏΠΎΡΡΠΎΠΌΡ Π½Π΅ ΡΠ΄ΠΈΠ²Π»ΡΠΉΡΡ Π΅Π΅ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎΠΌΡ ΡΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΡ.
FPGA ΡΠΈΡΠΎΠΊΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ Π² ΡΠ°Π·Π½ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°Ρ : ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠΉ ΡΠ»Π΅ΠΊΡΡΠΎΠ½ΠΈΠΊΠ΅, ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΠΈ ΡΠ΅Π»Π΅ΠΊΠΎΠΌΠ°, ΠΏΠ»Π°ΡΠ°Ρ -ΡΡΠΊΠΎΡΠΈΡΠ΅Π»ΡΡ Π΄Π»Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² Π΄Π°ΡΠ°-ΡΠ΅Π½ΡΡΠ°Ρ , ΡΠ°Π·Π»ΠΈΡΠ½ΠΎΠΉ ΡΠΎΠ±ΠΎΡΠΎΡΠ΅Ρ Π½ΠΈΠΊΠ΅, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΈ ΠΏΡΠΎΡΠΎΡΠΈΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌ ASIC. ΠΠ°ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² Ρ ΡΠ°Π·Π±Π΅ΡΡ ΡΡΡΡ Π½ΠΈΠΆΠ΅.
Π’Π°ΠΊΠΆΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΡ ΡΠ΅ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ, ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΠΌΡΡ Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎΠ³ΠΎ ΡΡΠ΅ΡΡΠΈΠΊΠ° Π½Π° ΡΠ·ΡΠΊΠ΅ Verilog. ΠΡΠ»ΠΈ Ρ ΡΠ΅Π±Ρ Π΅ΡΡΡ Π»ΡΠ±Π°Ρ ΠΎΡΠ»Π°Π΄ΠΎΡΠ½Π°Ρ ΠΏΠ»Π°ΡΠ° FPGA, ΡΡ ΡΠΌΠΎΠΆΠ΅ΡΡ ΠΏΠΎΠ²ΡΠΎΡΠΈΡΡ ΡΡΠΎ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ. ΠΡΠ»ΠΈ ΠΏΠ»Π°ΡΡ Π½Π΅Ρ, ΡΠΎ Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ ΡΠΌΠΎΠΆΠ΅ΡΡ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡΡ Ρ Verilog, ΡΠΌΠΎΠ΄Π΅Π»ΠΈΡΠΎΠ²Π°Π² ΡΠ°Π±ΠΎΡΡ ΡΡ Π΅ΠΌΡ Π½Π° ΡΠ²ΠΎΠ΅ΠΌ ΠΊΠΎΠΌΠΏΠ΅.
ΠΡΠΈΠ½ΡΠΈΠΏ ΡΠ°Π±ΠΎΡΡ
ΠΠΈΠΊΡΠΎΡΡ Π΅ΠΌΠ° FPGA β ΡΡΠΎ ΡΠ° ΠΆΠ΅ Π·Π°ΠΊΠ°Π·Π½Π°Ρ ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΠ° ASIC, ΡΠΎΡΡΠΎΡΡΠ°Ρ ΠΈΠ· ΡΠ°ΠΊΠΈΡ ΠΆΠ΅ ΡΡΠ°Π½Π·ΠΈΡΡΠΎΡΠΎΠ², ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΡΠΎΠ±ΠΈΡΠ°ΡΡΡΡ ΡΡΠΈΠ³Π³Π΅ΡΡ, ΡΠ΅Π³ΠΈΡΡΡΡ, ΠΌΡΠ»ΡΡΠΈΠΏΠ»Π΅ΠΊΡΠΎΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π΄Π»Ρ ΠΎΠ±ΡΡΠ½ΡΡ ΡΡ Π΅ΠΌ. ΠΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΡΡΠΈΡ ΡΡΠ°Π½Π·ΠΈΡΡΠΎΡΠΎΠ², ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, Π½Π΅Π»ΡΠ·Ρ. ΠΠΎ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ½ΠΎ ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΠ° ΠΏΠΎΡΡΡΠΎΠ΅Π½Π° ΡΠ°ΠΊΠΈΠΌ Ρ ΠΈΡΡΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΠΊΠΎΠΌΠΌΡΡΠ°ΡΠΈΡ ΡΠΈΠ³Π½Π°Π»ΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρ Π±ΠΎΠ»Π΅Π΅ ΠΊΡΡΠΏΠ½ΡΠΌΠΈ Π±Π»ΠΎΠΊΠ°ΠΌΠΈ: ΠΈΡ Π½Π°Π·ΡΠ²Π°ΡΡ CLB β ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ΅ΠΌΡΠ΅ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π±Π»ΠΎΠΊΠΈ.
Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΡΡ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ CLB. ΠΠΎΡΡΠΈΠ³Π°Π΅ΡΡΡ ΡΡΠΎ Π·Π° ΡΡΠ΅Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π²ΡΡ ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΠ° ΠΏΡΠΎΠ½ΠΈΠ·Π°Π½Π° ΡΡΠ΅ΠΉΠΊΠ°ΠΌΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ Static RAM. ΠΠ°ΠΆΠ΄ΡΠΉ Π±ΠΈΡ ΡΡΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ Π»ΠΈΠ±ΠΎ ΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΠΊΠ°ΠΊΠΈΠΌ-ΡΠΎ ΠΊΠ»ΡΡΠΎΠΌ ΠΊΠΎΠΌΠΌΡΡΠ°ΡΠΈΠΈ ΡΠΈΠ³Π½Π°Π»ΠΎΠ², Π»ΠΈΠ±ΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΡΡΡΡ ΡΠ°Π±Π»ΠΈΡΡ ΠΈΡΡΠΈΠ½Π½ΠΎΡΡΠΈ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ CLB.
Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΠΏΠ°ΠΌΡΡΡ ΠΏΠΎΡΡΡΠΎΠ΅Π½Π° ΠΏΠΎ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Static RAM, ΡΠΎ, Π²ΠΎ-ΠΏΠ΅ΡΠ²ΡΡ , ΠΏΡΠΈ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ ΠΏΠΈΡΠ°Π½ΠΈΡ FPGA ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΡ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π½Π°Π΄ΠΎ ΡΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠΎΠ²Π°ΡΡ, Π° Π²ΠΎ-Π²ΡΠΎΡΡΡ , ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ°Π·.
ΠΡΠ΅Π½Ρ ΡΠΏΡΠΎΡΠ΅Π½Π½Π°Ρ 2D-ΡΡΡΡΠΊΡΡΡΠ° ΠΌΠΈΠΊΡΠΎΡΡ
Π΅ΠΌΡ Π±Π΅Π· ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ
Xakep #236. FPGA
ΠΠ»ΠΎΠΊΠΈ CLB Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π² ΠΊΠΎΠΌΠΌΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΠΌΠ°ΡΡΠΈΡΠ΅, ΠΊΠΎΡΠΎΡΠ°Ρ Π·Π°Π΄Π°Π΅Ρ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Π²Ρ ΠΎΠ΄ΠΎΠ² ΠΈ Π²ΡΡ ΠΎΠ΄ΠΎΠ² Π±Π»ΠΎΠΊΠΎΠ² CLB.
Π‘Ρ
Π΅ΠΌΠ° ΠΊΠΎΠΌΠΌΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΠΌΠ°ΡΡΠΈΡΡ
ΠΠ° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΏΠ΅ΡΠ΅ΡΠ΅ΡΠ΅Π½ΠΈΠΈ ΠΏΡΠΎΠ²ΠΎΠ΄Π½ΠΈΠΊΠΎΠ² Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ ΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΡΠΈΡ ΠΊΠ»ΡΡΠ΅ΠΉ, ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΡΡ ΡΠ²ΠΎΠΈΠΌΠΈ ΡΡΠ΅ΠΉΠΊΠ°ΠΌΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ. ΠΡΠΊΡΡΠ²Π°Ρ ΠΎΠ΄Π½ΠΈ ΠΈ Π·Π°ΠΊΡΡΠ²Π°Ρ Π΄ΡΡΠ³ΠΈΠ΅, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ ΡΠ°Π·Π½ΡΡ ΠΊΠΎΠΌΠΌΡΡΠ°ΡΠΈΡ ΡΠΈΠ³Π½Π°Π»ΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρ CLB.
CLB ΠΎΡΠ΅Π½Ρ ΡΠΏΡΠΎΡΠ΅Π½Π½ΠΎ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Π±Π»ΠΎΠΊΠ°, Π·Π°Π΄Π°ΡΡΠ΅Π³ΠΎ Π±ΡΠ»Π΅Π²Ρ ΡΡΠ½ΠΊΡΠΈΡ ΠΎΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² (ΠΎΠ½Π° Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΠ°Π±Π»ΠΈΡΠ΅ΠΉ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΡ β Look Up Table, LUT) ΠΈ ΡΡΠΈΠ³Π³Π΅ΡΠ° (flip-flop, FF). Π ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ FPGA LUT ΠΈΠΌΠ΅Π΅Ρ ΡΠ΅ΡΡΡ Π²Ρ ΠΎΠ΄ΠΎΠ², Π½ΠΎ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ Π΄Π»Ρ ΠΏΡΠΎΡΡΠΎΡΡ ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ ΡΡΠΈ. ΠΡΡ ΠΎΠ΄ LUT ΠΏΠΎΠ΄Π°Π΅ΡΡΡ Π½Π° Π²ΡΡ ΠΎΠ΄ CLB Π»ΠΈΠ±ΠΎ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎ (Π½Π°ΠΏΡΡΠΌΡΡ), Π»ΠΈΠ±ΠΎ ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎ (ΡΠ΅ΡΠ΅Π· ΡΡΠΈΠ³Π³Π΅Ρ FF, ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠΉ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠΉ ΡΠ°ΠΊΡΠΎΠ²ΠΎΠΉ ΡΠ°ΡΡΠΎΡΠ΅).
ΠΡΠΈΠ½ΡΠΈΠΏ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ LUT
ΠΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π½Π° ΠΏΡΠΈΠ½ΡΠΈΠΏ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ LUT. ΠΡΡΡΡ Ρ Π½Π°Ρ Π΅ΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ»Π΅Π²Π° ΡΡΠ½ΠΊΡΠΈΡ y = (a & b) |
ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· ΡΡΠ΅Π΅ΠΊ ΠΏΠΎΠ΄Π°Π΅ΡΡΡ Π½Π° ΡΠ²ΠΎΠΉ Π²Ρ ΠΎΠ΄ Π²ΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΌΡΠ»ΡΡΠΈΠΏΠ»Π΅ΠΊΡΠΎΡΠ° LUT, Π° Π²Ρ ΠΎΠ΄Π½ΡΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ Π±ΡΠ»Π΅Π²ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ Π²ΡΠ±ΠΎΡΠ° ΡΠΎΠ³ΠΎ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ. CLB β Π²Π°ΠΆΠ½Π΅ΠΉΡΠΈΠΉ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΠΉ ΡΠ΅ΡΡΡΡ FPGA. ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ CLB Π² ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΊΡΠΈΡΡΠ°Π»Π»Π°Ρ FPGA ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ°Π·Π½ΡΠΌ ΠΈ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΠΈΠΏΠ° ΠΈ Π΅ΠΌΠΊΠΎΡΡΠΈ ΠΊΡΠΈΡΡΠ°Π»Π»Π°. Π£ Xilinx Π΅ΡΡΡ ΠΊΡΠΈΡΡΠ°Π»Π»Ρ Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ CLB Π² ΠΏΡΠ΅Π΄Π΅Π»Π°Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΠΎΡ ΡΠ΅ΡΡΡΠ΅Ρ ΡΡΡΡΡ Π΄ΠΎ ΡΡΠ΅Ρ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ΠΎΠ².
ΠΠΎΠΌΠΈΠΌΠΎ CLB, Π²Π½ΡΡΡΠΈ FPGA Π΅ΡΡΡ Π΅ΡΠ΅ ΡΡΠ΄ Π²Π°ΠΆΠ½ΡΡ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΡ ΡΠ΅ΡΡΡΡΠΎΠ². ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΠ΅ Π±Π»ΠΎΠΊΠΈ ΡΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΡ Ρ Π½Π°ΠΊΠΎΠΏΠ»Π΅Π½ΠΈΠ΅ΠΌ ΠΈΠ»ΠΈ Π±Π»ΠΎΠΊΠΈ DSP. ΠΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· Π½ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π΄Π΅Π»Π°ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΡ 18-Π±ΠΈΡΠ½ΡΡ ΡΠΈΡΠ΅Π» ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°ΠΊΡ. Π ΡΠΎΠΏΠΎΠ²ΡΡ ΠΊΡΠΈΡΡΠ°Π»Π»Π°Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π±Π»ΠΎΠΊΠΎΠ² DSP ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠ΅Π²ΡΡΠ°ΡΡ 6000.
ΠΡΡΠ³ΠΎΠΉ ΡΠ΅ΡΡΡΡ β ΡΡΠΎ Π±Π»ΠΎΠΊΠΈ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΠΏΠ°ΠΌΡΡΠΈ (Block RAM, BRAM). ΠΠ°ΠΆΠ΄ΡΠΉ Π±Π»ΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ Ρ ΡΠ°Π½ΠΈΡΡ 2 ΠΠ±Π°ΠΉΡ. ΠΠΎΠ»Π½Π°Ρ Π΅ΠΌΠΊΠΎΡΡΡ ΡΠ°ΠΊΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΊΡΠΈΡΡΠ°Π»Π»Π° ΠΌΠΎΠΆΠ΅Ρ Π΄ΠΎΡΡΠΈΠ³Π°ΡΡ ΠΎΡ 20 ΠΠ±Π°ΠΉΡ Π΄ΠΎ 20 ΠΠ±Π°ΠΉΡ. ΠΠ°ΠΊ ΠΈ CLB, BRAM ΠΈ DSP-Π±Π»ΠΎΠΊΠΈ ΡΠ²ΡΠ·Π°Π½Ρ ΠΊΠΎΠΌΠΌΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΠΌΠ°ΡΡΠΈΡΠ΅ΠΉ ΠΈ ΠΏΡΠΎΠ½ΠΈΠ·ΡΠ²Π°ΡΡ Π²Π΅ΡΡ ΠΊΡΠΈΡΡΠ°Π»Π». Π‘Π²ΡΠ·ΡΠ²Π°Ρ Π±Π»ΠΎΠΊΠΈ CLB, DSP ΠΈ BRAM, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π²Π΅ΡΡΠΌΠ° ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠ΅ ΡΡ Π΅ΠΌΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π΄Π°Π½Π½ΡΡ .
ΠΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° FPGA
ΠΠ΅ΡΠ²ΡΠΉ ΡΠΈΠΏ FPGA, ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ Xilinx Π² 1985 Π³ΠΎΠ΄Ρ, ΡΠΎΠ΄Π΅ΡΠΆΠ°Π» Π²ΡΠ΅Π³ΠΎ 64 CLB. Π ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ ΡΡΠ°Π½Π·ΠΈΡΡΠΎΡΠΎΠ² Π½Π° ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΠ°Ρ Π±ΡΠ»Π° Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π½ΠΈΠΆΠ΅, ΡΠ΅ΠΌ ΡΠ΅ΠΉΡΠ°Ρ, ΠΈ Π² ΡΠΈΡΡΠΎΠ²ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°Ρ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈΡΡ ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΡ Β«ΡΠ°ΡΡΡΠΏΠ½ΠΎΠΉ Π»ΠΎΠ³ΠΈΠΊΠΈΒ». ΠΡΠ»ΠΈ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΡ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ², ΡΡΠ΅ΡΡΠΈΠΊΠΎΠ², ΠΌΡΠ»ΡΡΠΈΠΏΠ»Π΅ΠΊΡΠΎΡΠΎΠ², ΡΠΌΠ½ΠΎΠΆΠΈΡΠ΅Π»Π΅ΠΉ. ΠΠΎΠ΄ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Π»Π°ΡΡ ΡΠ²ΠΎΡ ΠΏΠ΅ΡΠ°ΡΠ½Π°Ρ ΠΏΠ»Π°ΡΠ°, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π»ΠΈΡΡ ΡΡΠΈ ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΡ Π½ΠΈΠ·ΠΊΠΎΠΉ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ FPGA ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ ΠΎΡΠΊΠ°Π·Π°ΡΡΡΡ ΠΎΡ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π°. ΠΠ°ΠΆΠ΅ FPGA Π½Π° 64 CLB Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ ΠΌΠ΅ΡΡΠΎ Π½Π° ΠΏΠ΅ΡΠ°ΡΠ½ΠΎΠΉ ΠΏΠ»Π°ΡΠ΅, Π° Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΡ ΡΠ΅ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠ»Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ ΡΡΡΡΠΎΠΉΡΡΠ² ΡΠΆΠ΅ ΠΏΠΎΡΠ»Π΅ ΠΈΠ·Π³ΠΎΡΠΎΠ²Π»Π΅Π½ΠΈΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠΊΡΠΏΠ»ΡΠ°ΡΠ°ΡΠΈΠΈ, ΠΊΠ°ΠΊ Π³ΠΎΠ²ΠΎΡΡΡ Β«in the fieldΒ» (ΠΎΡΡΡΠ΄Π° ΠΈ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ β field-programmable gate array).
ΠΠ° ΡΡΠ΅Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π²Π½ΡΡΡΠΈ FPGA ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ Π»ΡΠ±ΡΡ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΡ ΡΠΈΡΡΠΎΠ²ΡΡ ΡΡ Π΅ΠΌΡ (Π³Π»Π°Π²Π½ΠΎΠ΅, ΡΡΠΎΠ±Ρ Ρ Π²Π°ΡΠΈΠ»ΠΎ ΡΠ΅ΡΡΡΡΠΎΠ²), ΠΎΠ΄Π½ΠΎ ΠΈΠ· Π²Π°ΠΆΠ½ΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΠΠΠ‘ β ΡΡΠΎ ΠΏΡΠΎΡΠΎΡΠΈΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌ ASIC.
Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ASIC ΠΎΡΠ΅Π½Ρ ΡΠ»ΠΎΠΆΠ½Π° ΠΈ Π·Π°ΡΡΠ°ΡΠ½Π°, ΡΠ΅Π½Π° ΠΎΡΠΈΠ±ΠΊΠΈ ΠΎΡΠ΅Π½Ρ Π²ΡΡΠΎΠΊΠ°, ΠΈ Π²ΠΎΠΏΡΠΎΡ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π»ΠΎΠ³ΠΈΠΊΠΈ ΠΊΡΠΈΡΠΈΡΠ΅Π½. ΠΠΎΡΡΠΎΠΌΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡΡΠ°ΠΏΠΎΠ² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π΅ΡΠ΅ Π΄ΠΎ Π½Π°ΡΠ°Π»Π° ΡΠ°Π±ΠΎΡΡ Π½Π°Π΄ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΎΠΏΠΎΠ»ΠΎΠ³ΠΈΠ΅ΠΉ ΡΡ Π΅ΠΌΡ ΡΡΠ°Π»ΠΎ Π΅Π΅ ΠΏΡΠΎΡΠΎΡΠΈΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΊΡΠΈΡΡΠ°Π»Π»Π°Ρ FPGA.
ΠΠ»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ASIC Π²ΡΠΏΡΡΠΊΠ°ΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΠΏΠ»Π°ΡΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ FPGA, ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½Π½ΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΎΠ±ΠΎΠΉ. ΠΡΠΎΡΠΎΡΠΈΠΏ ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π° Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΌΠ΅Π½ΡΡΠΈΡ ΡΠ°ΡΡΠΎΡΠ°Ρ (ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ, Π΄Π΅ΡΡΡΠΊΠΈ ΠΌΠ΅Π³Π°Π³Π΅ΡΡ), Π½ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡΡ Π½Π° Π²ΡΡΠ²Π»Π΅Π½ΠΈΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΠΈ Π±Π°Π³ΠΎΠ².
ΠΠ΄Π½Π°ΠΊΠΎ, Π½Π° ΠΌΠΎΠΉ Π²Π·Π³Π»ΡΠ΄, ΡΡΡΠ΅ΡΡΠ²ΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠ΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΠΠΠ‘. ΠΠΈΠ±ΠΊΠ°Ρ ΡΡΡΡΠΊΡΡΡΠ° FPGA ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²ΡΠ²Π°ΡΡ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΠ΅ ΡΡ Π΅ΠΌΡ Π΄Π»Ρ Π²ΡΡΠΎΠΊΠΎΡΠΊΠΎΡΠΎΡΡΠ½ΠΎΠΉ ΠΈ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π΄Π°Π½Π½ΡΡ Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌ.
Π‘ΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΡ
ΠΏΠ»Π°ΡΡΠΎΡΠΌ
ΠΠ°Π²Π°ΠΉ ΠΏΠΎΠ΄ΡΠΌΠ°Π΅ΠΌ, ΡΠ΅ΠΌ ΠΏΡΠΈΠ½ΡΠΈΠΏΠΈΠ°Π»ΡΠ½ΠΎ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ CPU, GPU, FPGA ΠΈ ASIC. CPU ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»Π΅Π½, Π½Π° Π½Π΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ Π»ΡΠ±ΠΎΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌ, ΠΎΠ½ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΎΠΊ, ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π»Π΅Π³ΡΠ΅ Π²ΡΠ΅Π³ΠΎ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΎΠ³ΡΠΎΠΌΠ½ΠΎΠΌΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Ρ ΡΠ·ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΡΠ΅Π΄ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ.
ΠΡΠΈ ΡΡΠΎΠΌ ΠΈΠ·-Π·Π° ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΠΎΡΡΠΈ ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ CPU ΡΠ½ΠΈΠΆΠ°Π΅ΡΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΈ ΠΏΠΎΠ²ΡΡΠ°Π΅ΡΡΡ ΡΠ½Π΅ΡΠ³ΠΎΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠ΅ ΡΡ Π΅ΠΌΡ. ΠΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΡΡΠΎ ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ Π½Π° ΠΊΠ°ΠΆΠ΄ΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΡΡ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΡΠ΅ΡΠΊΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ CPU ΡΠΎΠ²Π΅ΡΡΠ°Π΅Ρ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ, ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ, ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ Π΄Π°Π½Π½ΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ΅Π³ΠΈΡΡΡΠ°ΠΌΠΈ ΠΈ ΠΊΠ΅ΡΠ΅ΠΌ, ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ΅Π»ΠΎΠ΄Π²ΠΈΠΆΠ΅Π½ΠΈΡ.
ΠΠ° Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Π΅ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ ASIC. ΠΠ° ΡΡΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅ ΡΡΠ΅Π±ΡΠ΅ΠΌΡΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΡΡΡ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎ Π·Π° ΡΡΠ΅Ρ ΠΏΡΡΠΌΠΎΠ³ΠΎ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΡΡΠ°Π½Π·ΠΈΡΡΠΎΡΠΎΠ², Π²ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΠ²ΡΠ·Π°Π½Ρ ΡΠΎΠ»ΡΠΊΠΎ Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΠΈ Π½Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π΅Π³ΠΎ. ΠΡΡΡΠ΄Π° ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½Π°Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΈ Π½Π°ΠΈΠΌΠ΅Π½ΡΡΠ΅Π΅ ΡΠ½Π΅ΡΠ³ΠΎΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠ΅ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ. Π Π²ΠΎΡ ΠΏΠ΅ΡΠ΅ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°ΡΡ ASIC Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.
Π‘ΠΏΡΠ°Π²Π° ΠΎΡ CPU Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ GPU. ΠΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ ΡΡΠΈ ΠΌΠΈΠΊΡΠΎΡΡ
Π΅ΠΌΡ Π±ΡΠ»ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Ρ Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π³ΡΠ°ΡΠΈΠΊΠΈ, Π½ΠΎ ΡΠ΅ΠΉΡΠ°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΈ Π΄Π»Ρ ΠΌΠ°ΠΉΠ½ΠΈΠ½Π³Π° Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ ΠΎΠ±ΡΠ΅Π³ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ. ΠΠ½ΠΈ ΡΠΎΡΡΠΎΡΡ ΠΈΠ· ΡΡΡΡΡ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΡ
Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΡΡ
ΡΠ΄Π΅Ρ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π½Π°Π΄ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠΌ Π΄Π°Π½Π½ΡΡ
.
ΠΡΠ»ΠΈ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΡΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΡΡ, ΡΠΎ Π½Π° GPU ΠΏΠΎΠ»ΡΡΠΈΡΡΡ Π΄ΠΎΠ±ΠΈΡΡΡΡ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΡΠΊΠΎΡΠ΅Π½ΠΈΡ ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ CPU. Π‘ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ Π±ΡΠ΄ΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²ΡΠ²Π°ΡΡΡΡ Ρ ΡΠΆΠ΅, ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° ΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΌΠ΅Π½Π΅Π΅ Π³ΠΈΠ±ΠΊΠΎΠΉ, ΡΠ΅ΠΌ CPU. Π’Π°ΠΊΠΆΠ΅ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΠΎΠ΄ GPU Π½Π°Π΄ΠΎ ΠΈΠΌΠ΅ΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ Π½Π°Π²ΡΠΊΠΈ, Π·Π½Π°ΡΡ OpenCL ΠΈΠ»ΠΈ CUDA.
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, FPGA. ΠΡΠ° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° ΡΠΎΡΠ΅ΡΠ°Π΅Ρ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ ASIC Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ ΠΌΠ΅Π½ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΠΠΠ‘ Π½Π΅ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½Ρ, Π½ΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΊΠ»Π°ΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ² ΠΈ Π·Π°Π΄Π°Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π° Π½ΠΈΡ Π±ΡΠ΄ΡΡ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ Π»ΡΡΡΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ, ΡΠ΅ΠΌ Π½Π° CPU ΠΈ Π΄Π°ΠΆΠ΅ GPU. Π‘Π»ΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΠΎΠ΄ FPGA Π²ΡΡΠ΅, ΠΎΠ΄Π½Π°ΠΊΠΎ Π½ΠΎΠ²ΡΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π΄Π΅Π»Π°ΡΡ ΡΡΠΎΡ ΡΠ°Π·ΡΡΠ² ΠΌΠ΅Π½ΡΡΠ΅.
Π Π΅ΡΠ°ΡΡΠ΅Π΅ ΠΆΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ FPGA β ΡΡΠΎ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅ Π² ΡΠ΅ΠΌΠΏΠ΅ ΠΈΡ ΠΏΠΎΡΡΡΠΏΠ»Π΅Π½ΠΈΡ Ρ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΉ Π·Π°Π΄Π΅ΡΠΆΠΊΠΎΠΉ ΡΠ΅Π°ΠΊΡΠΈΠΈ. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΠΌΠΎΠΆΠ΅ΡΡ Π²ΠΎΠΎΠ±ΡΠ°Π·ΠΈΡΡ ΡΠΌΠ½ΡΠΉ ΡΠ΅ΡΠ΅Π²ΠΎΠΉ ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΎΡ Ρ Π±ΠΎΠ»ΡΡΠΈΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ ΠΏΠΎΡΡΠΎΠ²: ΠΏΡΠΈ ΠΏΠΎΡΡΡΠΏΠ»Π΅Π½ΠΈΠΈ ΠΏΠ°ΠΊΠ΅ΡΠ° Ethernet Π½Π° ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π΅Π³ΠΎ ΠΏΠΎΡΡΠΎΠ² Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΏΡΠ°Π²ΠΈΠ», ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ Π²ΡΠ±ΡΠ°ΡΡ Π²ΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠΎΡΡ. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΏΠΎΠ»Π΅ΠΉ ΠΏΠ°ΠΊΠ΅ΡΠ° ΠΈΠ»ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΡΡ .
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ FPGA ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ΅ΡΠ°ΡΡ ΡΡΡ Π·Π°Π΄Π°ΡΡ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ: Π±Π°ΠΉΡΡ ΠΏΠ°ΠΊΠ΅ΡΠ° Π΅ΡΠ΅ ΡΠΎΠ»ΡΠΊΠΎ Π½Π°ΡΠ°Π»ΠΈ ΠΏΠΎΡΡΡΠΏΠ°ΡΡ Π² ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΡ ΠΈΠ· ΡΠ΅ΡΠ΅Π²ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°, Π° Π΅Π³ΠΎ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΡΠΆΠ΅ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΡΠ΅ΡΡΡ. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠ² ΡΡΡ ΠΌΠΎΠΆΠ΅Ρ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ Π·Π°ΠΌΠ΅Π΄Π»ΠΈΡΡ ΡΠΊΠΎΡΠΎΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠ΅ΡΠ΅Π²ΠΎΠ³ΠΎ ΡΡΠ°ΡΠΈΠΊΠ°. Π―ΡΠ½ΠΎ, ΡΡΠΎ Π΄Π»Ρ ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΎΡΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π·Π°ΠΊΠ°Π·Π½ΡΡ ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΡ ASIC, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ, Π½ΠΎ ΡΡΠΎ, Π΅ΡΠ»ΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΌΠ΅Π½ΡΡΡΡΡ? ΠΠΎΡΡΠΈΡΡ ΡΡΠ΅Π±ΡΠ΅ΠΌΠΎΠΉ Π³ΠΈΠ±ΠΊΠΎΡΡΠΈ Π² ΡΠΎΡΠ΅ΡΠ°Π½ΠΈΠΈ Ρ Π²ΡΡΠΎΠΊΠΎΠΉ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡΡ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ»ΡΠΊΠΎ FPGA.
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, FPGA ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠ°ΠΌ, Π³Π΄Π΅ Π½ΡΠΆΠ½Π° Π²ΡΡΠΎΠΊΠ°Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π΄Π°Π½Π½ΡΡ , Π½Π°ΠΈΠΌΠ΅Π½ΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΡΠ΅Π°ΠΊΡΠΈΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ Π½ΠΈΠ·ΠΊΠΎΠ΅ ΡΠ½Π΅ΡΠ³ΠΎΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠ΅.
FPGA in the cloud
Π ΠΎΠ±Π»Π°ΡΠ½ΡΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡΡ FPGA ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ Π΄Π»Ρ Π±ΡΡΡΡΠΎΠ³ΠΎ ΡΡΠ΅ΡΠ°, ΡΡΠΊΠΎΡΠ΅Π½ΠΈΡ ΡΠ΅ΡΠ΅Π²ΠΎΠ³ΠΎ ΡΡΠ°ΡΠΈΠΊΠ° ΠΈ ΠΎΡΡΡΠ΅ΡΡΠ²Π»Π΅Π½ΠΈΡ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌ Π΄Π°Π½Π½ΡΡ . Π‘ΡΠ΄Π° ΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠ½Π΅ΡΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ FPGA Π΄Π»Ρ Π²ΡΡΠΎΠΊΠΎΡΠ°ΡΡΠΎΡΠ½ΠΎΠΉ ΡΠΎΡΠ³ΠΎΠ²Π»ΠΈ Π½Π° Π±ΠΈΡΠΆΠ°Ρ . Π ΡΠ΅ΡΠ²Π΅ΡΡ Π²ΡΡΠ°Π²Π»ΡΡΡΡΡ ΠΏΠ»Π°ΡΡ FPGA Ρ PCI Express ΠΈ ΠΎΠΏΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΡΠ΅ΡΠ΅Π²ΡΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π° Intel (Altera) ΠΈΠ»ΠΈ Xilinx.
ΠΠ° FPGA ΠΎΡΠ»ΠΈΡΠ½ΠΎ Π»ΠΎΠΆΠ°ΡΡΡ ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ, ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠ΅ΠΉ ΠΠΠ ΠΈ Π½Π°ΡΡΠ½ΡΠ΅ Π·Π°Π΄Π°ΡΠΈ Π²ΡΠΎΠ΄Π΅ ΠΌΠΎΠ»Π΅ΠΊΡΠ»ΡΡΠ½ΠΎΠΉ Π΄ΠΈΠ½Π°ΠΌΠΈΠΊΠΈ. Π Microsoft Π΄Π°Π²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ FPGA Π΄Π»Ρ ΡΡΠΊΠΎΡΠ΅Π½ΠΈΡ ΠΏΠΎΠΈΡΠΊΠΎΠ²ΠΎΠ³ΠΎ ΡΠ΅ΡΠ²ΠΈΡΠ° Bing, Π° ΡΠ°ΠΊΠΆΠ΅ Π΄Π»Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ Software Defined Networking Π²Π½ΡΡΡΠΈ ΠΎΠ±Π»Π°ΠΊΠ° Azure.
ΠΡΠΌ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ ΡΠΎΠΆΠ΅ Π½Π΅ ΠΎΠ±ΠΎΡΠ΅Π» ΡΡΠΎΡΠΎΠ½ΠΎΠΉ FPGA. ΠΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Xilinx ΠΈ Intel ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΡ ΡΡΠ΅Π΄ΡΡΠ²Π° Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ FPGA Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π³Π»ΡΠ±ΠΎΠΊΠΈΠΌΠΈ Π½Π΅ΠΉΡΠΎΡΠ΅ΡΡΠΌΠΈ. ΠΠ½ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΠΏΡΠΎΡΠΈΠ²ΠΊΠΈ FPGA, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡ ΡΡ ΠΈΠ»ΠΈ ΠΈΠ½ΡΡ ΡΠ΅ΡΡ Π½Π°ΠΏΡΡΠΌΡΡ ΠΈΠ· ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ² Π²ΡΠΎΠ΄Π΅ Caffe ΠΈ TensorFlow.
ΠΡΠΈΡΠ΅ΠΌ ΡΡΠΎ Π²ΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ, Π½Π΅ Π²ΡΡ ΠΎΠ΄Ρ ΠΈΠ· Π΄ΠΎΠΌΠ° ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΎΠ±Π»Π°ΡΠ½ΡΠ΅ ΡΠ΅ΡΠ²ΠΈΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² Amazon ΠΌΠΎΠΆΠ½ΠΎ Π°ΡΠ΅Π½Π΄ΠΎΠ²Π°ΡΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΠΌΠ°ΡΠΈΠ½Ρ Ρ Π΄ΠΎΡΡΡΠΏΠΎΠΌ ΠΊ ΠΏΠ»Π°ΡΠ΅ FPGA ΠΈ Π»ΡΠ±ΡΠΌ ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΠΈ machine learning.
FPGA on the edge
Π§ΡΠΎ Π΅ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎΠ΅ Π΄Π΅Π»Π°ΡΡ Π½Π° FPGA? ΠΠ° ΡΠ΅Π³ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π½Π΅ Π΄Π΅Π»Π°ΡΡ! Π ΠΎΠ±ΠΎΡΠΎΡΠ΅Ρ Π½ΠΈΠΊΠ°, Π±Π΅ΡΠΏΠΈΠ»ΠΎΡΠ½ΡΠ΅ Π°Π²ΡΠΎΠΌΠΎΠ±ΠΈΠ»ΠΈ, Π΄ΡΠΎΠ½Ρ, Π½Π°ΡΡΠ½ΡΠ΅ ΠΏΡΠΈΠ±ΠΎΡΡ, ΠΌΠ΅Π΄ΠΈΡΠΈΠ½ΡΠΊΠ°Ρ ΡΠ΅Ρ Π½ΠΈΠΊΠ°, ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π°, ΡΠΌΠ½ΡΠ΅ ΠΊΠ°ΠΌΠ΅ΡΡ Π²ΠΈΠ΄Π΅ΠΎΠ½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΡ ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅.
Π’ΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΠΎ FPGA ΠΏΡΠΈΠΌΠ΅Π½ΡΠ»ΠΈΡΡ Π΄Π»Ρ ΡΠΈΡΡΠΎΠ²ΠΎΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΎΠ΄Π½ΠΎΠΌΠ΅ΡΠ½ΡΡ ΡΠΈΠ³Π½Π°Π»ΠΎΠ² (ΠΈ ΠΊΠΎΠ½ΠΊΡΡΠΈΡΠΎΠ²Π°Π»ΠΈ Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°ΠΌΠΈ DSP) Π² ΡΡΡΡΠΎΠΉΡΡΠ²Π°Ρ ΡΠ°Π΄ΠΈΠΎΠ»ΠΎΠΊΠ°ΡΠΈΠΈ, ΠΏΡΠΈΠ΅ΠΌΠΎΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΠΈΠΊΠ°Ρ ΡΠ°Π΄ΠΈΠΎΡΠΈΠ³Π½Π°Π»ΠΎΠ². Π‘ ΡΠΎΡΡΠΎΠΌ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌ ΠΈ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ FPGA ΡΡΠ°Π»ΠΈ Π²ΡΠ΅ Π±ΠΎΠ»ΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ Π΄Π»Ρ Π²ΡΡΠΎΠΊΠΎΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΡΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π΄Π²ΡΠΌΠ΅ΡΠ½ΡΡ ΡΠΈΠ³Π½Π°Π»ΠΎΠ² Β«Π½Π° ΠΊΡΠ°Ρ ΠΎΠ±Π»Π°ΠΊΠ°Β» (edge computing).
ΠΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ Π»Π΅Π³ΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΏΠΎΠ½ΡΡΡ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π²ΠΈΠ΄Π΅ΠΎΠΊΠ°ΠΌΠ΅ΡΡ Π΄Π»Ρ Π°Π½Π°Π»ΠΈΠ·Π° Π°Π²ΡΠΎΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΠΎΠ³ΠΎ ΡΡΠ°ΡΠΈΠΊΠ° Ρ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΡ Π½ΠΎΠΌΠ΅ΡΠΎΠ² ΠΌΠ°ΡΠΈΠ½. ΠΠΎΠΆΠ½ΠΎ Π²Π·ΡΡΡ ΠΊΠ°ΠΌΠ΅ΡΡ Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π²ΠΈΠ΄Π΅ΠΎ ΡΠ΅ΡΠ΅Π· Ethernet ΠΈ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΏΠΎΡΠΎΠΊ Π½Π° ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅. Π‘ ΡΠΎΡΡΠΎΠΌ ΡΠΈΡΠ»Π° ΠΊΠ°ΠΌΠ΅Ρ Π±ΡΠ΄Π΅Ρ ΡΠ°ΡΡΠΈ ΠΈ Π½Π°Π³ΡΡΠ·ΠΊΠ° Π½Π° ΡΠ΅ΡΡ, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΡΠ±ΠΎΡΠΌ ΡΠΈΡΡΠ΅ΠΌΡ.
ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ Π»ΡΡΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΠ΅ Π½ΠΎΠΌΠ΅ΡΠΎΠ² Π½Π° Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»Π΅, ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠΌ ΠΏΡΡΠΌΠΎ Π² ΠΊΠΎΡΠΏΡΡ Π²ΠΈΠ΄Π΅ΠΎΠΊΠ°ΠΌΠ΅ΡΡ, ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ Π² ΠΎΠ±Π»Π°ΠΊΠΎ Π½ΠΎΠΌΠ΅ΡΠ° ΠΌΠ°ΡΠΈΠ½ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ ΡΠ΅ΠΊΡΡΠ°. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π΄Π°ΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π²Π·ΡΡΡ ΡΡΠ°Π²Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½Π΅Π΄ΠΎΡΠΎΠ³ΠΈΠ΅ FPGA Ρ Π½ΠΈΠ·ΠΊΠΈΠΌ ΡΠ½Π΅ΡΠ³ΠΎΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠ΅ΠΌ, ΡΡΠΎΠ±Ρ ΠΎΠ±ΠΎΠΉΡΠΈΡΡ Π°ΠΊΠΊΡΠΌΡΠ»ΡΡΠΎΡΠΎΠΌ. ΠΡΠΈ ΡΡΠΎΠΌ ΠΎΡΡΠ°Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ Π»ΠΎΠ³ΠΈΠΊΡ ΡΠ°Π±ΠΎΡΡ FPGA, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠ° Π°Π²ΡΠΎΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ Π½ΠΎΠΌΠ΅ΡΠΎΠ².
Π§ΡΠΎ Π΄ΠΎ ΡΠΎΠ±ΠΎΡΠΎΡΠ΅Ρ Π½ΠΈΠΊΠΈ ΠΈ Π΄ΡΠΎΠ½ΠΎΠ², ΡΠΎ Π² ΡΡΠΎΠΉ ΡΡΠ΅ΡΠ΅ ΠΊΠ°ΠΊ ΡΠ°Π· ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π²Π°ΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π΄Π²Π° ΡΡΠ»ΠΎΠ²ΠΈΡ β Π²ΡΡΠΎΠΊΠ°Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΈ Π½ΠΈΠ·ΠΊΠΎΠ΅ ΡΠ½Π΅ΡΠ³ΠΎΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠ΅. ΠΠ»Π°ΡΡΠΎΡΠΌΠ° FPGA ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ ΠΊΠ°ΠΊ Π½Π΅Π»ΡΠ·Ρ Π»ΡΡΡΠ΅ ΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ, Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠΎΠ»Π΅ΡΠ½ΡΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠ² Π΄Π»Ρ Π±Π΅ΡΠΏΠΈΠ»ΠΎΡΠ½ΠΈΠΊΠΎΠ². Π£ΠΆΠ΅ ΡΠ΅ΠΉΡΠ°Ρ Π΄Π΅Π»Π°ΡΡ ΠΠΠΠ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π½Π° Π»Π΅ΡΡ.
ΠΠ°ΠΊ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΏΡΠΎΠ΅ΠΊΡ Π½Π° FPGA?
Π‘ΡΡΠ΅ΡΡΠ²ΡΡΡ ΡΠ°Π·Π½ΡΠ΅ ΡΡΠΎΠ²Π½ΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ: Π½ΠΈΠ·ΠΊΠΈΠΉ, Π±Π»ΠΎΡΠ½ΡΠΉ ΠΈ Π²ΡΡΠΎΠΊΠΈΠΉ. ΠΠΈΠ·ΠΊΠΈΠΉ ΡΡΠΎΠ²Π΅Π½Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ·ΡΠΊΠΎΠ² ΡΠΈΠΏΠ° Verilog ΠΈΠ»ΠΈ VHDL, Π½Π° ΠΊΠΎΡΠΎΡΡΡ ΡΡ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΎΠΉ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ²ΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°Ρ (RTL β register transfer level). Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡ ΡΠΎΡΠΌΠΈΡΡΠ΅ΡΡ ΡΠ΅Π³ΠΈΡΡΡΡ, ΠΊΠ°ΠΊ Π² ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ΅, ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΈΠ·ΠΌΠ΅Π½ΡΡΡΠΈΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ Π½ΠΈΠΌΠΈ.
Π‘Ρ Π΅ΠΌΡ FPGA Π²ΡΠ΅Π³Π΄Π° ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΡΠ°ΠΊΡΠΎΠ²ΡΡ ΡΠ°ΡΡΠΎΡΠ°Ρ (ΠΎΠ±ΡΡΠ½ΠΎ 100β300 ΠΠΡ), ΠΈ Π½Π° ΡΡΠΎΠ²Π½Π΅ RTL ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΡ Π΅ΠΌΡ Ρ ΡΠΎΡΠ½ΠΎΡΡΡΡ Π΄ΠΎ ΡΠ°ΠΊΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠΉ ΡΠ°ΡΡΠΎΡΡ. ΠΡΠ° ΠΊΡΠΎΠΏΠΎΡΠ»ΠΈΠ²Π°Ρ ΡΠ°Π±ΠΎΡΠ° ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΡ ΡΡ Π΅ΠΌ Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ, ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΡ ΡΠ΅ΡΡΡΡΠΎΠ² ΠΊΡΠΈΡΡΠ°Π»Π»Π° FPGA ΠΈ ΡΠ½Π΅ΡΠ³ΠΎΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΡ. ΠΠΎ ΡΡΡ ΡΡΠ΅Π±ΡΡΡΡΡ ΡΠ΅ΡΡΠ΅Π·Π½ΡΠ΅ ΡΠΊΠΈΠ»Π»Ρ Π² ΡΡ Π΅ΠΌΠΎΡΠ΅Ρ Π½ΠΈΠΊΠ΅, Π΄Π° ΠΈ Ρ Π½ΠΈΠΌΠΈ ΠΏΡΠΎΡΠ΅ΡΡ Π½Π΅Π±ΡΡΡΡΡΠΉ.
ΠΠ° Π±Π»ΠΎΡΠ½ΠΎΠΌ ΡΡΠΎΠ²Π½Π΅ ΡΡ Π·Π°Π½ΠΈΠΌΠ°Π΅ΡΡΡΡ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ΠΌ ΡΠΆΠ΅ Π³ΠΎΡΠΎΠ²ΡΡ ΠΊΡΡΠΏΠ½ΡΡ Π±Π»ΠΎΠΊΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π½ΡΠΆΠ½ΠΎΠΉ ΡΠ΅Π±Π΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ ΡΠΈΡΡΠ΅ΠΌΡ Π½Π° ΠΊΡΠΈΡΡΠ°Π»Π»Π΅ (system-on-chip).
ΠΠ° Π²ΡΡΠΎΠΊΠΎΠΌ ΡΡΠΎΠ²Π½Π΅ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΡ ΡΠΆΠ΅ Π½Π΅ Π±ΡΠ΄Π΅ΡΡ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠΎΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΠ°ΠΊΡΠ΅, Π²ΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ ΡΠΊΠΎΠ½ΡΠ΅Π½ΡΡΠΈΡΡΠ΅ΡΡΡΡ Π½Π° Π°Π»Π³ΠΎΡΠΈΡΠΌΠ΅. Π‘ΡΡΠ΅ΡΡΠ²ΡΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ ΠΈΠ»ΠΈ ΡΡΠ°Π½ΡΠ»ΡΡΠΎΡΡ Ρ ΡΠ·ΡΠΊΠΎΠ² C ΠΈ C++ Π½Π° ΡΡΠΎΠ²Π΅Π½Ρ RTL, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Vivado HLS. ΠΠ½ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠΌΠ½ΡΠΉ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΡΠ°Π½ΡΠ»ΠΈΡΠΎΠ²Π°ΡΡ Π½Π° Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΠΉ ΡΡΠΎΠ²Π΅Π½Ρ ΡΠΈΡΠΎΠΊΠΈΠΉ ΠΊΠ»Π°ΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ².
ΠΠ»Π°Π²Π½ΠΎΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π° ΠΏΠ΅ΡΠ΅Π΄ ΡΠ·ΡΠΊΠ°ΠΌΠΈ RTL β ΡΡΠΊΠΎΡΠ΅Π½ΠΈΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ°: ΠΊΠΎΠ΄ Π½Π° C++ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΈ Π²Π΅ΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ Π½Π° ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅, ΠΈ ΡΡΠΎ Π±ΡΠ΄Π΅Ρ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π±ΡΡΡΡΠ΅Π΅, ΡΠ΅ΠΌ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° Π½Π° ΡΡΠΎΠ²Π½Π΅ RTL. ΠΠ° ΡΠ΄ΠΎΠ±ΡΡΠ²ΠΎ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, ΠΏΡΠΈΠ΄Π΅ΡΡΡ Π·Π°ΠΏΠ»Π°ΡΠΈΡΡ β ΡΡ Π΅ΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡΡΡ Π½Π΅ ΡΠ°ΠΊΠΎΠΉ Π±ΡΡΡΡΠΎΠΉ ΠΈ Π·Π°ΠΉΠΌΠ΅Ρ Π±ΠΎΠ»ΡΡΠ΅ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΡ ΡΠ΅ΡΡΡΡΠΎΠ².
Π§Π°ΡΡΠΎ ΠΌΡ Π³ΠΎΡΠΎΠ²Ρ ΠΏΠ»Π°ΡΠΈΡΡ ΡΡΡ ΡΠ΅Π½Ρ: Π΅ΡΠ»ΠΈ Π³ΡΠ°ΠΌΠΎΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ°Π½ΡΠ»ΡΡΠΎΡ, ΡΠΎ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ Π½Π΅ ΡΠΈΠ»ΡΠ½ΠΎ ΠΏΠΎΡΡΡΠ°Π΄Π°Π΅Ρ, Π° ΡΠ΅ΡΡΡΡΠΎΠ² Π² ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ FPGA Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ. Π Π½Π°ΡΠ΅ΠΌ ΠΌΠΈΡΠ΅ Ρ ΠΊΡΠΈΡΠΈΡΠ½ΡΠΌ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΌ time to market ΡΡΠΎ ΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΎΠΏΡΠ°Π²Π΄Π°Π½Π½ΡΠΌ.
Π§Π°ΡΡΠΎ Π² ΠΎΠ΄Π½ΠΎΠΌ Π΄ΠΈΠ·Π°ΠΉΠ½Π΅ Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΡΡ Π²ΡΠ΅ ΡΡΠΈ ΡΡΠΈΠ»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ. ΠΠΎΠΏΡΡΡΠΈΠΌ, Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΡ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ Π²ΡΡΡΠΎΠΈΡΡ Π² ΡΠΎΠ±ΠΎΡΠ° ΠΈ Π½Π°Π΄Π΅Π»ΠΈΡΡ Π΅Π³ΠΎ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡΡ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ Π² Π²ΠΈΠ΄Π΅ΠΎΠΏΠΎΡΠΎΠΊΠ΅ β Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄ΠΎΡΠΎΠΆΠ½ΡΠ΅ Π·Π½Π°ΠΊΠΈ. ΠΠΎΠ·ΡΠΌΠ΅ΠΌ ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΡ Π²ΠΈΠ΄Π΅ΠΎΡΠ΅Π½ΡΠΎΡΠ° ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΠΌ Π΅Π΅ Π½Π°ΠΏΡΡΠΌΡΡ ΠΊ FPGA. ΠΠ»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠΎΠ½ΠΈΡΠΎΡ HDMI, ΡΠΎΠΆΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Π½ΡΠΉ ΠΊ FPGA.
ΠΠ°Π΄ΡΡ Ρ ΠΊΠ°ΠΌΠ΅ΡΡ Π±ΡΠ΄ΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡΡΡ Π² FPGA ΠΏΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°Π²Π΅Π΄ΠΎΠΌΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π΅ΠΌ ΡΠ΅Π½ΡΠΎΡΠ° (USB ΡΡΡ Π½Π΅ ΠΊΠ°ΡΠΈΡ), ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ ΠΈ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡΡ Π½Π° ΠΌΠΎΠ½ΠΈΡΠΎΡ. ΠΠ»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΊΠ°Π΄ΡΠΎΠ² ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ ΡΡΠ΅ΠΉΠΌΠ±ΡΡΠ΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ±ΡΡΠ½ΠΎ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π²ΠΎ Π²Π½Π΅ΡΠ½Π΅ΠΉ ΠΏΠ°ΠΌΡΡΠΈ DDR, ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠΉ Π½Π° ΠΏΠ΅ΡΠ°ΡΠ½ΠΎΠΉ ΠΏΠ»Π°ΡΠ΅ ΡΡΠ΄ΠΎΠΌ Ρ ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΠΎΠΉ FPGA.
Π’ΠΈΠΏΠΈΡΠ½Π°Ρ Π±Π»ΠΎΠΊ-ΡΡ
Π΅ΠΌΠ° ΠΏΡΠΎΠ΅ΠΊΡΠ° FPGA
ΠΡΠ»ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ Π²ΠΈΠ΄Π΅ΠΎΡΠ΅Π½ΡΠΎΡΠ° Π½Π΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Interface IP Π΄Π»Ρ Π½Π°ΡΠ΅ΠΉ ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΡ FPGA, ΡΠΎ Π½Π°ΠΌ ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΠΏΠΈΡΠ°ΡΡ Π΅Π³ΠΎ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ Π½Π° ΡΠ·ΡΠΊΠ΅ RTL, ΡΡΠΈΡΠ°Ρ ΡΠ°ΠΊΡΡ, Π±ΠΈΡΡ ΠΈ Π±Π°ΠΉΡΡ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ ΡΠΎ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠ΅ΠΉ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ . ΠΠ»ΠΎΠΊΠΈ Preprocess, DDR Controller ΠΈ HDMI IP ΠΌΡ, ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ, Π²ΠΎΠ·ΡΠΌΠ΅ΠΌ Π³ΠΎΡΠΎΠ²ΡΠ΅ ΠΈ ΠΏΡΠΎΡΡΠΎ ΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΠΌ ΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ. Π Π±Π»ΠΎΠΊ HLS, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΏΠΎΠΈΡΠΊ ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΠΏΠΎΡΡΡΠΏΠ°ΡΡΠΈΡ Π΄Π°Π½Π½ΡΡ , ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°ΠΏΠΈΡΠ°ΡΡ Π½Π° C++ ΠΈ ΡΡΠ°Π½ΡΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ Vivado HLS.
Π‘ΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ, Π½Π°ΠΌ Π΅ΡΠ΅ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊΠ°Ρ-ΡΠΎ Π³ΠΎΡΠΎΠ²Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π΄Π΅ΡΠ΅ΠΊΡΠΎΡΠ° ΠΈ ΠΊΠ»Π°ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° Π΄ΠΎΡΠΎΠΆΠ½ΡΡ Π·Π½Π°ΠΊΠΎΠ², Π°Π΄Π°ΠΏΡΠΈΡΠΎΠ²Π°Π½Π½Π°Ρ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² FPGA. Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Ρ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, ΠΏΡΠΈΠ²ΠΎΠΆΡ ΡΠΈΠ»ΡΠ½ΠΎ ΡΠΏΡΠΎΡΠ΅Π½Π½ΡΡ Π±Π»ΠΎΠΊ-ΡΡ Π΅ΠΌΡ Π΄ΠΈΠ·Π°ΠΉΠ½Π°, Π½ΠΎ Π»ΠΎΠ³ΠΈΠΊΡ ΡΠ°Π±ΠΎΡΡ ΠΎΠ½Π° ΠΎΡΡΠ°ΠΆΠ°Π΅Ρ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ.
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΎΡ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΊΠΎΠ΄Π° RTL Π΄ΠΎ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° Π΄Π»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π² FPGA.
ΠΡΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ
ΠΡΠ°ΠΊ, ΡΡ ΠΏΠΈΡΠ΅ΡΡ ΠΊΠΎΠ΄ RTL, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ Π½ΡΠΆΠ½ΡΡ ΡΠ΅Π±Π΅ ΡΡ Π΅ΠΌΡ. ΠΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ Π΅Π³ΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ Π½Π° ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ ΠΆΠ΅Π»Π΅Π·Π΅, Π½Π°Π΄ΠΎ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, ΡΡΠΎ ΠΎΠ½ Π²Π΅ΡΠ½ΡΠΉ ΠΈ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ ΡΠ΅ΡΠ°Π΅Ρ ΡΡΠ΅Π±ΡΠ΅ΠΌΡΡ Π·Π°Π΄Π°ΡΡ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ RTL-ΠΌΠΎΠ΄Π΅Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π² ΡΠΈΠΌΡΠ»ΡΡΠΎΡΠ΅ Π½Π° ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅.
Π’Ρ Π±Π΅ΡΠ΅ΡΡ ΡΠ²ΠΎΡ ΡΡ Π΅ΠΌΡ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΡΡ ΠΏΠΎΠΊΠ° ΡΠΎΠ»ΡΠΊΠΎ Π² ΠΊΠΎΠ΄Π΅ RTL, ΠΈ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΡΡ Π΅Π΅ Π½Π° Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΉ ΡΡΠ΅Π½Π΄, Π³Π΄Π΅ ΠΏΠΎΠ΄Π°Π΅ΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΡΠΈΡΡΠΎΠ²ΡΡ ΡΠΈΠ³Π½Π°Π»ΠΎΠ² Π½Π° Π²Ρ ΠΎΠ΄Ρ ΡΡ Π΅ΠΌΡ, ΡΠ΅Π³ΠΈΡΡΡΠΈΡΡΠ΅ΡΡ Π²ΡΡ ΠΎΠ΄Π½ΡΠ΅ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ, Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΡΡ ΠΎΠ΄Π½ΡΡ ΡΠΈΠ³Π½Π°Π»ΠΎΠ² ΠΈ ΡΡΠ°Π²Π½ΠΈΠ²Π°Π΅ΡΡ Ρ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΡΠΌΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°ΠΌΠΈ. ΠΠ±ΡΡΠ½ΠΎ ΡΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡΡ ΠΊ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ RTL.
ΠΠ°Π»Π΅Π΅ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈ Π²Π΅ΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΏΠΎΠ΄Π°Π΅ΡΡΡ Π½Π° Π²Ρ ΠΎΠ΄ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅-ΡΠΈΠ½ΡΠ΅Π·Π°ΡΠΎΡΡ. ΠΠ½Π° ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅Ρ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΡ Π΅ΠΌΡ Π² ΡΠ²ΡΠ·Π°Π½Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ ΡΠΈΡΡΠΎΠ²ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠΉ Π΄Π»Ρ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΡΠΈΡΡΠ°Π»Π»Π° FPGA. Π ΡΡΠΎΠΌ ΡΠΏΠΈΡΠΊΠ΅ Π±ΡΠ΄ΡΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½Ρ ΡΠ°ΠΊΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ, ΠΊΠ°ΠΊ LUT, ΡΡΠΈΠ³Π³Π΅ΡΡ, ΠΈ ΡΠ²ΡΠ·ΠΈ ΠΌΠ΅ΠΆΠ΄Ρ Π½ΠΈΠΌΠΈ. ΠΠ° ΡΡΠΎΠΉ ΡΡΠ°Π΄ΠΈΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΏΠΎΠΊΠ° Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ ΠΏΡΠΈΠ²ΡΠ·Π°Π½Ρ ΠΊ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΌ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΠΌ ΡΠ΅ΡΡΡΡΠ°ΠΌ. Π§ΡΠΎΠ±Ρ ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ, ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π½Π°Π»ΠΎΠΆΠΈΡΡ Π½Π° ΡΡ Π΅ΠΌΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ (Constraints) β Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, ΡΠΊΠ°Π·Π°ΡΡ, Ρ ΠΊΠ°ΠΊΠΈΠΌΠΈ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΠΊΠΎΠ½ΡΠ°ΠΊΡΠ°ΠΌΠΈ Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π° ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΡ FPGA ΡΠ²ΡΠ·Π°Π½Ρ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π²Ρ ΠΎΠ΄Ρ ΠΈ Π²ΡΡ ΠΎΠ΄Ρ ΡΠ²ΠΎΠ΅ΠΉ ΡΡ Π΅ΠΌΡ.
Π ΡΡΠΈΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡΡ ΡΠ°ΠΊΠΆΠ΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠΊΠ°Π·Π°ΡΡ, Π½Π° ΠΊΠ°ΠΊΠΈΡ ΡΠ°ΠΊΡΠΎΠ²ΡΡ ΡΠ°ΡΡΠΎΡΠ°Ρ Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΡ Π΅ΠΌΠ°. ΠΡΡ ΠΎΠ΄ ΡΠΈΠ½ΡΠ΅Π·Π°ΡΠΎΡΠ° ΠΈ ΡΠ°ΠΉΠ» ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ ΠΎΡΠ΄Π°ΡΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΡ Implementation, ΠΊΠΎΡΠΎΡΡΠΉ, ΠΏΠΎΠΌΠΈΠΌΠΎ ΠΏΡΠΎΡΠ΅Π³ΠΎ, Π·Π°Π½ΠΈΠΌΠ°Π΅ΡΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΈ ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠΎΠΉ (Place and Route).
ΠΡΠΎΡΠ΅ΡΡ Place ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΏΠΎΠΊΠ° Π΅ΡΠ΅ ΠΎΠ±Π΅Π·Π»ΠΈΡΠ΅Π½Π½ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΈΠ· netlist ΠΏΡΠΈΠ²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΊ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΌΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π²Π½ΡΡΡΠΈ ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΡ FPGA. ΠΠ°Π»Π΅Π΅ Π½Π°ΡΠΈΠ½Π°Π΅Ρ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΡΠ΅ΡΡ Route, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΡΠ°Π΅ΡΡΡ Π½Π°ΠΉΡΠΈ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΡΡΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π΄Π»Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΠΊΠΎΠΌΠΌΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΠΌΠ°ΡΡΠΈΡΡ ΠΠΠΠ‘.
Place ΠΈ Route Π΄Π΅ΠΉΡΡΠ²ΡΡΡ, ΠΈΡΡ ΠΎΠ΄Ρ ΠΈΠ· ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ, Π½Π°Π»ΠΎΠΆΠ΅Π½Π½ΡΡ Π½Π°ΠΌΠΈ Π½Π° ΡΡ Π΅ΠΌΡ: ΠΊΠΎΠ½ΡΠ°ΠΊΡΠ°ΠΌΠΈ Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π° ΠΈ ΡΠ°ΠΊΡΠΎΠ²ΠΎΠΉ ΡΠ°ΡΡΠΎΡΠΎΠΉ. ΠΠ΅ΡΠΈΠΎΠ΄ ΡΠ°ΠΊΡΠΎΠ²ΠΎΠΉ ΡΠ°ΡΡΠΎΡΡ ΠΎΡΠ΅Π½Ρ ΡΠΈΠ»ΡΠ½ΠΎ Π²Π»ΠΈΡΠ΅Ρ Π½Π° Implementation: ΠΎΠ½ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΌΠ΅Π½ΡΡΠ΅, ΡΠ΅ΠΌ Π²ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Π·Π°Π΄Π΅ΡΠΆΠΊΠ° Π½Π° Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°Ρ Π² ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠ΅ΠΏΠΈ ΠΌΠ΅ΠΆΠ΄Ρ Π΄Π²ΡΠΌΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΠΌΠΈ ΡΡΠΈΠ³Π³Π΅ΡΠ°ΠΌΠΈ.
Π§Π°ΡΡΠΎ ΡΡΠ°Π·Ρ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΠΈΡΡ ΡΡΠΎ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π΅ ΡΠ΄Π°Π΅ΡΡΡ, ΠΈ ΡΠΎΠ³Π΄Π° Π½Π°Π΄ΠΎ Π²Π΅ΡΠ½ΡΡΡΡΡ Π½Π° Π½Π°ΡΠ°Π»ΡΠ½ΡΠΉ ΡΡΠ°ΠΏ ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΊΠΎΠ΄ RTL: Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΠΏΡΡΠ°ΡΡΡΡ ΡΠΎΠΊΡΠ°ΡΠΈΡΡ Π»ΠΎΠ³ΠΈΠΊΡ Π² ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠ΅ΠΏΠΈ. ΠΠΎΡΠ»Π΅ ΡΡΠΏΠ΅ΡΠ½ΠΎΠ³ΠΎ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ Implementation Π½Π°ΠΌ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ, ΠΊΠ°ΠΊΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π³Π΄Π΅ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ ΠΈ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΡΠ²ΡΠ·Π°Π½Ρ.
Π’ΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π±ΠΈΠ½Π°ΡΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° ΠΏΡΠΎΡΠΈΠ²ΠΊΠΈ FPGA. ΠΡΡΠ°Π΅ΡΡΡ Π΅Π³ΠΎ Π·Π°Π³ΡΡΠ·ΠΈΡΡ Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΠ΅ ΠΆΠ΅Π»Π΅Π·ΠΎ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ, ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π»ΠΈ ΠΎΠ½ΠΎ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ ΠΎΠΆΠΈΠ΄Π°Π»ΠΎΡΡ. ΠΡΠ»ΠΈ Π½Π° ΡΡΠΎΠΌ ΡΡΠ°ΠΏΠ΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, Π·Π½Π°ΡΠΈΡ, ΠΌΠΎΠ΄Π΅Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π±ΡΠ»ΠΎ Π½Π΅ΠΏΠΎΠ»Π½ΡΠΌ ΠΈ Π½Π° ΡΡΠΎΠΌ ΡΡΠ°ΠΏΠ΅ Π½Π΅ Π±ΡΠ»ΠΈ ΡΡΡΡΠ°Π½Π΅Π½Ρ Π²ΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΈ Π½Π΅Π΄ΠΎΡΠ΅ΡΡ.
ΠΠΎΠΆΠ½ΠΎ Π²Π΅ΡΠ½ΡΡΡΡΡ Π½Π° ΡΡΠ°Π΄ΠΈΡ ΡΠΈΠΌΡΠ»ΡΡΠΈΠΈ ΠΈ ΡΠΌΠΎΠ΄Π΅Π»ΠΈΡΠΎΠ²Π°ΡΡ Π½Π΅ΡΡΠ°ΡΠ½ΡΡ ΡΠΈΡΡΠ°ΡΠΈΡ, Π° Π΅ΡΠ»ΠΈ ΠΈ ΡΡΠΎ Π½Π΅ ΡΡΠ°Π±ΠΎΡΠ°Π΅Ρ, Π½Π° ΠΊΡΠ°ΠΉΠ½ΠΈΠΉ ΡΠ»ΡΡΠ°ΠΉ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΠΎΡΠ»Π°Π΄ΠΊΠΈ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π² ΡΠ°Π±ΠΎΡΠ°ΡΡΠ΅ΠΌ ΠΆΠ΅Π»Π΅Π·Π΅. Π’Ρ ΠΌΠΎΠΆΠ΅ΡΡ ΡΠΊΠ°Π·Π°ΡΡ, ΠΊΠ°ΠΊΠΈΠ΅ ΡΠΈΠ³Π½Π°Π»Ρ Ρ ΠΎΡΠ΅ΡΡ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΠΈ ΡΡΠ΅Π΄Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠ³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΡ Π΅ΠΌΡ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ°Π·ΠΌΠ΅ΡΠ°Π΅ΡΡΡ Π½Π° ΠΊΡΠΈΡΡΠ°Π»Π»Π΅ ΡΡΠ΄ΠΎΠΌ Ρ ΡΠ²ΠΎΠ΅ΠΉ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌΠΎΠΉ ΡΡ Π΅ΠΌΠΎΠΉ, ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ ΠΊ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΡΡΠΈΠΌ ΡΠ΅Π±Ρ ΡΠΈΠ³Π½Π°Π»Π°ΠΌ ΠΈ ΡΠΎΡ ΡΠ°Π½ΡΠ΅Ρ ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π²ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. Π‘ΠΎΡ ΡΠ°Π½Π΅Π½Π½ΡΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ Π½ΡΠΆΠ½ΡΡ ΡΠΈΠ³Π½Π°Π»ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ³ΡΡΠ·ΠΈΡΡ Π½Π° ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ ΠΈ ΠΏΡΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ.
Π‘ΡΡΠ΅ΡΡΠ²ΡΡΡ ΠΈ Π²ΡΡΠΎΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ (HLS, High-level synthesis), ΠΈ Π΄Π°ΠΆΠ΅ Π³ΠΎΡΠΎΠ²ΡΠ΅ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΈ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½Π΅ΠΉΡΠΎΡΠ΅ΡΠ΅ΠΉ Π² ΠΠΠΠ‘. ΠΡΠΈ ΡΡΠ΅Π΄ΡΡΠ²Π° Π½Π° Π²ΡΡ ΠΎΠ΄Π΅ Π³Π΅Π½Π΅ΡΡΡ ΠΊΠΎΠ΄ RTL Π½Π° ΡΠ·ΡΠΊΠ°Ρ VHDL ΠΈΠ»ΠΈ Verilog, ΠΊΠΎΡΠΎΡΡΠΉ Π΄Π°Π»ΡΡΠ΅ ΡΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΠΏΠΎ ΡΠ΅ΠΏΠΎΡΠΊΠ΅ Synthesis β Implementation β Bitstream generation. ΠΠΌΠΈ Π²ΠΏΠΎΠ»Π½Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ, Π½ΠΎ, ΡΡΠΎΠ±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ, Π½Π°Π΄ΠΎ ΠΈΠΌΠ΅ΡΡ Ρ ΠΎΡΡ Π±Ρ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎ ΡΠ·ΡΠΊΠ°Ρ ΡΡΠΎΠ²Π½Ρ RTL.
ΠΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ
ΠΠ°Π΄Π΅ΡΡΡ, ΡΠ΅ΠΎΡΠΈΡ ΡΠ΅Π±Ρ Π½Π΅ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π·Π°Π³ΡΡΠ·ΠΈΠ»Π°! Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΡΡΠ°ΡΡΠ΅ Ρ ΡΠ°ΡΡΠΊΠ°ΠΆΡ ΠΎ ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅: ΠΌΡ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ, ΡΡΠΎ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎ Π½ΡΠΆΠ½ΠΎ Π΄Π΅Π»Π°ΡΡ, ΡΡΠΎΠ±Ρ Π·Π°ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°ΡΡ FPGA.