рдХрдИ рдмрд╛рд░ рдореИрдВрдиреЗ рдЗрд╕ рд▓реЗрдЦ рдХреЛ рд▓рд┐рдЦрдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдФрд░ рдЗрд╕реЗ рдлреЗрдВрдХ рджрд┐рдпрд╛ред рдЙрдиреНрд╣реЛрдВрдиреЗ рдЗрд╕реЗ рдлреЗрдВрдХ рджрд┐рдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рд╡рд┐рд╖рдп, рдпрд╣ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ, рдХреБрдЫ рд╣рдж рддрдХ рд╡рд┐рд╡рд╛рджрд╛рд╕реНрдкрдж рд╣реИред рдореИрдВрдиреЗ рдЬреЛ рд╕рд╛рдЗрдХрд┐рд▓ рдХрд╛ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдХрд┐рдпрд╛ рд╣реИ рд╡рд╣ рдХреБрдЫ рд╣рд╛рд╕реНрдпрд╛рд╕реНрдкрдж рдФрд░ рд╣рд╛рд╕реНрдпрд╛рд╕реНрдкрдж рд▓рдЧ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЖрдо рддреМрд░ рдкрд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рд╣реА рдирд╣реАрдВ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ ...
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдпрд╣ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд▓реЗрдХреНрдЯреНрд░реЙрдирд┐рдХ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдерд╛, рдХрдИ рдЕрддрд┐рд╡реНрдпрд╛рдкреА рджреБрдирд┐рдпрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░реНрд╕ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рд╡рд┐рдХрд╛рд╕ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ FPGAs рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рд╡рд┐рдХрд╛рд╕ рд╣реЛрддрд╛ рд╣реИред рдЗрди microcircuits рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдореМрд▓рд┐рдХ рд░реВрдк рд╕реЗ рднрд┐рдиреНрди рд╣реИрдВ рдФрд░ рдЬрд┐рди рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдФрд░ рд╡рд┐рдХрд╛рд╕ рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдФрд░ рдбреАрдмрдЧрд┐рдВрдЧ рднрд╛рд╖рд╛рдПрдВ рдмрд┐рд▓реНрдХреБрд▓ рд╕рдорд╛рди рд╣реИрдВред рдмреЗрд╢рдХ, рдореМрд▓рд┐рдХ рдЖрдзрд╛рд░ рдХрд╛ рдЪреБрдирд╛рд╡ рдХрд╛рд░реНрдп рдкрд░ рдЕрддреНрдпрдзрд┐рдХ рдирд┐рд░реНрднрд░ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдпреЗ рджреБрдирд┐рдпрд╛, рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдХреА рджреБрдирд┐рдпрд╛ рдФрд░ FPGAs рдХреА рджреБрдирд┐рдпрд╛ рд╢рд╛рдпрдж рд╣реА рдУрд╡рд░рд▓реИрдк рд╣реЛрддреА рд╣реИред рд╢рд╛рдпрдж рддрдХрдиреАрдХ рдХреЗ рдЬрдВрдХреНрд╢рди рдкрд░ рдХреБрдЫ рд╣реИ?
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдореИрдВ рдЦреБрдж FPGAs рдХреЛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдпрд╣рд╛рдВ рддрдХ
рдХрд┐ FPGA рдмреНрд▓реЙрдЧ рдореЗрдВ рднреА рднрд╛рдЧ рд▓реЗрддрд╛ рд╣реВрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╣рд╛рд▓ рд╣реА рдореЗрдВ рд╣рдорд╛рд░реА рдХрдВрдкрдиреА рдиреЗ STM32 рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рдбрд┐рд╡рд╛рдЗрд╕ рдХрд╛ рд╡рд┐рдХрд╛рд╕ рдХрд┐рдпрд╛ рд╣реИред рджрд░рдЕрд╕рд▓, рдЬреЛ рдореБрдЦреНрдп рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣рдореЗрдВ рдорд┐рд▓реАрдВ, рд╡реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рддрдХрдиреАрдХреА рдирд╣реАрдВ рдереАрдВ, рдмрд▓реНрдХрд┐ рд╕рдВрдЧрдардирд╛рддреНрдордХ рдереАрдВред
рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдкрд░ рд╕рдВрдкрдиреНрди рд╕рдордЭреМрддреЗ рдХреЗ рдмрд╛рд╡рдЬреВрдж рдФрд░ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдпрд╛ рдХрдо рд╕рдордиреНрд╡рд┐рдд рддрдХрдиреАрдХреА рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛рдУрдВ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рдмрд╛рд╡рдЬреВрдж, рдРрд╕рд╛ рд╣реБрдЖ рдХрд┐ рд╣рд░ рд╣рдлреНрддреЗ рдЧреНрд░рд╛рд╣рдХ рдирдП рд╡рд┐рдЪрд╛рд░реЛрдВ, рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ, рд╡рд┐рдЪрд╛рд░реЛрдВ рдФрд░ рдЗрдЪреНрдЫрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдЖрдпрд╛ред рдмреЗрд╢рдХ, рд╣рдо рдЙрдиреНрд╣реЗрдВ рдирд░рдХ рдореЗрдВ рднреЗрдЬ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╣рдордиреЗ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдХрд┐ рд╣рдо рдзреИрд░реНрдп рд░рдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВрдЧреЗ рдФрд░ рдлрд┐рд░ рднреА рд╣рдо рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдкреВрд░рд╛ рдХрд░реЗрдВрдЧреЗред
рдореБрдЦреНрдп рд╕рдВрдЧрдардирд╛рддреНрдордХ рд╕рдорд╕реНрдпрд╛ - рдирд┐рдпрдВрддреНрд░рдХ рдирд┐рдпрдВрддреНрд░рдг рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЕрдиреБрд░реЛрдз рдереЗ рдФрд░ рд╡реЗ рдЕрдХреНрд╕рд░ рдмрд╣реБрдд рд╡рд┐рд░реЛрдзрд╛рднрд╛рд╕реА рдереЗред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЧреНрд░рд╛рд╣рдХ рдЦреБрдж рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рдерд╛ рдХрд┐ рдЙрд╕реЗ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдпрд╣ рднреА рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖрдпрд╛ рдХрд┐ рд╡рд╣ рдпрд╣ рд╕рдм рдХреИрд╕реЗ рдЬрд╛рдВрдЪреЗрдЧрд╛ред рдРрд╕рд╛ рдХрд╣рдирд╛ рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд╣реЛрдЧрд╛ред рдРрд╕реЗ рдкреНрд░рдмрдВрдзрдХ рд╣реИрдВ рдЬреЛ рдЕрдкрдиреА рдЗрдХрд╛рдИ рдореЗрдВ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдирд┐рдпрдВрддреНрд░рдХ рд░рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдирд┐рдпрдВрддреНрд░рдХ рдФрд░ рдЗрдХрд╛рдИ рдХреЗ рдкрд╛рд╕ рдХреНрдпрд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд░реНрдп рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП, рдкреНрд░рдмрдВрдзрдХреЛрдВ рдХреЛ рд╕реНрд╡рдпрдВ рдареАрдХ рд╕реЗ рдирд╣реАрдВ рдкрддрд╛ рд╣реИ рдФрд░ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдПрдХ рдПрдХрд▓ рдЗрдВрдЬреАрдирд┐рдпрд░ рджреНрд╡рд╛рд░рд╛ рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдерд╛, рдЬреЛ рдбрд┐рд╡рд╛рдЗрд╕ рдХреА рд╕рдВрдЪрд╛рд▓рди рдХреНрд╖рдорддрд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдерд╛ред рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЛ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдВрдЬреАрдирд┐рдпрд░ рдХреЗ рдкрд╛рд╕ рдЕрдкрдирд╛ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд▓реЗрдХреНрдЯреНрд░реЙрдирд┐рдХ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдХреЛрдИ рдЕрдиреБрднрд╡ рдирд╣реАрдВ рд╣реИред
рдпрд╣рд╛рдБ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИред рд╕реНрдЯреИрдВрдбрдмрд╛рдп рдореЛрдб рдореЗрдВ, рдЬрдм рдирд┐рдпрдВрддреНрд░рдХ рдмрд╕ рд╕реНрдЯрд╛рд░реНрдЯ рдмрдЯрди рдХреЛ рджрдмрд╛рдП рдЬрд╛рдиреЗ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИ, рддреЛ рд╣рдорд╛рд░реЗ рдирд┐рдпрдВрддреНрд░рдХ рдХреЛ рджрд┐рди рдореЗрдВ рдПрдХ рдмрд╛рд░ 10 рд╕реЗрдХрдВрдб рдХреЗ рд▓рд┐рдП рддрд░рд▓ рдкрдВрдк рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдкрдВрдк рдХреЛ рдЪрд╛рд▓реВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдпрд╣ рдкрдВрдк рдЧреНрд░рдВрдерд┐рдпреЛрдВ рдХреА рдЦрдЯрд╛рд╕ рдХреЗ рдЦрд┐рд▓рд╛рдл рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреА рд╕реБрд░рдХреНрд╖рд╛ рд╣реИред рдЬрдм рдореИрдВ рдкреВрдЫрддрд╛ рд╣реВрдВ; "рдЖрдк рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреА рдЬрд╛рдБрдЪ рдХреИрд╕реЗ рдХрд░реЗрдВрдЧреЗ" - рд╡реЗ рдЬрд╡рд╛рдм рджреЗрддреЗ рд╣реИрдВ рдХрд┐ "рдХреЛрдИ рд░рд╛рд╕реНрддрд╛ рдирд╣реАрдВ"ред рдирд┐рдЬреА рддреМрд░ рдкрд░, рдореИрдВ рд╕рджрдореЗ рдореЗрдВ рд╣реВрдВред рдмреЗрд╢рдХ, рд╣рдо "рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдмрд┐рдирд╛" рдХрд╛рд░реНрдпрдХреНрд░рдо рд▓рд┐рдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдкрдХреНрд╖ рдХреЛ рдХрд┐рд╕реА рддрд░рд╣ рдЬрд┐рдореНрдореЗрджрд╛рд░реА рд╕рд╛рдЭрд╛ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП, рдЙрдирдХреЗ рдкрд░реАрдХреНрд╖рдг рдХрд╛ рд╕рдВрдЪрд╛рд▓рди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЖрджрд┐ред
рдЗрд╕рдХреЗ рдмрд╛рдж, рдореИрдВ рдорд╛рдорд▓реЗ рдХреЗ рддрдХрдиреАрдХреА рдкрдХреНрд╖ рдкрд░ рдЖрдЧреЗ рдмрдврд╝реВрдВрдЧрд╛ред
рд╣рдордиреЗ рддрдп рдХрд┐рдпрд╛ рдХрд┐ рд╣рдореЗрдВ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреЗ рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдЖрдорддреМрд░ рдкрд░ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдХреА рджреБрдирд┐рдпрд╛ рдореЗрдВ рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдг рдХреА рдРрд╕реА рдЕрд╡рдзрд╛рд░рдгрд╛ рд╣реИред рдФрд░ рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдпрд╣ рддрдХрдиреАрдХ рдХреБрдЫ рд╣рдж рддрдХ рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реИред рд╡рд░реНрддрдорд╛рди рдореЗрдВ, рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░реНрд╕ рдХреЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдЕрдХреНрд╕рд░ рд╕рд╛рдорд╛рдиреНрдп рд╕реА рднрд╛рд╖рд╛ рдореЗрдВ рд▓рд┐рдЦреЗ рдЬрд╛рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдпреВрдирд┐рдЯ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд╕рд╛рде рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рд╣рд╛рд▓рд╛рдВрдХрд┐ ... рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдореЗрдВ рдпреВрдирд┐рдЯ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдм рдХреБрдЫ рдЖрд╕рд╛рдиреА рд╕реЗ рдЬрд╛рдВрдЪрд╛ рдирд╣реАрдВ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЖрдВрддрд░рд┐рдХ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдЙрдкрдХрд░рдгреЛрдВ рдЬреИрд╕реЗ рдХрд┐ рдЯрд╛рдЗрдорд░, рдбреАрдПрдордП рдЪреИрдирд▓, рд╕реАрд░рд┐рдпрд▓ рдкреЛрд░реНрдЯ, рдЗрдВрдЯрд░рдкреНрдЯ, рдФрд░ рдЗрд╕реА рддрд░рд╣ рдХреА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд╕реЗ рдЬреБрдбрд╝реА рд╣рд░ рдЪреАрдЬ - рдЗрд╕рдХреЗ рд▓рд┐рдП рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВред рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдЖрд╕реНрдЯрд╕реАрд▓рд╕реНрдХрдк рд▓реЗрдиреЗ рдХрд╛ рд╕рдордп рд╣реИ рдФрд░ рдЗрдирдкреБрдЯ рдФрд░ рдЖрдЙрдЯрдкреБрдЯ рдкрд░ рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рд╕рд┐рдЧреНрдирд▓ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреЗ рд╣реИрдВред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдпрд╣ рдорд╛рдкрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХрд┐рддрдирд╛ рд╕рдордп рд░реБрдХрд╛рд╡рдЯ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рд▓реЗрддрд╛ рд╣реИ рдПрдХ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдХрд╛рд░реНрдп рдирд╣реАрдВ рд╣реИред рдФрд░ рдпрд╣ рд╕рд╣реА рд╣реИред
рдпреВрдирд┐рдЯ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдФрд░ рдЕрддрд┐ рд╕реВрдХреНрд╖реНрдо рдЕрдВрддрд░ рд╣реИред рдпрд╣ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдХреА рдкрд╛рд░рдВрдкрд░рд┐рдХ рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдг рдбреЗрдЯрд╛-рдЙрдиреНрдореБрдЦ рд╣реИред рдЦреИрд░, рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рдЖрдорддреМрд░ рдкрд░ рдпреВрдирд┐рдЯ рдЯреЗрд╕реНрдЯ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЗрдирдкреБрдЯ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЕрдкреЗрдХреНрд╖рд┐рдд рдбреЗрдЯрд╛ рдмрдЪрд╛рддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рдЬрд╛рдВрдЪрддрд╛ рд╣реИ рдХрд┐ рд╕рдВрд╕рд╛рдзрд┐рдд рдЖрдЙрдЯрдкреБрдЯ рдбреЗрдЯрд╛ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рддрд╛ рд╣реИред рд╡рд╣ рд╕рдм рд╣реИред
рдПрдХ рдЗрд▓реЗрдХреНрдЯреНрд░реЙрдирд┐рдХ рдЙрдкрдХрд░рдг рдЬреЛ рдПрдХ рдЗрдирдкреБрдЯ рд╕рд┐рдЧреНрдирд▓ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ, "рдЯрд╛рдЗрдо рдлреНрд▓реЛ" рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдореМрд▓рд┐рдХ рд░реВрдк рд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рдЦреИрд░, рдпрд╣ рд╣реИ рдХрд┐ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдЖрдорддреМрд░ рдкрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣реИрдВ: рдПрдХ рдЖрдкрд╛рдд рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдФрд░ рдЕрд▓рд╛рд░реНрдо рд╕реЗрдВрд╕рд░
рдП рдЯреНрд░рд┐рдЧрд░ рд╣реЛ
рдЬрд╛рддрд╛ рд╣реИ,
N1 рд╕реЗрдХрдВрдб рдХреЗ рдЕрдВрддрд░рд╛рд▓ рдХреЗ рд╕рд╛рде actuators
рдмреА ,
рд╕реА рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рдмрдВрдж рдХрд░реЗрдВ, рдФрд░
рдбреА рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ
рдПрди 2 рд╕реЗрдХрдВрдб рд╕реЗ рдкрд╣рд▓реЗ рдмрдВрдж рдХрд░реЗрдВ рд▓реЗрдХрд┐рди
рдПрди 3 рд╕реЗрдХрдВрдб рд╕реЗ рдкрд╣рд▓реЗ рдирд╣реАрдВ, рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╕реЗред
рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдПрдХ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдирд┐рдпрдВрддреНрд░рдг рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордп рдмреАрддрдиреЗ рдХреЗ рд╕рдордп рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд┐рдЧреНрдирд▓ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред рдФрд░ рдРрд╕реЗ рдЙрдкрдХрд░рдг рд╢рд╕реНрддреНрд░рд╛рдЧрд╛рд░ рдореЗрдВ рд╣реИрдВ ... FPGA рд╕рд┐рд╕реНрдЯрдо рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдПред
FPGA- рдЖрдзрд╛рд░рд┐рдд рдЗрд▓реЗрдХреНрдЯреНрд░реЙрдирд┐рдХ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рдбреЗрд╡рд▓рдкрд░ рдЖрдорддреМрд░ рдкрд░ Verilog рдпрд╛ VHDL рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рд╡рд┐рд╡рд░рдг рднрд╛рд╖рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдЙрд╕реА рд╕рдордп, FPGAs рдХреЗ рд▓рд┐рдП рдХреЛрдб рдХреЗ рдЕрд▓рд╛рд╡рд╛, рддрдерд╛рдХрдерд┐рдд рдЯреЗрд╕реНрдЯрдмреЗрдВрдЪ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдпрд╣ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд╕реА рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рд▓рд┐рдП рдпреВрдирд┐рдЯ-рдЯреЗрд╕реНрдЯ рдЬреИрд╕рд╛ рдХреБрдЫ рд╣реИред
рдореИрдВ рд╡реЗрд░рд┐рд▓реЙрдЧ рдПрдЪрдбреАрдПрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред
Testbench рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдиреЗ рд╕реНрд╡рдпрдВ рд▓рд┐рдЦрд╛ рд╣реИ рдФрд░ рд╕рд╛рде рд╣реА рд╡рд╣ FPGA рдЪрд┐рдк рдкрд░ рд╕рднреА рд╕рдВрднрд╛рд╡рд┐рдд рдЗрдирдкреБрдЯ рдкреНрд░рднрд╛рд╡реЛрдВ рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реИред рдЖрдЙрдЯрдкреБрдЯ рд╕рд┐рдЧреНрдирд▓ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдЯреЗрд╕реНрдЯрдмреИрдВрдХ рджреНрд╡рд╛рд░рд╛ рд╕реНрд╡рдпрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЕрдкреЗрдХреНрд╖рд┐рдд рд▓реЛрдЧреЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЬрд╛рдВрдЪ рдХреА рдЬрд╛рддреА рд╣реИред
рдЙрд╕реА рд╕рдордп, рд╡реЗрд░рд┐рд▓реЛрдЧ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдЦреБрдж рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд╕рдордп рдмреАрддрдиреЗ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рддрд╛ рд╣реИред
рдПрдХ FPGA рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИ рдХреЗ рдПрдХ рд╕рд░рд▓ рдФрд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рд╛рд░ рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣рд╛рдВ рдПрдХ рдореЙрдбреНрдпреВрд▓ рд╣реИ рдЬреЛ рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рд░реАрд╕реЗрдЯ (рдирдореВрдирд╛.v) рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд░рд▓ рдмрд╛рдЗрдирд░реА рдХрд╛рдЙрдВрдЯрд░ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ:
module sample( input wire reset, input wire clk, output reg [3:0]cnt ); always @(posedge clk or posedge reset) if(reset) cnt <= 0; else cnt <= cnt + 1; endmodule
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рдХреЛрдб рдХреЛ рдХрд┐рд╕реА рднреА рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рджреНрд╡рд╛рд░рд╛ рд╕рдордЭрд╛ рдЬрд╛рдПрдЧрд╛, рдЬреЛ рд╡реЗрд░рд┐рд▓реЙрдЧ рдПрдЪрдбреАрдПрд▓ рднрд╛рд╖рд╛ рднреА рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рд╣реИред рджреЛ рдЗрдирдкреБрдЯ
рд░реАрд╕реЗрдЯ рдФрд░
clk рд╣реИрдВ ред рдФрд░ рдПрдХ рдЖрдЙрдЯрдкреБрдЯ рдЪрд╛рд░-рдмрд┐рдЯ рд╕рд┐рдЧреНрдирд▓ рд╣реИ [3: 0] cntред рд╣рдореЗрд╢рд╛ рдШрдбрд╝реА рд╕рдВрдХреЗрдд рдХреЗ рдХрд┐рдирд╛рд░реЗ рдкрд░, рдХрд╛рдЙрдВрдЯрд░ рдореЗрдВ рдореВрд▓реНрдп рдмрдврд╝рддрд╛ рд╣реИред рдФрд░ рд╣рдореЗрд╢рд╛, рдЬрдм рдХреЛрдИ рдЗрдХрд╛рдИ
рд░реАрд╕реЗрдЯ рдкрд░ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИ
, рддреЛ рдХрд╛рдЙрдВрдЯрд░ рд╢реВрдиреНрдп рдкрд░
рд░реАрд╕реЗрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
рдЗрд╕ рдореЙрдбреНрдпреВрд▓ рдХреЛ рд╕рдВрд╢реНрд▓реЗрд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЕрд░реНрдерд╛рдд, рдЗрд╕реЗ FPGA рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдФрд░ рд╕реАрд╡реЗ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рд╣реИред
рдЕрдм, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдЕрдкрдиреЗ рдореЙрдбреНрдпреВрд▓ рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИред рд╡рд╣ рд╡реЗрд░рд┐рд▓реЙрдЧ рдкрд░ рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рдПрдХ рдЯреЗрд╕реНрдЯрдмреЗрдВрдЪ, рдЬреЛ рдПрдХ рдорд╛рдЗрдХреНрд░реЛрдХреНрд░рд┐рдХрд┐рдЯ (testbench.v) рдХреЗ рд▓рд┐рдП рдЗрдирдкреБрдЯ рд╕рдВрдХреЗрддреЛрдВ рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░реЗрдЧрд╛:
`timescale 1ms / 1 ms module testbench(); reg tb_rst, tb_clk; wire [3:0]value; always #5 tb_clk = ~tb_clk; initial begin $dumpfile("waves.vcd"); $dumpvars(0,testbench); $display("starting testbench!!!!"); tb_rst = 1; tb_clk = 0; #10; tb_rst = 0; #73; tb_rst = 1; #11; tb_rst = 0; #134; tb_rst = 1; #57; tb_rst = 0; #200; $display("finished OK!"); $finish; end sample my_sample_inst( .reset(tb_rst), .clk(tb_clk), .cnt( value ) ); wire fail; assign fail = (tb_rst & value!=0 ); endmodule
рдЗрд╕ рдореЙрдбреНрдпреВрд▓ рдХреЛ рд╕рдВрд╢реНрд▓реЗрд╖рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕реЗ FPGA рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдФрд░ рд╕реАрд╡рди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдЕрдиреБрдХрд░рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд░реЗрдЦрд╛рдУрдВ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ
sample my_sample_inst( .reset(tb_rst), .clk(tb_clk), .cnt( value ) );
рдпрд╣ рдЯреЗрд╕реНрдЯрдмреЗрдВрдЪ рдореЗрдВ рдбрд╛рд▓реЗ рдЧрдП рдирдореВрдирд╛ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдЙрджрд╛рд╣рд░рдг рд╣реИред рдпрд╣ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдирд┐рдХрд▓рд╛:
рдпрд╣ рдмрд╣реБрдд рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╛рдирджрдВрдб рд╣реЛред
рд░реАрд╕реЗрдЯ рд╕рд┐рдЧреНрдирд▓ рдХреЗ рджреМрд░рд╛рди рд╣рдореЗрдВ рд╣рдореЗрд╢рд╛ рдХрд╛рдЙрдВрдЯрд░ рдЖрдЙрдЯрдкреБрдЯ рд╕рд┐рдЧреНрдирд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдпрд╣реА рд╣реИ, рд╣рдо testbench рдореЗрдВ рддреНрд░реБрдЯрд┐ рд╕рдВрдХреЗрдд рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
wire fail; assign fail = (tb_rst & value!=0 );
рдЗрд╕ рд╕рд┐рдЧреНрдирд▓ рдХреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдореЗрдЯрд┐рдХ рд░реВрдк рд╕реЗ рдореЙрдирд┐рдЯрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рдмрд╕ рдЖрдЙрдЯрдкреБрдЯ рдЯрд╛рдЗрдо рдЪрд╛рд░реНрдЯ рдкрд░ рдЕрдкрдиреА рдЖрдБрдЦреЛрдВ рд╕реЗ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдореИрдВ рдЕрдХреНрд╕рд░ рд╕рд░рд▓ рдореБрдХреНрдд VerilogHDL IcarusVerilog рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред рдЗрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИред рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░реЗрдВ рдФрд░ рдЪрд▓рд╛рдПрдВ:
рдореЗрд░реЗ testbench рдХрд╛рд░реНрдпрдХреНрд░рдо рдбрдВрдкрдлрд╛рдЗрд▓ рдХреА рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж ("wave.vcd"); рдФрд░ $ рдбрдВрдкрд╡рд╛рд░реНрд╕ (0, рдЯреЗрд╕реНрдЯрдмреЗрдВрдЪ); рдПрдХ wave.vcd рдЯрд╛рдЗрдорд┐рдВрдЧ рдЪрд╛рд░реНрдЯ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рддрд╛ рд╣реИред рдФрд░ рдпреЗ рдЯрд╛рдЗрдорд┐рдВрдЧ рдЪрд╛рд░реНрдЯ рдПрдХ рдФрд░ рдмреЗрд╣рддрд░реАрди рдореБрдлреНрдд GtkWave рдЯреВрд▓ рдХреЗ рд╕рд╛рде рджреЗрдЦреЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ:
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╕рдмрд╕реЗ рд╕рд░рд▓ FPGA рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдЯреЗрд╕реНрдЯ рдХрд┐рдП рдЧрдП рдореЙрдбреНрдпреВрд▓ рдХреЛ рдПрдХ рдЯреЗрд╕реНрдЯрдмреЗрдВрдЪ рд▓рд┐рдЦ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдкрд░рд┐рдгрд╛рдореА рд╕рдордп рдЖрд░реЗрдЦреЛрдВ рдХреА рдлрд╛рдЗрд▓реЗрдВ рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ FPGA рд╕реЗ рд╕рд╣реА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЖрддреА рд╣реИ рдпрд╛ рдирд╣реАрдВред
рдЕрдм рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛рддрд╛ рд╣реВрдБ рдХрд┐ рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЛ рдПрдХ рд╕рдорд╛рди рдкрд░реАрдХреНрд╖рдг рддрдХрдиреАрдХ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреА рд╣реИред
рдпрджрд┐ рдЖрдк рдлрд┐рд░ рд╕реЗ рд╡реЗрд░рд┐рд▓реЙрдЧ рдкрд░реАрдХреНрд╖рдг рдмреЗрдВрдЪ рдкрд░ рдзреНрдпрд╛рди рджреЗрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк $ рдкреНрд░рджрд░реНрд╢рди (..) рдЬреИрд╕реЗ рдХреБрдЫ рд╕рд┐рд╕реНрдЯрдо рдлрд╝рдВрдХреНрд╢рдВрд╕ рджреЗрдЦреЗрдВрдЧреЗред
рддреЛ рдпрд╣рд╛рдБ рд╣реИред рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рд╡реЗрд░рд┐рд▓реЙрдЧ рдПрдЪрдбреАрдПрд▓ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдХреЗ рд▓рд┐рдП рдЖрдк рд╕рд┐рд╕реНрдЯрдо рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╣рдореЗрдВ рд╕реА рднрд╛рд╖рд╛ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рд╣реИрдВред рдФрд░ рдПрдХ рдмрд╛рд░ рд╕реА рднрд╛рд╖рд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдЬрдЧрд╣ рд╣реИ, рддреЛ рдПрдХ рдЬрдЧрд╣ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИ рдЬрд╣рд╛рдВ рдЯреЗрд╕реНрдЯрдмреЗрдВрдЪ рдХрд╛ рд╡реЗрд░рд┐рд▓реЙрдЧ рдХреЛрдб рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЗ рд▓рд┐рдП Sysh рдХреЛрдб рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд╕реА рд▓реИрдВрдЧреНрд╡реЗрдЬ рдХреЗ рд╡реЗрд░рд┐рд▓реЙрдЧ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЛ рд╡реЗрд░рд┐рд▓реЛрдЧ рдкреНрд░реЛрд╕реЗрдбреБрд░рд▓ рдЗрдВрдЯрд░рдлреЗрд╕ (рд╡реАрдкреАрдЖрдИ) рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЖрдк рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдЙрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣ рдПрдХ рдмрдбрд╝рд╛ рдЕрд▓рдЧ рд╡рд┐рд╖рдп рд╣реИред рдЖрдк рдЕрдзрд┐рдХ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
рдпрд╣рд╛рдВ ред
рдореИрдВ рдХреЗрд╡рд▓ рдпреЛрдЬрдирд╛рдмрджреНрдз рддрд░реАрдХреЗ рд╕реЗ рд╡рд░реНрдгрди рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдПрдХ рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдХрдИ рдлрд╛рдЗрд▓реЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛ рд╕рдХрддреА рд╣реИрдВред рд╣рдорд╛рд░рд╛ рдХрд╛рд░реНрдп рдПрдХ рд╡рд┐рд╢реЗрд╖ рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдХреА рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рд╕реЗ рдирд┐рдпрдВрддреНрд░рдг рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЛ рдЦреБрдж рдХреЛ рдЕрд▓рдЧ рдХрд░рдирд╛ рд╣реИред
рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдПрдХ рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдлрд╛рдЗрд▓реЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:
Main.c Dma.c Serial.c Interrupts.c тАж. Algorithm.c
Intercontts.c рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдЗрдирдкреБрдЯ рд▓рд╛рдЗрдиреЛрдВ рд╕реЗ рдЗрдВрдЯрд░рдкреНрдЯ рд╣реИрдВрдбрд▓рд░ рд╡рд░реНрдгрд┐рдд рд╣реИрдВред рд╡реЗ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╣реИрдВ:
void EXTI9_5_IRQHandler(void) { Int val; disableGlobalInterrupts(); EXTI_ClearITPendingBit(EXTI_Line6); val = GPIO_ReadInputDataBit(MY_PORT, MY_SIGNAL); Algo_set_value( val ); enableGlobalInterrupts(); }
рдЬрдм рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдХреА рдЗрдирдкреБрдЯ рд▓рд╛рдЗрди рдкрд░ рд╕рд┐рдЧреНрдирд▓ рдмрджрд▓рддрд╛ рд╣реИ, рддреЛ рдПрдХ рд╡реНрдпрд╡рдзрд╛рди рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИ, рдпрд╣ рд▓рд╛рдЗрди рдкрд░ рдореВрд▓реНрдп рдХреЛ рдкрдврд╝рддрд╛ рд╣реИ рдФрд░ рдпрд╣ рдорд╛рди рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рд▓рд┐рдП Algo_set_val () рдлрд╝рдВрдХреНрд╢рди рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╕рд╛рд░рд┐рдд рд╣реЛрддрд╛ рд╣реИред рд╕рдВрдкреВрд░реНрдг рдирд┐рдпрдВрддреНрд░рдг рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╣реИред
Algorithm.c рдлрд╝рд╛рдЗрд▓ рдПрдХ рд╕рд╛рде рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдФрд░ Verilog VPI рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИред
рдЗрд╕ рдкреНрд░рдХрд╛рд░, "рдХрдВрдЯреНрд░реЛрд▓ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо" рд╡рд┐рдХрд╕рд┐рдд рдХрд░рддреЗ рд╕рдордп, рд╣рдо рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рд╡реАрдкреАрдЖрдИ рдореЙрдбреНрдпреВрд▓ рдХреЛ рд╡реЗрд░рд┐рд▓реЙрдЧ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдХреЗ рд▓рд┐рдП рдЕрд▓реНрдЧреЛрд░рд┐рджреНрдо рд╕реАрд╕реА рдХреЗ рд╕рд╛рде рд╕рдВрдХрд▓рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рд╡реЗрд░рд┐рд▓реЙрдЧ рдЯреЗрд╕реНрдЯ рдмреЗрдВрдЪ рдореЗрдВ рд╣рдореЗрдВ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдирдИ рдкреНрд░рдгрд╛рд▓реА рдлрд╝рдВрдХреНрд╢рди $ int () рдХреЙрд▓ рдХрд░рдХреЗ, рд╣рдо рд╕рдордп рдореЗрдВ рдХреБрдЫ рдмрд┐рдВрджреБ рдкрд░ рдПрдХ рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рд░реБрдХрд╛рд╡рдЯ рдХреА рдШрдЯрдирд╛ рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░рддреЗ рд╣реИрдВред рдЙрд╕реА рддрд░рд╣, рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рдЖрдВрддрд░рд┐рдХ рдЪрд░ рдкрдврд╝реЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирдП $ getpin (..) рд╕рд┐рд╕реНрдЯрдо рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡реЗрд░рд┐рд▓реЛрдЧ рдЯреЗрд╕реНрдЯрдмреЗрдиреНрдЪ рдХреЛ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рд╣рдорд╛рд░рд╛ рд╡реЗрд░рд┐рд▓реЛрдЧ рдЯреЗрд╕реНрдЯрдмреЗрдВрдЪ рдЗрдирдкреБрдЯ рдкреНрд░рднрд╛рд╡ рдФрд░ рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдХрдВрдЯреНрд░реЛрд▓ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рд▓рд┐рдП рд╕рдордп рдХреЗ рдкреНрд░рд╡рд╛рд╣ рдХреЛ рдЕрдиреБрдХрд░рдг рдХрд░ рд╕рдХрддрд╛ рд╣реИред
рдпрд╣ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЗрдирдкреБрдЯ рдкреНрд░рднрд╛рд╡ рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд╣рдорд╛рд░реЗ рдирд┐рдкрдЯрд╛рди рд╕рдордп рдЪрд╛рд░реНрдЯ рд╣реИрдВред рд╡реЗ рдЧреНрд░рд╛рд╣рдХ рдХреЛ рдкрд░рд┐рдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рдЙрджреНрджреЗрд╢реНрдп рд╕реЗ рджрд┐рдЦрд╛рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ - рдЙрдиреНрд╣реЗрдВ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП GtkWave рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЧреНрд░рд╛рд╣рдХ рдЕрдкрдиреА рдЖрдБрдЦреЛрдВ рд╕реЗ рджреЗрдЦ рдкрд╛рдПрдВрдЧреЗ рдХрд┐ рд╡рд┐рднрд┐рдиреНрди рд╕реЗрдВрд╕рд░ рд╕реЗ рдЗрдирдкреБрдЯ рдкреНрд░рднрд╛рд╡ рдЙрдирдХреЗ рдирд┐рдпрдВрддреНрд░рдг рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЗрдЧрд╛ред рдЧреНрд░рд╛рд╣рдХ рдХреЛ рдЗрдирдкреБрдЯ рд╕рдВрдХреЗрддреЛрдВ рдФрд░ "рдмреНрд▓реИрдХ рдмреЙрдХреНрд╕" рдХреА рд╕рднреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рд╕реЗ рдкреНрд░рднрд╛рд╡реЛрдВ рдХреЗ рд╕рднреА рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдВрдпреЛрдЬрдиреЛрдВ рдХреЛ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдХрдо рд╕реЗ рдХрдо рд╕рдордп рдХреЗ рдЖрд░реЗрдЦреЛрдВ рдореЗрдВ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдкрдВрдк рдХреЛ рд╣рд░ рджрд┐рди 10 рд╕реЗрдХрдВрдб рдХреЗ рд▓рд┐рдП рдХреИрд╕реЗ рдЪрд╛рд▓реВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ...
рдЕрдВрддрд┐рдо рдЪрд░рдг рд╡реЗрд░рд┐рд▓реЛрдЧ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ (рдмреИрдВрдЧрдиреА рдмреНрд▓реЙрдХ) рдХреЗ рд▓рд┐рдП рд╡реАрдкреАрдЖрдИ рдореЙрдбреНрдпреВрд▓ рдХреЛ рд░реЛрдХрдирд╛ рдФрд░ рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ (рдирд╛рд░рдВрдЧреА рдмреНрд▓реЙрдХ) рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдирд╛ рд╣реИред
рдЕрдм рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╡реЗрд░рд┐рд▓реЛрдЧ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдХреЗ рдЖрднрд╛рд╕реА рдкреНрд░рднрд╛рд╡реЛрдВ рд╕реЗ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдЗрдирдкреБрдЯ рд▓рд╛рдЗрдиреЛрдВ рдФрд░ рдЯрд╛рдЗрдорд░ рд╕реЗ рднреМрддрд┐рдХ рд░реБрдХрд╛рд╡рдЯреЛрдВ рд╕реЗ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдмрд╕ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореИрдВ рдПрдХ рдмрд╛рд░ рдлрд┐рд░ рдзреНрдпрд╛рди рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рд╡реЗрд░рд┐рд▓реЛрдЧ рдЯреЗрд╕реНрдЯрдмреЗрдВрдЪ рдХреА рдорджрдж рд╕реЗ рд╣рдо рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдбреАрдПрдордП рдпрд╛ рдЯрд╛рдЗрдорд░ рдпрд╛ рдЬреАрдкреАрдЖрдИрдУ рдЬреИрд╕реЗ рдкрд░рд┐рдзреАрдп рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдХреА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреА рд╢реБрджреНрдзрддрд╛ рдХреА рдЬрд╛рдВрдЪ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рд╣рдо рдХреЗрд╡рд▓ "рдирд┐рдпрдВрддреНрд░рдг рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо" рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рддреЗ рд╣реИрдВред рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдпрд╣ рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред
рдЦреИрд░, рдРрд╕рд╛ рд╣реА рдХреБрдЫред