рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ
рдкрд╣рд▓реЗ рд▓реЗрдЦ рдореЗрдВ , рдореИрдВрдиреЗ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдЗрд╕ рд╡рд┐рдЪрд╛рд░ рдХреЛ рдмрдврд╝рд╛рд╡рд╛ рджрд┐рдпрд╛ рдХрд┐ рд░реЗрдб рдХреЗ рд▓рд┐рдП рдХреЛрдб рд╡рд┐рдХрд╛рд╕ рдорд╛рдзреНрдпрдорд┐рдХ рд╣реИ, рдФрд░ рдореБрдЦреНрдп рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкреНрд░рд╛рдердорд┐рдХ рд╣реИред Redd рдПрдХ рд╕рд╣рд╛рдпрдХ рдЙрдкрдХрд░рдг рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕ рдкрд░ рдмрд╣реБрдд рд╕рдордп рдЦрд░реНрдЪ рдХрд░рдирд╛ рдЧрд▓рдд рд╣реИред рдпрд╣реА рд╣реИ, рдЗрд╕рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд╛рд╕ рдЬрд▓реНрджреА рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдкрд░рд┐рдгрд╛рдореА рдХрд╛рд░реНрдпрдХреНрд░рдо рдЗрд╖реНрдЯрддрдо рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рджрд░рдЕрд╕рд▓, рдпрджрд┐ рд╡реЗ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдЕрдиреБрдХреВрд▓рд┐рдд рдирд╣реАрдВ рд╣реИрдВ, рддреЛ рд╡рд╛рдВрдЫрд┐рдд рдкрд░реАрдХреНрд╖рдг рдкреНрд░рдгрд╛рд▓реА рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╕ рдЙрдкрдХрд░рдг рдХреА рд╢рдХреНрддрд┐ рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реЛрдЧреАред рдЗрд╕рд▓рд┐рдП, рдкреНрд░рдХреНрд░рд┐рдпрд╛, рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдХрд╣рд╛, рддреНрд╡рд░рд┐рдд рдФрд░ рдЖрд╕рд╛рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдбреЗрд╡рд▓рдкрд░ рдХреЛ рд╣рдореЗрд╢рд╛ рдЕрдиреБрдХреВрд▓рди рдХреЗ рдХреБрдЫ рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЕрдиреБрдХреВрд▓рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореЛрдЯреА рдХрд┐рддрд╛рдмреЗрдВ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХреА рдЧрдИ рд╣реИрдВред рдЗрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдкреБрд╕реНрддрдХреЗрдВ рдЙрдкрдпреЛрдЧреА рд╣реИрдВ, рдХреБрдЫ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкреБрд░рд╛рдиреА рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЙрдирдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЛрдб рдмрдирд╛рддреЗ рд╕рдордп рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдЕрдиреБрдХреВрд▓рди рдХреЗ рдЪрд░рдг рдореЗрдВ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдЪрд▓реЗ рдЧрдП рд╣реИрдВ ... рд▓реЗрдХрд┐рди рдХреБрдЫ рдЪреАрдЬреЗрдВ рд╣реИрдВ рдЬреЛ рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рддреЗ рд╕рдордп рдХреЛрдИ рдорд╣рддреНрд╡ рдирд╣реАрдВ рд░рдЦрддреА рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЖрдорддреМрд░ рдкрд░ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреБрд╕реНрддрдХреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред ред рд╣рдо рдЕрдм рдЙрди рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВрдЧреЗред
рдкрд░рд┐рдЪрдп
рдЕрдм рддрдХ, рдореИрдВрдиреЗ "рдПрдХ рд╕рдорд╕реНрдпрд╛ - рдПрдХ рд▓реЗрдЦ" рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдкрд░ рд▓рд┐рдЦрд╛ рдерд╛ред рдФрд░ рд▓реЗрдЦ рд╡реНрдпрд╛рдЦреНрдпрд╛рди рдХреЗ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдП рдЧрдП рдереЗ, рдПрдХ рдмрд╛рд░ рдореЗрдВ рдХрдИ рд╡рд┐рд╖рдпреЛрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддреЗ рд╣реБрдП, рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╕рдорд╕реНрдпрд╛ рд╕реЗ рдПрдХрдЬреБрдЯ рд╣реБрдПред рд▓реЗрдХрд┐рди рдХреБрдЫ рдкрд╛рдардХреЛрдВ рдиреЗ рдХрд╣рд╛ рдХрд┐ рдРрд╕реЗ рд▓реЗрдЦреЛрдВ рдХреЛ рдПрдХ рдмрд╛рд░ рдореЗрдВ рдирд╣реАрдВ рдкрдврд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЕрдм рд╣рдо рдПрдХ рд▓реЗрдЦ рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рд╡рд┐рд╖рдп рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВрдЧреЗред рдореЗрд░реЗ рд▓рд┐рдП рднреА рдРрд╕рд╛ рд▓рд┐рдЦрдирд╛ рдЖрд╕рд╛рди рд╣реИред рдЖрдЗрдП рджреЗрдЦреЗрдВ, рдпрд╣ рд╕рднреА рдХреЗ рд▓рд┐рдП рдЕрдЪрд╛рдирдХ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛрдЧрд╛ред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд░рд╣рд╕реНрдпрдордп рдорд╛рдЗрдирд╕рд░реЛрдВ рдХреЛ рдкреНрд░рд╕рдиреНрди рдХрд░реЗрдВред рдпрджрд┐ рдХреЛрдИ рд▓реЗрдЦ рд╕реБрдмрд╣ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЗрд╕рдХреЗ рд▓рд┐рдП рдкрд╣рд▓рд╛ рд╢реВрдиреНрдп рдЕрд╡рдзрд┐ рдХреЗ рдмрд╛рдж рдЖрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рджреМрд░рд╛рди рдкреВрд░реЗ рдкрд╛рда рдХреЛ рдкрдврд╝рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИред рдХреЛрдИ рдЗрд╕реЗ рд╡рд┐рд╢реБрджреНрдз рд░реВрдк рд╕реЗ рд╕рд┐рджреНрдзрд╛рдВрдд рд╕реЗ рдХрд░рддрд╛ рд╣реИ, рдХреЗрд╡рд▓ UDB рдФрд░ рдмрд╛рд▓рд┐рдХрд╛ рдХреЗ рд╡рд┐рд╖рдп рдореЗрдВ рдмрдЦреНрд╢рддрд╛ рд╣реИред рдпрджрд┐ рдкреНрд░рдХрд╛рд╢рди рд╕реБрдмрд╣ рдореЗрдВ рдирд╣реАрдВ рдерд╛, рд▓реЗрдХрд┐рди рджреЛрдкрд╣рд░ рдореЗрдВ, рддреЛ рд╡рд╣ рдПрдХ рд╡рд┐рд▓рдВрдм рдХреЗ рд╕рд╛рде рдорд╛рдЗрдирд╕ рдлреЗрдВрдХрддрд╛ рд╣реИред рджрд┐рди рдХреЗ рджреМрд░рд╛рди рджреВрд╕рд░рд╛ рдорд╛рдЗрдирд╕ рдЖрддрд╛ рд╣реИ (рдФрд░ рд╡рд╣ рджреЛрд╕реНрдд, рд╡реИрд╕реЗ рднреА, UDB рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рдмрд╛рд▓рд┐рдХрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреА)ред рдирдП рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдФрд░ рдЕрдзрд┐рдХ рд▓реЗрдЦ рд╣реЛрдВрдЧреЗ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЗрд╕ рдпреБрдЧрд▓ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╕реБрдЦрдж рдХреНрд╖рдг рд╣реЛрдВрдЧреЗ (рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдореЗрд░реЗ рд▓рд┐рдП, рдПрдХ рд▓реЗрдЦрдХ рдХреЗ рд░реВрдк рдореЗрдВ, рдЙрдирдХреЗ рдХрд╛рд░реНрдп рдореБрдЭреЗ рджреБрдЦреА рдФрд░ рдЙрджрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ)ред
рд╢реНрд░реГрдВрдЦрд▓рд╛ рдореЗрдВ рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ:
- Redd рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд FPGAs рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рд╕рд░рд▓ "рдлрд░реНрдорд╡реЗрдпрд░" рдХрд╛ рд╡рд┐рдХрд╛рд╕, рдФрд░ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдореЗрдореЛрд░реА рдЯреЗрд╕реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдбрд┐рдмрдЧрд┐рдВрдЧред
- Redd рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд FPGAs рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рд╕рд░рд▓ "рдлрд░реНрдорд╡реЗрдпрд░" рдХрд╛ рд╡рд┐рдХрд╛рд╕ред рднрд╛рдЧ 2. рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛрдбред
- FPGA рдЖрдзрд╛рд░рд┐рдд рдкреНрд░реЛрд╕реЗрд╕рд░ рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рдПрдореНрдмреЗрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдореВрд▓ рдХрд╛ рд╡рд┐рдХрд╛рд╕ред
- FPGA рддрдХ рдкрд╣реБрдВрдЪ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдкрд░ рдХреЗрдВрджреНрд░реАрдп рдкреНрд░реЛрд╕реЗрд╕рд░ рд░реЗрдб рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХрд╛ рд╡рд┐рдХрд╛рд╕ред
- рд░реЗрдб рдПрдлрдкреАрдЬреАрдП рдореЗрдВ рд╕реАрдкреАрдпреВ рдФрд░ рдкреНрд░реЛрд╕реЗрд╕рд░ рд╕рдВрдЪрд╛рд░ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдкрд╣рд▓рд╛ рдкреНрд░рдпреЛрдЧред
- рдореАрд░рд╛ рдХреНрд╡рд╛рд░реНрдЯрд░рд╕реЗрд▓, рдпрд╛ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреИрд╕реЗ рдЗрд╕ рддрд░рд╣ рдХреЗ рдЬреАрд╡рди рдореЗрдВ рдЖрдпрд╛ рд╣реИред
рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░рдгрд╛рд▓реА рдХрд╛ рд░рд╣рд╕реНрдпрдордп рд╡реНрдпрд╡рд╣рд╛рд░
рдЪрд▓реЛ рдПрдХ рдШрдбрд╝реА, рдПрдХ рдПрдирдЖрдИрдУрдПрд╕ II / f рдкреНрд░реЛрд╕реЗрд╕рд░, рдПрдХ рдПрд╕рдбреАрдЖрд░рдПрдПрдо рдирд┐рдпрдВрддреНрд░рдХ, рдФрд░ рдПрдХ рдЖрдЙрдЯрдкреБрдЯ рдкреЛрд░реНрдЯ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдХреЗ рд╕рдмрд╕реЗ рд╕рд░рд▓ рдкреНрд░реЛрд╕реЗрд╕рд░ рд╕рд┐рд╕реНрдЯрдо рдХрд░рддреЗ рд╣реИрдВред рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдбрд┐рдЬрд╝рд╛рдЗрдирд░ рдореЗрдВ рд╕реНрдкрд╛рд░реНрдЯрди рдпрд╣ рдкреНрд░рдгрд╛рд▓реА рдХреИрд╕реА рджрд┐рдЦрддреА рд╣реИ

рдЗрд╕рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛрдб рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд╣реЛрдЧрд╛, рдЬрд┐рд╕рдХрд╛ рд╢рд░реАрд░ рдХреБрдЫ рдЕрдЬреАрдм рджрд┐рдЦрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ рдХрдИ рджреЛрд╣рд░рд╛рдИ рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рд▓рд╛рдЗрдиреЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ред
рдХреЛрдб рдЫрд┐рдкрд╛ рд╣реБрдЖ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдмрд╣реБрдд рддрдВрдЧ рд╣реИредextern "C" { #include "sys/alt_stdio.h" #include <system.h> #include <io.h> } void MagicFunction() { while (1) { IOWR (PIO_0_BASE,0,1); IOWR (PIO_0_BASE,0,0); IOWR (PIO_0_BASE,0,1); IOWR (PIO_0_BASE,0,0); IOWR (PIO_0_BASE,0,1); IOWR (PIO_0_BASE,0,0); IOWR (PIO_0_BASE,0,1); IOWR (PIO_0_BASE,0,0); IOWR (PIO_0_BASE,0,1); IOWR (PIO_0_BASE,0,0); IOWR (PIO_0_BASE,0,1); IOWR (PIO_0_BASE,0,0); IOWR (PIO_0_BASE,0,1); IOWR (PIO_0_BASE,0,0); IOWR (PIO_0_BASE,0,1); IOWR (PIO_0_BASE,0,0); IOWR (PIO_0_BASE,0,1); IOWR (PIO_0_BASE,0,0); IOWR (PIO_0_BASE,0,1); IOWR (PIO_0_BASE,0,0); IOWR (PIO_0_BASE,0,1); IOWR (PIO_0_BASE,0,0); IOWR (PIO_0_BASE,0,1); IOWR (PIO_0_BASE,0,0); IOWR (PIO_0_BASE,0,1); IOWR (PIO_0_BASE,0,0); IOWR (PIO_0_BASE,0,1); IOWR (PIO_0_BASE,0,0); IOWR (PIO_0_BASE,0,1); IOWR (PIO_0_BASE,0,0); } } int main() { MagicFunction(); /* Event loop never exits. */ while (1); return 0; }
рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рдЖрдЦрд┐рд░реА рдореЗрдВ рдПрдХ рдмреНрд░реЗрдХрдкреЙрдЗрдВрдЯ рд▓рдЧрд╛рдПрдВ:
IOWR (PIO_0_BASE,0,0);
рдореИрдЬрд┐рдХрдлрдВрдХреНрд╢рди рдореЗрдВ рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рдЪрд▓рд╛рдПрдВред рдкреЛрд░реНрдЯ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдкрд░ рд╣рдореЗрдВ рдХреНрдпрд╛ рдорд┐рд▓рд╛? рдмрд╣реБрдд рдкреНрд░рдЪрдВрдб рдЖрд╡реЗрдЧ:

рджрд╣рд╢рдд рдЕрдЪреНрдЫрд╛, рд╣рд╛рдБред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд▓реВрдк рдХреЗ рдПрдХ рдФрд░ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП "рд▓реЙрдиреНрдЪ" рдкрд░ рдлрд┐рд░ рд╕реЗ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред рдФрд░ рдЕрдм рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдкрд░ рд╣рдореЗрдВ рдПрдХ рд╕реБрдВрджрд░ рдЪрд┐рдХрдиреА рдореЗрд╣рдВрджреА рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИ:

рдПрдХ рдФрд░ рдкреБрдирд░рд╛рд╡реГрддрд┐ред рдФрд░ рдПрдХ рдФрд░ ... рд╕реНрдерд┐рд░ рдореЗрдпрд░ред рд╣рдо рд╡рд┐рд░рд╛рдо рдмрд┐рдВрджреБ рдХреЛ рд╣рдЯрд╛рддреЗ рд╣реИрдВ рдФрд░ рдХрд╛рдо рдХреЛ рдЧрддрд┐рдХреА рдореЗрдВ рджреЗрдЦрддреЗ рд╣реИрдВ - рдЗрд╕ рддрд░рд╣ рдХреЗ рд╡рд┐рд░рд╛рдо рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВред рджрд╛рд▓реЛрдВ рдХреЗ рдЕрдВрддрд╣реАрди рдлрдЯрдиреЗ рд╣реИрдВред
рд╣рдордиреЗ рдкрд╣рд▓реА рдкрд╛рд╕ рдкрд░ рдЖрд╡реЗрдЧреЛрдВ рдХреЛ рдХреНрдпреЛрдВ рдлрд╛рдбрд╝ рджрд┐рдпрд╛? рдПрдХ рджреБрд░реНрдШрдЯрдирд╛? рдирд╣реАрдВред рд╣рдо рдбрд┐рдмрдЧрд┐рдВрдЧ рдмрдВрдж рдХрд░ рджреЗрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рдФрд░ рдлрд┐рд░ рд╕реЗ рд╣рдо рдлрдЯреЗ рд╣реБрдП рдЖрд╡реЗрдЧ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВред рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рдкреНрд░рд╡реЗрд╢ рджреНрд╡рд╛рд░ рдкрд░ рдЕрдВрддрд░рд╛рд▓ рд╣рдореЗрд╢рд╛ рдЙрддреНрдкрдиреНрди рд╣реЛрддреЗ рд╣реИрдВред
рд╕реБрд░рд╛рдЧ рдХреИрд╢ рдореЗрдВ рд╣реИ
рджрд░рдЕрд╕рд▓, рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рд╣рд▓ рдХреИрд╢ рдореЗрдВ рд╣реИред рд╣рдорд╛рд░рд╛ рдХрд╛рд░реНрдпрдХреНрд░рдо SDRAM рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИред SDRAM рд╕реЗ рдХреЛрдб рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рддреЗрдЬрд╝ рдирд╣реАрдВ рд╣реИред рд░реАрдб рдХрдорд╛рдВрдб рджреЗрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдПрдбреНрд░реЗрд╕ рджреЗрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдФрд░ рдПрдбреНрд░реЗрд╕ рдореЗрдВ рджреЛ рднрд╛рдЧ рд╣реЛрддреЗ рд╣реИрдВред рдЖрдкрдХреЛ рдереЛрдбрд╝рд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЗрд╕рдХреЗ рдмрд╛рдж рд╣реА рдорд╛рдЗрдХреНрд░реЛрдХрд┐рд░рд╕реАрдЯ рдбреЗрдЯрд╛ рдХреЛ рдмрд╛рд╣рд░ рдХрд░ рджреЗрдЧрд╛ред рд╣рд░ рдмрд╛рд░ рдЗрд╕ рддрд░рд╣ рдХреА рджреЗрд░реА рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, microcircuit рдПрдХ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдХрдИ рд▓рдЧрд╛рддрд╛рд░ рд╢рдмреНрдж рдЬрд╛рд░реА рдХрд░ рд╕рдХрддрд╛ рд╣реИред рд╣рдо рдЖрдЬ рд╕рдордп рдЪрд╛рд░реНрдЯ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ, рд╣рдо рдЗрд╕реЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд▓реЗрдЦреЛрдВ рдХреЗ рд▓рд┐рдП рд╕реНрдердЧрд┐рдд рдХрд░ рджреЗрдВрдЧреЗред
рдЦреИрд░, рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЛрд░ рдУрд░, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдПрдХ рдХреИрд╢ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдпрд╣рд╛рдБ рдЗрд╕рдХреА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╣реИрдВ:

рджрд░рдЕрд╕рд▓, рджреЗрд░реА рдЙрд╕ рд╕рдордп рд╣реЛрддреА рд╣реИ рдЬрдм SDRAM рд╕реЗ рдХреИрд╢ рддрдХ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдмреИрдЪ рд▓реЛрдб рд╣реЛ рд░рд╣рд╛ рд╣реИред рдЕрдЧрд▓реЗ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдореЗрдВ, рдХреЛрдб рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХреИрд╢ рдореЗрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд▓реЛрдбрд┐рдВрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
рдСрд╕реАрд▓реЛрдЧреНрд░рд╛рдо рдкреНрд░рддрд┐ рд▓реЛрдбрд┐рдВрдЧ рдСрдкрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐ рдкреЛрд░реНрдЯ рдФрд╕рддрди 8 рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдБ рджрд┐рдЦрд╛рддрд╛ рд╣реИ (рдПрдХ рдЗрдХрд╛рдИ 4 рдмрд╛рд░ рдФрд░ рд╢реВрдиреНрдп 4 рдмрд╛рд░ рд▓рд┐рдЦреА рдЧрдИ рд╣реИ)ред рдПрдХ рд░рд┐рдХреЙрд░реНрдб - рдПрдХ рдХреЛрдбрд╛рдВрддрд░рдХ рдХрдорд╛рдВрдб, рдЬреЛ рдореЗрдиреВ рдЖрдЗрдЯрдо рд╡рд┐рдВрдбреЛ рдЪреБрдирдХрд░ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ-> рджреГрд╢реНрдп рджреЗрдЦреЗрдВ-> рдЕрдиреНрдп:

рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рдбрд┐рдмрдЧ-

рдпрд╣рд╛рдБ рд╣рдорд╛рд░реЗ рддрд╛рд░ рдФрд░ рд╕рдВрдмрдВрдзрд┐рдд рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЛрдб рд╣реИрдВ:

4 рдмрд╛рдЗрдЯреНрд╕ рдХреА 8 рдЯреАрдореЗрдВ рдкреНрд░рддреНрдпреЗрдХред рд╣рдореЗрдВ рдкреНрд░рддрд┐ рдХреИрд╢ рд▓рд╛рдЗрди рдореЗрдВ 32 рдмрд╛рдЗрдЯреНрд╕ рдорд┐рд▓рддреЗ рд╣реИрдВ ... рд╣рдо рдЕрдкрдиреА рдкрд╕рдВрджреАрджрд╛ рдорджрдж рдлрд╝рд╛рдЗрд▓ C: \ Work \ CachePlay \ software \ CachePlay_bsp \ system.h рдкрд░ рджреЗрдЦрддреЗ рд╣реИрдВ рдФрд░ рджреЗрдЦрддреЗ рд╣реИрдВ:
#define ALT_CPU_ICACHE_LINE_SIZE 32 #define ALT_CPU_ICACHE_LINE_SIZE_LOG2 5
рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдЧрдгрдирд╛ рдХрд┐рдП рдЧрдП рдбреЗрдЯрд╛ рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЗ рд╕рд╛рде рдореЗрд▓ рдЦрд╛рддреЗ рдереЗред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкреНрд░рд▓реЗрдЦрди рд╕реЗ рдпрд╣ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ рдХрд┐ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХрд╛ рдЖрдХрд╛рд░ рдирд╣реАрдВ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рд╣рдореЗрд╢рд╛ рдмрддреНрддреАрд╕ рдмрд╛рдЗрдЯреНрд╕ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛрддрд╛ рд╣реИред
рдереЛрдбрд╝рд╛ рдФрд░ рдЬрдЯрд┐рд▓ рдкреНрд░рдпреЛрдЧ
рдЖрдЗрдП рд╕реНрдерд╛рдкрд┐рдд рдХрд╛рд░реНрдп рдХреЗ рджреМрд░рд╛рди рд░рд┐рдмреВрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреИрд╢ рдХреЛ рдЙрддреНрддреЗрдЬрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред рдЪрд▓реЛ рдкрд░реАрдХреНрд╖рдг рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рдереЛрдбрд╝рд╛ рдмрджрд▓ рджреЗрдВред рд╣рдо рджреЛ рдХрд╛рд░реНрдп рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ
рдореБрдЦреНрдп () рдлрд╝рдВрдХреНрд╢рди рд╕реЗ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рдореЗрдВ рдПрдХ рд▓реВрдк рд░рдЦрддреЗ рд╣реИрдВред рдореИрдВ рдПрдХ рдмреНрд░реЗрдХрдкреЙрдЗрдВрдЯ рд╕реЗрдЯ рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛ред рд╡реИрд╕реЗ, рдпрджрд┐ рдЖрдк рдлрд╝рдВрдХреНрд╢рди рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдорд╛рди рдмрдирд╛рддреЗ рд╣реИрдВ, рддреЛ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝рд░ рдЗрд╕ рдкрд░ рдзреНрдпрд╛рди рджреЗрдЧрд╛ рдФрд░ рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ рд╣рдЯрд╛ рджреЗрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдХрдо рд╕реЗ рдХрдо рдПрдХ рдкрдВрдХреНрддрд┐, рд▓реЗрдХрд┐рди рдЙрдиреНрд╣реЗрдВ рдЕрд▓рдЧ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП ... рдпрд╣ рд╡рд╣реА рд╣реИ рдЬреЛ рдореИрдВрдиреЗ рд╢реБрд░реБрдЖрдд рдореЗрдВ рд▓рд┐рдЦрд╛ рдерд╛: рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝рд░ рдЕрдм рдмрд╣реБрдд рд╕реНрдорд╛рд░реНрдЯ рд╣реИрдВред
рд╕рдВрд╢реЛрдзрд┐рдд рдкрд░реАрдХреНрд╖рдг рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛрдбред extern "C" { #include "sys/alt_stdio.h" #include <system.h> #include <io.h> } void MagicFunction1() { IOWR (PIO_0_BASE,0,1); IOWR (PIO_0_BASE,0,0); IOWR (PIO_0_BASE,0,1); IOWR (PIO_0_BASE,0,0); IOWR (PIO_0_BASE,0,1); IOWR (PIO_0_BASE,0,0); IOWR (PIO_0_BASE,0,1); IOWR (PIO_0_BASE,0,0); IOWR (PIO_0_BASE,0,1); IOWR (PIO_0_BASE,0,0); IOWR (PIO_0_BASE,0,1); IOWR (PIO_0_BASE,0,0); IOWR (PIO_0_BASE,0,1); IOWR (PIO_0_BASE,0,0); IOWR (PIO_0_BASE,0,1); IOWR (PIO_0_BASE,0,0); IOWR (PIO_0_BASE,0,1); IOWR (PIO_0_BASE,0,0); IOWR (PIO_0_BASE,0,1); IOWR (PIO_0_BASE,0,0); IOWR (PIO_0_BASE,0,1); IOWR (PIO_0_BASE,0,0); IOWR (PIO_0_BASE,0,1); IOWR (PIO_0_BASE,0,0); IOWR (PIO_0_BASE,0,1); IOWR (PIO_0_BASE,0,0); IOWR (PIO_0_BASE,0,1); IOWR (PIO_0_BASE,0,0); IOWR (PIO_0_BASE,0,1); IOWR (PIO_0_BASE,0,0); } void MagicFunction2() { IOWR (PIO_0_BASE,0,0); IOWR (PIO_0_BASE,0,1); IOWR (PIO_0_BASE,0,0); IOWR (PIO_0_BASE,0,1); IOWR (PIO_0_BASE,0,0); IOWR (PIO_0_BASE,0,1); IOWR (PIO_0_BASE,0,0); IOWR (PIO_0_BASE,0,1); IOWR (PIO_0_BASE,0,0); IOWR (PIO_0_BASE,0,1); IOWR (PIO_0_BASE,0,0); IOWR (PIO_0_BASE,0,1); IOWR (PIO_0_BASE,0,0); IOWR (PIO_0_BASE,0,1); IOWR (PIO_0_BASE,0,0); IOWR (PIO_0_BASE,0,1); IOWR (PIO_0_BASE,0,0); IOWR (PIO_0_BASE,0,1); IOWR (PIO_0_BASE,0,0); IOWR (PIO_0_BASE,0,1); IOWR (PIO_0_BASE,0,0); IOWR (PIO_0_BASE,0,1); IOWR (PIO_0_BASE,0,0); IOWR (PIO_0_BASE,0,1); IOWR (PIO_0_BASE,0,0); IOWR (PIO_0_BASE,0,1); IOWR (PIO_0_BASE,0,0); IOWR (PIO_0_BASE,0,1); IOWR (PIO_0_BASE,0,0); IOWR (PIO_0_BASE,0,1); } int main() { while (1) { MagicFunction1(); MagicFunction2(); } /* Event loop never exits. */ while (1); return 0; }
рд╣рдо рдПрдХ рд╕реБрдВрджрд░ рд╕реБрдВрджрд░ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ, рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рд╕реНрдерд╛рдкрд┐рдд рдореЛрдб рдореЗрдВ рд╢реВрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдФрд░ рдЕрдм рд╣рдо рдЗрд╕ рдЬреЛрдбрд╝реА рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдмреАрдЪ рдХреБрдЫ рдирдпрд╛ рдХрд╛рд░реНрдп рдХрд░реЗрдВрдЧреЗ, рдФрд░ рд╣рдордиреЗ рдЗрд╕реЗ рдХреЙрд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛, рдпрд╣ рдХреЗрд╡рд▓ рдЙрдирдХреЗ рдмреАрдЪ рд╕реНрдореГрддрд┐ рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рдПрдЧрд╛ред рдЕрдм рдореИрдВ рдЗрд╕реЗ рдФрд░ рдЕрдзрд┐рдХ рд╕реНрдерд╛рди рд▓реЗрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ ... рдХреИрд╢ рдХрд╛ рдЖрдХрд╛рд░ 4 рдХрд┐рд▓реЛрдмрд╛рдЗрдЯ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЗрд╕реЗ рдЪрд╛рд░ рдХрд┐рд▓реЛрдмрд╛рдЗрдЯ рдХреЗ рдмрд░рд╛рдмрд░ рдХрд░ рджреЗрдВрдЧреЗ ... рдмрд╕ 1024 NOPs рдбрд╛рд▓реЗрдВ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХрд╛ рдЖрдХрд╛рд░ 4 рдмрд╛рдЗрдЯреНрд╕ рд╣реИред рдореИрдВ рдкрд╣рд▓реЗ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЕрдВрдд, рдирдП рдлрд╝рдВрдХреНрд╢рди рдФрд░ рджреВрд╕рд░реЗ рдХреА рд╢реБрд░реБрдЖрдд рджрд┐рдЦрд╛рдКрдВрдЧрд╛, рддрд╛рдХрд┐ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдХрд┐ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреИрд╕реЗ рдмрджрд▓рддрд╛ рд╣реИ:
... IOWR (PIO_0_BASE,0,0); IOWR (PIO_0_BASE,0,1); IOWR (PIO_0_BASE,0,0); IOWR (PIO_0_BASE,0,1); IOWR (PIO_0_BASE,0,0); } #define Nops4 __asm__ volatile ("nop");__asm__ volatile ("nop");__asm__ volatile ("nop");__asm__ volatile ("nop"); #define Nops16 Nops4 Nops4 Nops4 Nops4 #define Nops64 Nops16 Nops16 Nops16 Nops16 #define Nops256 Nops64 Nops64 Nops64 Nops64 #define Nops1024 Nops256 Nops256 Nops256 Nops256 volatile void FuncBetween() { Nops1024 } void MagicFunction2() { IOWR (PIO_0_BASE,0,0); IOWR (PIO_0_BASE,0,1); IOWR (PIO_0_BASE,0,0); IOWR (PIO_0_BASE,0,1); IOWR (PIO_0_BASE,0,0); ...
рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд╛ рддрд░реНрдХ рдирд╣реАрдВ рдмрджрд▓рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЬрдм рдЪрд▓рд╛рддреЗ рд╣реИрдВ рддреЛ рд╣рдо рдлрдЯреЗ рд╣реБрдП рджрд╛рд▓ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ

рдореИрдВ рдПрдХ рднреЛрд▓реА рд╕рд╡рд╛рд▓ рдкреВрдЫреВрдВрдЧрд╛: рд╣рдордиреЗ рдХреИрд╢ рд╕реЗ рдЙрдбрд╝рд╛рди рднрд░реА, рдФрд░ рдЕрдм, рдЦрд╛рдИ рдЪреМрдбрд╝реА рд╣реЛрдиреЗ рдХреЗ рдирд╛рддреЗ, рдХреНрдпрд╛ рд╣рдореЗрд╢рд╛ рд▓реЛрдб рд╣реЛ рд░рд╣рд╛ рд╣реЛрдЧрд╛? рдмрд┐рд▓рдХреБрд▓ рдирд╣реАрдВ! "рдЦрд░рд╛рдм" рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЖрдХрд╛рд░ рдмрджрд▓реЗрдВ, рдЗрд╕реЗ рдкрд╛рдВрдЪ рдХрд┐рд▓реЛрдмрд╛рдЗрдЯ рдХреЗ рдмрд░рд╛рдмрд░ рдХрд╣реЗрдВред рдЪрд╛рд░ рд╕реЗ рдЕрдзрд┐рдХ рдкрд╛рдВрдЪ, рдХреНрдпрд╛ рд╣рдо рдЕрднреА рднреА рдмрд╛рд╣рд░ рдЙрдбрд╝ рд░рд╣реЗ рд╣реИрдВ? рдпрд╛ рдирд╣реАрдВ? рдЗрд╕ рдХреЗ рд╕рд╛рде рд╕рдореНрдорд┐рд▓рд┐рдд рдмрджрд▓реЗрдВ:
volatile void FuncBetween() { Nops1024 Nops256 }
рдФрд░ рдлрд┐рд░ рд╕реЗ рд╣рдореЗрдВ рд╕реБрдВрджрд░рддрд╛ рдорд┐рд▓рддреА рд╣реИ:

рддреЛ рдХреЛрдб рдХреЛ рдХреИрд╢ рдореЗрдВ рд▓реЛрдб рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпрд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреА рд╣реИ? рдХреНрдпрд╛ рд╣рдо рдХрд┐рд╕реА рдЪреАрдЬ рдХреА рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╛ рд╣рд░ рдмрд╛рд░ рд╣рдореЗрдВ рдЗрд╕ рддрдереНрдп рдХреЛ рджреЗрдЦрдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ? рдЪрд▓реЛ рд╕рд┐рджреНрдзрд╛рдВрдд рдореЗрдВ рддрд▓реНрд▓реАрди рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ
рдПрдирдЖрдИрдУрдПрд╕ II рдкреНрд░реЛрд╕реЗрд╕рд░ рд╕рдВрджрд░реНрдн рдЧрд╛рдЗрдб рд╣рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИред
рд╕рд┐рджреНрдзрд╛рдВрдд рдХреА рдмрд┐рдЯ
рдкреНрд░реЛрд╕реЗрд╕рд░ рдореЗрдВ рдкрддрд╛ рдлрд╝реАрд▓реНрдб рдХреИрд╕реЗ рд╡рд┐рднрд╛рдЬрд┐рдд рд╣реЛрддрд╛ рд╣реИ:

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдкрддрд╛ рддреАрди рднрд╛рдЧреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рд╣реИред рдЯреИрдЧ, рд▓рд╛рдЗрди рдФрд░ рдСрдлрд╕реЗрдЯред рдСрдлрд╝рд╕реЗрдЯ рдлрд╝реАрд▓реНрдб рдХрд╛ рдЖрдпрд╛рдо Nios II рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рд▓рд┐рдП рд╕реНрдерд┐рд░ рд╣реИ рдФрд░ рд╣рдореЗрд╢рд╛ рдкрд╛рдБрдЪ рдмрд┐рдЯреНрд╕ рд╣реИ, рдЕрд░реНрдерд╛рдд рдпрд╣ 32 рдмрд╛рдЗрдЯреНрд╕ рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред "рд▓рд╛рдЗрди" рдлрд╝реАрд▓реНрдб рдХрд╛ рдЖрдпрд╛рдо рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рддреЗ рд╕рдордп рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреИрд╢ рдХреЗ рдЖрдХрд╛рд░ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рдЙрдкрд░реЛрдХреНрдд рдЖрдВрдХрдбрд╝реЗ рдореЗрдВ, рдпрд╣ рдХрд╛рдлреА рдмрдбрд╝рд╛ рд╣реИред рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рдЗрддрдирд╛ рдмрдбрд╝рд╛ рдЖрдпрд╛рдо рдХреНрдпреЛрдВ рд╣реИред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ 4 рдХрд┐рд▓реЛрдмрд╛рдЗрдЯ рдХрд╛ рдХреИрд╢ рдЖрдХрд╛рд░ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдХреБрд▓ рдмрд┐рдЯ рдЧрд╣рд░рд╛рдИ рдФрд░ рдСрдлрд╕реЗрдЯ 12 рдмрд┐рдЯ рд╣реИрдВред 5 рдмрд┐рдЯреНрд╕ рдПрдХ рдСрдлрд╕реЗрдЯ рд▓реЗрддрд╛ рд╣реИ, рдПрдХ рд▓рд╛рдЗрди рдХреЗ рд▓рд┐рдП 12-5 = 7 рдмрд┐рдЯреНрд╕ рд░рд╣рддрд╛ рд╣реИред
рд╣рдореЗрдВ 128 рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреА рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рддрд╛рд▓рд┐рдХрд╛ рдорд┐рд▓рддреА рд╣реИ, рдкреНрд░рддреНрдпреЗрдХ 32 рдмрд╛рдЗрдЯреНрд╕ рд▓рдВрдмреА рд╣реЛрддреА рд╣реИрдВред рдореИрдВ рдХрд╣реВрдВрдЧрд╛, рдкрд╣рд▓реЗ 6 рдкрдВрдХреНрддрд┐рдпрд╛рдБ:
рдФрд░ рдЗрд╕рд▓рд┐рдП рд╣рдордиреЗ 0x123
004 рдкрддреЗ рдХреА рдУрд░ рд░реБрдЦ рдХрд┐рдпрд╛ред рдпрджрд┐ рдЖрдк "рдорд╣рддреНрд╡рдкреВрд░реНрдг" рднрд╛рдЧ рдХреЛ рдирд╣реАрдВ рдЫреЛрдбрд╝рддреЗ рд╣реИрдВ, рддреЛ "рд▓рд╛рдЗрди + рдСрдлрд╕реЗрдЯ" рдЬреЛрдбрд╝реА 0x004 рд╣реИред рдпрд╣ рдЬреАрд░реЛ рд░реЛ рд░реЗрдВрдЬ рд╣реИред рдЗрд╕ рд▓рд╛рдЗрди рдореЗрдВ рдбреЗрдЯрд╛ рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдФрд░ 0x123
000 рд╕реЗ 0x123
01F рд╕реАрдорд╛ рддрдХ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдЖрдЧреЗ рдХрд╛рдо рдХреИрд╢ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред рдХрд┐рди рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдУрд╡рд░рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛? 0x000 рд╕реЗ 0x01F рддрдХ рдХреА рд╕реАрдорд╛ рдореЗрдВ рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдХрд┐рд╕реА рднреА рдЕрдиреНрдп рдкрддреЗ рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдкрд░ред рдареАрдХ рд╣реИ, рдЕрд░реНрдерд╛рддреН, рдпрджрд┐ рд╣рдо 0xABC
204 рдкрддреЗ рдХреА рдУрд░ рдореБрдбрд╝рддреЗ рд╣реИрдВ, рддреЛ рд╕рдм рдХреБрдЫ рдЬрдЧрд╣ рдкрд░ рд░рд╣реЗрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдирд┐рдЪрд▓реЗ рдкрддреЗ рдХреА рд╕реАрдорд╛ рд╣рдорд╛рд░реЗ рд╕рд╛рде рдУрд╡рд░рд▓реИрдк рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред рдФрд░ 0xABC
804 рдХреБрдЫ рднреА рдмрд░реНрдмрд╛рдж рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рд▓реЗрдХрд┐рди рдЬрдм рдкрддрд╛ 0xABC
004 рд╕реЗ рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╣реИрдВ
, рддреЛ рдЗрд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдирдИ рд╕рд╛рдордЧреНрд░реА рдХреЛ рдХреИрд╢ рд▓рд╛рдЗрди рдореЗрдВ рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдФрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА 0x123
004 рдкрддреЗ рдкрд░ рд╕рдВрдХреНрд░рдордг рдлрд┐рд░ рд╕реЗ рдПрдХ рдЕрдзрд┐рднрд╛рд░ рдХреЛ рдЬрдиреНрдо рджреЗрдЧрд╛ред рдпрджрд┐ рдЖрдк рд▓рдЧрд╛рддрд╛рд░ 0xABC
004 рдФрд░ 0x123
004 рдХреЗ рдмреАрдЪ рдХреВрджрддреЗ рд╣реИрдВ, рддреЛ рдЕрдзрд┐рднрд╛рд░ рд▓рдЧрд╛рддрд╛рд░ рд╣реЛрдЧрд╛ред
рдЖрдЗрдП рдЗрд╕реЗ рдЪрд┐рддреНрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рддреНрд░рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреИрд╢ рдореЗрдВ рдХреЗрд╡рд▓ 8 рд▓рд╛рдЗрдиреЗрдВ рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд░рдВрдЧреЛрдВ рдореЗрдВ рд░рдВрдЧрдирд╛ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред рдореИрдВ рд▓рд╛рдЗрди рдЖрдХрд╛рд░ 0x10 рдмрдирд╛рдКрдВрдЧрд╛, рдпрд╣ рдЪрд┐рддреНрд░ рдореЗрдВ рдкрддреЛрдВ рдХреЛ рдЪрд┐рддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ (рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ рд╡рд╛рд╕реНрддрд╡рд┐рдХ Nios II рдореЗрдВ рд▓рд╛рдЗрди рдЖрдХрд╛рд░ рд╣рдореЗрд╢рд╛ 0x20 рдмрд╛рдЗрдЯреНрд╕ рд╣реИ)ред рдореЗрдореЛрд░реА рд╕рд╢рд░реНрдд рдкреГрд╖реНрдареЛрдВ рдкрд░ рдзрдбрд╝рдХрддрд╛ рд╣реИ рдЬреЛ рдХреИрд╢ рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рд╕рдорд╛рди рдЖрдХрд╛рд░ рдХреЗ рд╣реЛрддреЗ рд╣реИрдВред рдореЗрдореЛрд░реА рдХрд╛ рд▓рд╛рд▓ рдкреГрд╖реНрда рд╣рдореЗрд╢рд╛ рдХреИрд╢ рдХреА рд▓рд╛рд▓ рд░реЗрдЦрд╛, рдирд╛рд░рдВрдЧреА рд╕реЗ рдирд╛рд░рдВрдЧреА рддрдХ рдЬрд╛рдПрдЧрд╛, рдФрд░ рдЗрд╕реА рддрд░рд╣ред рддрджрдиреБрд╕рд╛рд░, рдкреБрд░рд╛рдиреА рд╕рд╛рдордЧреНрд░реА рдЕрдирд▓реЛрдб рдХреА рдЬрд╛рдПрдЧреАред

рдЦреИрд░, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдкреНрд░рдпреЛрдЧ рдХреЗ рджреМрд░рд╛рди рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдЕрдм рд╕реНрдкрд╖реНрдЯ рд╣реИред рдЬрдм рдХрд╛рд░реНрдпреЛрдВ рдХреЛ 4 рдХрд┐рд▓реЛрдмрд╛рдЗрдЯ рджреНрд╡рд╛рд░рд╛ рд╕рдЦреНрддреА рд╕реЗ рдЕрд▓рдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рддреЛ рдЙрдиреНрд╣реЛрдВрдиреЗ рд╕рдорд╛рди рд░рдВрдЧреЛрдВ рдХреЗ рдкреГрд╖реНрдареЛрдВ рдХреЛ рдорд╛рд░рд╛ред рдЗрд╕рд▓рд┐рдП рдХреЛрдб
while (1) { MagicFunction1(); MagicFunction2(); }
рдПрдХ рдХреЗ рд▓рд┐рдП рдХреИрд╢ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдиреЗрддреГрддреНрд╡ рдХрд┐рдпрд╛, рдлрд┐рд░ рджреВрд╕рд░реЗ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдПред рдФрд░ рдЬрдм рд░рд┐рдХреНрддрд┐ 4 рдирд╣реАрдВ рдереА, рд▓реЗрдХрд┐рди 5 рдХрд┐рд▓реЛрдмрд╛рдЗрдЯ рдереЗ, рддреЛ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд░рдВрдЧреЛрдВ рдХреЗ рдмреНрд▓реЙрдХ рдореЗрдВ рд░рдЦрд╛ рдЧрдпрд╛ рдерд╛ред рдХреЛрдИ рд╕рдВрдШрд░реНрд╖ рдирд╣реАрдВ рдерд╛, рд╕рдм рдХреБрдЫ рдмрд┐рдирд╛ рджреЗрд░реА рдХреЗ рдХрд╛рдо рдХрд┐рдпрд╛ред
рдирд┐рд╖реНрдХрд░реНрд╖
рдЬрдм рдореИрдВрдиреЗ рдХрдИ рд╕рд╛рд▓ рдкрд╣рд▓реЗ рдкрдврд╝рд╛ рдХрд┐ рдХреЙрд░реНрдЯреЗрдХреНрд╕ рдП, рдХреЙрд░реНрдЯреЗрдХреНрд╕ рдЖрд░ рдФрд░ рдХреЙрд░реНрдЯреЗрдХреНрд╕ рдПрдо рдХреЛрд░ рдХреА рд▓рд╛рдЗрдиреЗрдВ рдЙрддреНрдкрд╛рджрдХ рдЪреАрдЬреЛрдВ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдИ рдЧрдИ рд╣реИрдВ, рддреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рд╕рд╕реНрддреЗ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХреНрд░рдорд╢рдГ, рдкрд╣рд▓реЗ рддреЛ рдореБрдЭреЗ рд╕рдордЭ рдирд╣реАрдВ рдЖрдпрд╛, рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдХреНрдпрд╛ рдЕрдВрддрд░ рд╣реИ ред рдирд╣реАрдВ, рд╕рд╕реНрддреЗ рд╕рд┐рд╕реНрдЯрдо рд╕рдордЭ рдореЗрдВ рдЖрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдкрд╣рд▓реЗ рджреЛ рдЕрдВрддрд░ рдХреНрдпрд╛ рд╣реИрдВ? рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЪрдХреНрд░рд╡рд╛рдд рд╡реА SoC FPGA рдореЗрдВ рдЙрдкрд▓рдмреНрдз рдХреЛрд░реНрдЯреЗрдХреНрд╕ рдП 9 рдХреЛрд░ рдЦреЗрд▓рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рд▓реЛрд╣реЗ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдХреИрд╢ рдХреА рд╕рднреА рдХрдорд┐рдпрд╛рдВ рдорд╣рд╕реВрд╕ рдХреАрдВред рдХреЛрд░реНрдЯреЗрдХреНрд╕ рдП рдХреЗ рдореВрд▓ рдореЗрдВ рдХрдИ рдХреИрд╢ рд╣реИрдВ ... рдФрд░ рд╕рд┐рд╕реНрдЯрдо рд╡реНрдпрд╡рд╣рд╛рд░ рдХреА рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рд▓рдЧрднрдЧ рд╢реВрдиреНрдп рд╣реИред рд▓реЗрдХрд┐рди рдХреИрд╢ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рддрд╛ рд╣реИред рдХрднреА-рдХрднреА рдпрд╣ рдмреЗрд╣рддрд░ рд╣реЛрддрд╛ рд╣реИ рдпрджрд┐ рд╕рдм рдХреБрдЫ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдмреАрдЯ рдХреЗ рд▓рд┐рдП рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рддреЗрдЬреА рд╕реЗ рдЕрдиреБрдорд╛рдирд┐рдд рд░реВрдк рд╕реЗ рдзреАрдорд╛ рд╣реИред рдпрд╣ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдпрд╛ рдХрд╣реЗрдВ, рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╣реА рд╣реИред
рд▓реЗрдХрд┐рди рдореБрдЦреНрдп рд╕рдорд╕реНрдпрд╛ рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рд▓реЗрдЦ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдЪреАрдЬреЗрдВ рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдХрд┐ рдкреНрд░рдгрд╛рд▓реА рдХрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рд╕реЗ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдореЗрдВ рдмрджрд▓ рдЬрд╛рдПрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдХреЛрдИ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рдХрд┐ рдХреЛрдб рдЬреЛрдбрд╝рдиреЗ рдпрд╛ рдирд┐рдХрд╛рд▓рдиреЗ рдХреЗ рдмрд╛рдж рдлрд╝рдВрдХреНрд╢рди рдХреНрдпрд╛ рдкрддреЗ рдкрд░ рдЧрд┐рд░ рдЬрд╛рдПрдЧрд╛ред 15 рд╕рд╛рд▓ рдкрд╣рд▓реЗ, рдХреЗрдмрд▓ рдЯреЗрд▓реАрд╡рд┐рдЬрди рдбрд┐рдХреЛрдбрд░ рдХреЗ рд▓рд┐рдП рд╕реЗрдЧрд╛ рдЧреЗрдо рдХрдВрд╕реЛрд▓ рдПрдореБрд▓реЗрдЯрд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ, рд╣рдореЗрдВ рдПрдХ рдкреВрд░реА рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ рдмрдирд╛рдирд╛ рдерд╛, рдЬреЛ рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрдкрд╛рджрди рдХреЗ рдмрд╛рдж, SPARC-8 рдХреЛрд░ рдкрд░ рдореЛрдЯреЛрд░реЛрд▓рд╛ рдЕрд╕реЗрдВрдмрд▓рд░ рдХрдорд╛рдВрдб рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддрд╛ рдерд╛ рддрд╛рдХрд┐ рдЙрдирдХрд╛ рдирд┐рд╖реНрдкрд╛рджрди рд╕рдордп рд╣рдореЗрд╢рд╛ рдПрдХ рд╣реА рд╣реЛ (рд╡рд╣рд╛рдБ рдерд╛) рдХреИрд╢ рдХреЗ рдХрд╛рд░рдг, рдЕрдиреНрдпрдерд╛ рд╕рдмрдХреБрдЫ рдмрд╣реБрдд рдХреБрдЫ рдмрджрд▓ рдЧрдпрд╛)ред
рд▓реЗрдХрд┐рди рд╣рдореЗрдВ рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХрдм рд╣реЛрддреА рд╣реИ? рдмреЗрд╢рдХ, рд╕рдордп-рд╕рдордп рдкрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдмрдирд╛рдиреЗ рдХреЗ рджреМрд░рд╛рди (рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ FPGAs рдореЗрдВ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдпрд╣ рдЙрдкрдХрд░рдг рдХреЛ рднреА рд╕реМрдВрдкрдирд╛ рд╕рдВрднрд╡ рд╣реИ, рд▓реЗрдХрд┐рди рддреЗрдЬреА рд╕реЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд╕рд╛рде рдХреБрдЫ рд╡рд┐рд╡рд░рдг рд╣реИрдВ)ред рд▓реЗрдХрд┐рди рдХрдореНрдкреНрдпреВрдЯреЗрд╢рдирд▓ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп, рдпрд╣ рдЗрддрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИред рдЬрдм рддрдХ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рддрдм рдЖрдкрдХреЛ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдХрд┐ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЕрдиреБрднрд╛рдЧ рдирд┐рд░рдВрддрд░ рдХреИрд╢ рдУрд╡рд░рд▓реЛрдб рдХрд╛ рдХрд╛рд░рдг рдирд╣реАрдВ рдмрдирддреЗ рд╣реИрдВред рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдХреИрд╢ рд╕рдорд╕реНрдпрд╛рдПрдВ рдкреИрджрд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЙрддреНрдкрд╛рджрдХрддрд╛ рдмрдврд╝ рдЬрд╛рддреА рд╣реИред
рдЕрдЧрд▓реЗ рд▓реЗрдЦ рдореЗрдВ, рд╣рдо рдЗрд╕ рдмрд╛рдд рдкрд░ рдзреНрдпрд╛рди рджреЗрдВрдЧреЗ рдХрд┐ рдЧреИрд░-рдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдореЗрдореЛрд░реА рдореЗрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдкреВрд░реНрд╡рд╛рдиреБрдорд╛рди рдХреИрд╕реЗ рд▓рдЧрд╛рдпрд╛ рдЬрд╛рдП, рдЬреЛ рд╣рдореЗрд╢рд╛ рдЕрдзрд┐рдХрддрдо рдЧрддрд┐ рд╕реЗ рдЪрд▓рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХрд┐рдпреЛрдВ рд╕реЗ рдЙрддреНрдкрдиреНрди рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдорд╛рдирдХ рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдкрд░ FPGAs рдХреЗ рдирд┐рд╣рд┐рдд рдлрд╛рдпрджреЗ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рддреЗ рд╣реИрдВред
рд╕рдмрд╕реЗ рдЪреМрдХрд╕ рдХреЗ рд▓рд┐рдП
рд╕рдВрдХреНрд╖рд╛рд░рдХ рдкрд╛рдардХ рдкреВрдЫ рд╕рдХрддрд╛ рд╣реИ: "рдХреЛрдб рдХреЗ рдЪрд╛рд░ рдХрд┐рд▓реЛрдмрд╛рдЗрдЯ рдбрд╛рд▓рдиреЗ рдкрд░ рдСрд╕рд┐рд▓реЛрдЧреНрд░рд╛рдо рдЕрдкрд░реНрдпрд╛рдкреНрдд рд░реВрдк рд╕реЗ рдХреНрдпреЛрдВ рдлрдЯ рдЧрдпрд╛ рдерд╛?" рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИред рдпрджрд┐ рдЖрдк рдареАрдХ 4 рдХрд┐рд▓реЛрдмрд╛рдЗрдЯ рдбрд╛рд▓рддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рд╕реНрдореГрддрд┐ рдореЗрдВ рдлрд╝рдВрдХреНрд╢рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрддреЗ рдорд┐рд▓рддреЗ рд╣реИрдВ:
MagicFunction1(): 0200006c: movhi r2,1024 02000070: movi r4,1 02000074: addi r2,r2,4096 02000078: stwio r4,0(r2) 92 IOWR (PIO_0_BASE,0,0); 0200007c: mov r3,zero 02000080: stwio r3,0(r2) 93 IOWR (PIO_0_BASE,0,1); ... 120 IOWR (PIO_0_BASE,0,0); 020000f0: stwio r3,0(r2) 020000f4: ret 131 Nops1024 FuncBetween(): 020000f8: nop 020000fc: nop 02000100: nop 02000104: nop ... 020010ec: nop 020010f0: nop 020010f4: nop 020010f8: ret 135 IOWR (PIO_0_BASE,0,0); MagicFunction2(): 020010fc: movhi r2,1024 02001100: mov r4,zero 02001104: addi r2,r2,4096
рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЦрд░рд╛рдм рддрд░рдВрдЧ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдПрдирдУрдкреА рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддрд╛рдХрд┐
рдореИрдЬрд┐рдХрдлрдВрдХреНрд╢рди 1 () рдлрд╝рдВрдХреНрд╢рди рдХреА рд▓рдВрдмрд╛рдИ рдХреЗ рд╕рд╛рде 4 рдХрд┐рд▓реЛрдмрд╛рдЗрдЯ рдЙрдирдХреА рдорд╛рддреНрд░рд╛ рд╣реЛред рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рдЖрдк рдПрдХ рд╕реБрдВрджрд░ рддрд╕реНрд╡реАрд░ рдХреЗ рд▓рд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ! рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдмрджрд▓реЗрдВ:
volatile void FuncBetween() { Nops256 Nops256 Nops256 Nops64 Nops64 Nops64 Nops16 Nops16 }
рдмрд╛рд░-рдмрд╛рд░ рдореИрдВ рдзреНрдпрд╛рди рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рдбрд╛рд▓рдиреЗ рд╕реЗ рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рдмрд╕ рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рд╕реНрдореГрддрд┐ рдореЗрдВ рдХрд╛рд░реНрдпреЛрдВ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдмрджрд▓рддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдХреЗ рд╕рд╛рде, рд╣рдореЗрдВ рд╡рд╛рдВрдЫрд┐рдд рднрдпрд╛рдирдХ рд╣реЙрд░рд░ рдорд┐рд▓рддрд╛ рд╣реИ:

рдореБрдЭреЗ рдРрд╕рд╛ рд▓рдЧрд╛ рдХрд┐ рдореБрдЦреНрдп рдкрд╛рда рдореЗрдВ рдбрд╛рд▓рд╛ рдЧрдпрд╛ рдРрд╕рд╛ рд╡рд┐рд╡рд░рдг рд╕рднреА рдХреЛ рдореБрдЦреНрдп рд╕реЗ рд╡рд┐рдЪрд▓рд┐рдд рдХрд░ рджреЗрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЙрдиреНрд╣реЗрдВ рдПрдХ рдкреЛрд╕реНрдЯрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдбрд╛рд▓ рджрд┐рдпрд╛ред