
рд╣рдореЗрдВ UDB рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рдкрд╛рд░рдВрдЧрдд рдХрджрдо рдЙрдард╛рдирд╛ рд╣реЛрдЧрд╛ред рдЖрдЬ рд╣рдо рд╕реНрд╡рдЪрд╛рд▓рд┐рдд UDB рд╕рдВрдкрд╛рджрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд┐рдХрд╕рд┐рдд рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди рдбреЗрдЯрд╛ рдореИрдиреБрдЕрд▓ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрд░реНрдз-рдореИрдиреБрдЕрд▓ рдореЛрдб рдореЗрдВред рдЗрд╕ рдЙрдкрдХрд░рдг рдХреЛ рдорд╛рд╣рд┐рд░ рдХрд░рдиреЗ рдореЗрдВ рдПрдХ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рдорджрдж рд╣реИ AN82156 - PSoC 3, PSoC 4, рдФрд░ PSoC 5LP - UDB Datapaths рдХреЗ рд╕рд╛рде PSoC рдирд┐рд░реНрдорд╛рддрд╛ рдШрдЯрдХ рдбрд┐рдЬрд╛рдЗрди рдХрд░рдирд╛ред рджрд░рдЕрд╕рд▓, рдореИрдВрдиреЗ рдЦреБрдж рдЗрд╕рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд┐рдпрд╛ред
рд╢рд╛рдпрдж,
UDB рдкрд░ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдХреЗ рд╣рдорд╛рд░реЗ
рдЕрдиреБрд╡рд╛рджреЛрдВ рдХреЛ рдкрдврд╝рддреЗ рд╣реБрдП, рдХрд┐рд╕реА рдиреЗ рд╡рд╣рд╛рдВ рд╕реЗ рдЬреНрдЮрд╛рди рдХреЛ рдЕрднреНрдпрд╛рд╕ рдореЗрдВ рд▓рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдФрд░ рджреЗрдЦрд╛ рдХрд┐ рдкреНрд░рдХрд╛рд╢рдиреЛрдВ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╕рднреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ UDB рд╕рдВрдкрд╛рджрдХ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИрдВред рдпрд╣ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдиреЗ UDB рд╕рдВрдкрд╛рджрдХ рдореЗрдВ рдХреБрдЫ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдмреЛрдЭрд┐рд▓ рддрдВрддреНрд░ рд░рдЦрдирд╛ рд╢реБрд░реВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдерд╛ред AN82156 рдХреЗ рд▓реЗрдЦрдХреЛрдВ рдХрд╛ рддрд░реНрдХ рд╣реИ рдХрд┐ UDB рд╕рдВрдкрд╛рджрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЪреАрдЬреЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдВрдЧреА:
- рд╕рдорд╛рдирд╛рдВрддрд░ рдбреЗрдЯрд╛ рдЗрдирдкреБрдЯ рдФрд░ рдЖрдЙрдЯрдкреБрдЯ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░реЗрдВ;
- рдЧрддрд┐рд╢реАрд▓ FIFO рдкреНрд░рдмрдВрдзрди рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░реЗрдВ;
- рдПрдлрдЖрдИрдПрдлрдУ рдШрдбрд╝реА рд╕рдВрдХреЗрдд рдХреЗ рд╡реНрдпреБрддреНрдХреНрд░рдо рдХреЛ рд▓рд╛рдЧреВ рдХрд░реЗрдВ;
- рд╕реАрдЖрд░рд╕реА рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд▓рд╛рдЧреВ рдХрд░реЗрдВ;
- PRS рдлрд╝рдВрдХреНрд╢рди рд▓рд╛рдЧреВ рдХрд░реЗрдВ;
- рдЖрдиреЗ рд╡рд╛рд▓реЗ рд╣рд╕реНрддрд╛рдВрддрд░рдг рдХреА рдкрд╕рдВрдж рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛;
- рдЧрддрд┐рд╢реАрд▓ рдЖрд╡рдХ рдкреНрд░рд╡рд╛рд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░реЗрдВред
рдЕрдкрдиреЗ рдЖрдк рд╕реЗ, рдореИрдВ рдЬреЛрдбрд╝ рджреВрдВрдЧрд╛ рдХрд┐ рдореБрдЭреЗ рдпрд╣ рдирд╣реАрдВ рдорд┐рд▓рд╛ рдХрд┐ рдпреВрдбреАрдмреА рд╕рдВрдкрд╛рджрдХ рдореЗрдВ рдиреАрдмрд▓реНрд╕ рдХреЗ рдХреНрд░рдорд╛рдВрдХрди рдХреЛ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдПред
рдпрджрд┐ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдЗрди рдХрд╛рд░реНрдпреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рд╡реЗрд░рд┐рд▓реЙрдЧ рдХреЛрдб рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛ред рдореИрдВрдиреЗ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ "рд▓рд┐рдЦрдирд╛" рдХреЗ рдмрдЬрд╛рдп "рд▓рд┐рдЦрдирд╛" рд╢рдмреНрдж рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ред рдЗрд╕ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдХреЛ рдЬрд╛рдирдирд╛ рдкрдарди рд╕реНрддрд░ рдкрд░ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред рдореЗрд░рд╛ рдорддрд▓рдм рд╣реИ, рдЖрдкрдХреЛ рдпрд╣ рд╕рдордЭрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕ рдбрд┐рдЬрд╛рдЗрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдФрд░ рдЦрд░реЛрдВрдЪ рд╕реЗ рд▓рд┐рдЦрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рд╣рдореЗрд╢рд╛ рдЙрдкрдпреЛрдЧреА рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдЬреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЙрд╕рдХреЗ рд▓рд┐рдП рдпрд╣ рдХреМрд╢рд▓ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИред
рдПрдХ рд╣рд▓ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╕рдорд╕реНрдпрд╛ рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВрдиреЗ рдПрдХ рдЕрд░реНрдз-рд╕рд┐рдВрдереЗрдЯрд┐рдХ рдорд╛рдорд▓рд╛ рдЪреБрдирд╛ред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдореИрдВрдиреЗ рдХреБрдЫ рдбреЗрдЯрд╛ рдХреЛ рд╕рдорд╛рдирд╛рдВрддрд░ рдкреЛрд░реНрдЯ рдкрд░ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рдФрд░ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рд╣рд╛рде рдореЗрдВ рдХреНрдпрд╛ рд╣реИ, рдЯреЗрдХреНрд╕реНрдЯ рдПрд▓рд╕реАрдбреА рдореЗрдВ рдПрдХ рд╕рдорд╛рдирд╛рдВрддрд░ рдкреЛрд░реНрдЯ рд╣реИред рдореИрдВрдиреЗ рдЗрд╕реЗ MZ3D 3D рдкреНрд░рд┐рдВрдЯрд░ рд╕реЗ рддреАрди рд╕рд╛рд▓ рдкрд╣рд▓реЗ рдирд┐рдХрд╛рд▓рд╛ рдерд╛ рдЬрдм рдореИрдВрдиреЗ рдмрд╛рдж рд╡рд╛рд▓реЗ рдХреЛ STM32 рдореЗрдВ рдЯреНрд░рд╛рдВрд╕рдкреНрд▓рд╛рдВрдЯ рдХрд┐рдпрд╛ рдерд╛ред рдЗрд╕рд▓рд┐рдП, рдорд╛рдорд▓рд╛ рдЕрд░реНрдз-рд╕рд┐рдВрдереЗрдЯрд┐рдХ рд╣реИ: рдЖрдЬ, рдРрд╕реЗ рд╕рдВрдХреЗрддрдХреЛрдВ рдореЗрдВ рдЖрдорддреМрд░ рдкрд░ рдПрдХ I2C рдЗрдирдкреБрдЯ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЬреАрд╡рди рдореЗрдВ рддрд╛рд░реЛрдВ рдХреЗ рдвреЗрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЖрдзреБрдирд┐рдХ рдПрд▓рд╕реАрдбреА рдореЗрдВ рд╕рдорд╛рдирд╛рдВрддрд░ рдкреЛрд░реНрдЯ рднреА рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рд░ рдХреЛрдИ рдЙрдиреНрд╣реЗрдВ рдкреНрд░рдпреЛрдЧ рдХреЛ рджреЛрд╣рд░рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИред
Reprap.org рд╕реЗ рд▓реА рдЧрдИ рдкреНрд░рджрд░реНрд╢рди рд╕реНрд╡рд┐рдЪрд┐рдВрдЧ рдпреЛрдЬрдирд╛ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ (рдпрд╣ рдЖрд╕рд╛рди рдирд╣реАрдВ рдерд╛, рдореЗрд░рд╛ рдкреНрд░рджрд╛рддрд╛ рдЗрд╕ рд╕рд╛рдЗрдЯ рдХреЛ рдмреНрд▓реЙрдХ рдХрд░рддрд╛ рд╣реИ, рд╕рд╛рде рд╣реА рд╕рд╛рде рдХрдИ рдЕрдиреНрдп рддрдХрдиреАрдХреА рднреА рд╣реИрдВ, рдпрд╣ рдЗрд╕ рддрдереНрдп рд╕реЗ рдкреНрд░реЗрд░рд┐рдд рд╣реИ рдХрд┐ рдпрд╣ рдЙрд╕реА рдЖрдИрдкреА рдкрд░ рд░рд╣рддрд╛ рд╣реИ рдЬреИрд╕реЗ рдХреЛрдИ рдЕрд╡рд░реБрджреНрдз рд╣реИ)ред

рдорд╣рд╛рди рд▓реЗрдЖрдЙрдЯ! рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдореБрдЭреЗ рдкрдврд╝рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╕реЛрдЪрдирд╛ рд╣реИ: рдПрд▓рд╕реАрдбреА рдореЗрдВ рдбреЗрдЯрд╛ рдХреЗрд╡рд▓ рд▓рд┐рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдЖрд░ / рдбрдмреНрд▓реНрдпреВ рд▓рд╛рдЗрди рдЧреНрд░рд╛рдЙрдВрдбреЗрдб рд╣реИ рдФрд░ рдХрдиреЗрдХреНрдЯрд░ рдкрд░ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИ)ред рджреВрд╕рд░реЗ, рдбреЗрдЯрд╛ рдПрдХ 4-рдмрд┐рдЯ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдЖрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рд╣рдо рди рдХреЗрд╡рд▓ рд╕рдорд╛рдирд╛рдВрддрд░ рдЖрдЙрдЯрдкреБрдЯ рдХрд╛ рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдмрд▓реНрдХрд┐ рдХреБрддрд░рдиреЗ рдХреЗ рдХреНрд░рдордкрд░рд┐рд╡рд░реНрддрди рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреА рднреА рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдкрд░рд┐рдпреЛрдЬрдирд╛ рдирд┐рд░реНрдорд╛рдг
рдЗрд╕рд▓рд┐рдП, PSoC рдирд┐рд░реНрдорд╛рддрд╛ рд▓реЙрдиреНрдЪ рдХрд░реЗрдВ рдФрд░
рдлрд╝рд╛рдЗрд▓-> рдирдпрд╛-> рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЪреБрдиреЗрдВ :

рдЕрдЧрд▓рд╛, рдореИрдВ рдЕрдкрдирд╛ рдмреНрд░реЗрдбрдмреЛрд░реНрдб рдЪреБрдирддрд╛ рд╣реВрдВ:

рдЕрдЧрд▓рд╛ рдЦрд╛рд▓реА рдЖрд░реЗрдЦ рд╣реИ:

рдореИрдВ рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ
рдмреБрд▓рд╛рдКрдВрдЧрд╛ LCDTest2 :

рдЕрдм, рдкрд╣рд▓реЗ рдХреА рддрд░рд╣,
рдЕрд╡рдпрд╡ рдЯреИрдм рдкрд░ рдЬрд╛рдПрдВ:

рдФрд░, рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рджрд╛рдпрд╛рдБ рдорд╛рдЙрд╕ рдмрдЯрди рджрдмрд╛рдПрдБ, рдФрд░ рдлрд┐рд░
Add Component Item рдЪреБрдиреЗрдВ ред

рдФрд░ рдпрд╣рд╛рдВ рдЖрдкрдХреЛ
рд╕рд┐рдВрдмрд▓ рд╡рд┐рдЬрд╛рд░реНрдб рдХреЛ рдЪреБрдирдирд╛ рд╣реЛрдЧрд╛ред рдПрдХ рдирд╛рдо рджреЗрдВ ... рдареАрдХ рд╣реИ, рдЪрд▓реЛ
LCD4bit рдХрд╣рддреЗ рд╣реИрдВред

рдореИрдВрдиреЗ рдкреНрд░рддреАрдХ рдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреЛрд░реНрдЯ рд╕реМрдВрдкреЗ:

рдХреНрд▓реЙрдХ рдХреНрд▓реЙрдХ рдЗрдирдкреБрдЯ рд╣реИред рдПрд▓рд╕реАрдбреА рдЙрдкрд╕рд░реНрдЧ рд╡рд╛рд▓реЗ рдкреЛрд░реНрдЯ рдорд╛рдирдХ рдПрд▓рд╕реАрдбреА рдкреЛрд░реНрдЯ рд╣реИрдВред
рднреВрдЦрд╛ - рдЖрдЙрдЯрдкреБрдЯ рдбреАрдПрдордП рдЗрдХрд╛рдИ рдХреЛ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдПрдлрдЖрдИрдПрдлрдУ рдореЗрдВ рдЦрд╛рд▓реА рдЬрдЧрд╣ рд╣реИ,
рдЖрд░рдЬреАрдмреА рдПрд▓рдИрдбреА рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд▓реЗрдЦ рдореЗрдВ рд╡рд┐рдЪрд╛рд░ рдкрд░ рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ рдереАред рдЪрд░рд┐рддреНрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдареАрдХ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред

рдЕрдм, рдЗрд╕ рдкреНрд░рддреАрдХ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдПрдХ рд╡реЗрд░рд┐рд▓реЙрдЧ рдЯреЗрдореНрдкрд▓реЗрдЯ рдЙрддреНрдкрдиреНрди рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдкреНрд░рддреАрдХ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рд╕рд╣реА рдорд╛рдЙрд╕ рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ рд╕рдВрджрд░реНрдн рдореЗрдиреВ рдореЗрдВ
рд╡реЗрд░рд┐рд▓реЙрдЧ рдЬрдирд░реЗрдЯ рдХрд░реЗрдВ рдЪреБрдиреЗрдВред

рд╣рдореЗрдВ рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЪрд┐рддреНрд░ рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ (рдкрд╛рда рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИ):

рд╣рдордиреЗ рдПрдХ рдореЙрдбреНрдпреВрд▓ рдФрд░ рдХреБрдЫ рд╕реЗрдХреНрд╢рди рдмрдирд╛рдП рд╣реИрдВред рд▓реЗрдХрд┐рди рдЙрдиреНрд╣реЛрдВрдиреЗ рдЕрднреА рддрдХ рджрддреНрддрдкрде рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред рдЗрд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЯреНрд░реА рдкрд░ рдЬрд╛рдПрдВ,
LCD4bit.v рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ, рджрд╛рдПрдВ рдорд╛рдЙрд╕ рдмрдЯрди рджрдмрд╛рдПрдВ рдФрд░ рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рд╡рд╛рд▓реЗ рд╕рдВрджрд░реНрдн рдореЗрдиреВ рдореЗрдВ
рдбрд╛рдЯрд╛рдкрде рдХреЙрдиреНрдлрд┐рдЧрд░ рдЯреВрд▓ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ:

рд╣рдорд╛рд░реЗ рд╕рд╛рдордиреЗ рдПрдХ рд╡рд┐рдВрдбреЛ рдЦреБрд▓рддреА рд╣реИ, рдЬреЛ рдЕрдм рдХреЗ рд▓рд┐рдП рдореИрдВ рдХреЗрд╡рд▓ рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рджрд┐рдЦрд╛рдКрдВрдЧрд╛:

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

рдкреНрд░рдХрдЯ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рд╕рдВрд╡рд╛рдж рдореЗрдВ рдХреМрди рд╕рд╛ рд╡рд┐рдХрд▓реНрдк рдЪреБрдирдирд╛ рд╣реИ?

рд╕рд╡рд╛рд▓ рдЬрд┐рддрдирд╛ рд▓рдЧрддрд╛ рд╣реИ рдЙрд╕рд╕реЗ рдереЛрдбрд╝рд╛ рдЬреНрдпрд╛рджрд╛ рдЧрдВрднреАрд░ рд╣реИред рдореБрдЭреЗ рдЕрдЧрд▓реЗ рдкреИрд░рд╛рдЧреНрд░рд╛рдл рдкрд░ рднреА рдкреНрд░рдХрд╛рд╢ рдбрд╛рд▓рдиреЗ рджреЗрдВ рддрд╛рдХрд┐ рдХреЛрдИ рднреА рдкрдХрдбрд╝рд╛ рди рдЬрд╛рдП (рдореИрдВрдиреЗ рдЦреБрдж рдХреЛ рдкрдХрдбрд╝ рд▓рд┐рдпрд╛, рдФрд░ рдлрд┐рд░ рдореБрдЭреЗ рдЬреЛ рдорд┐рд▓рд╛ рдЙрд╕рд╕реЗ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдкреНрд░рд╢реНрди рджреЗрдЦреЗ, рдФрд░ рдХрд┐рд╕реА рдиреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрдирдХрд╛ рдЙрддреНрддрд░ рдирд╣реАрдВ рджрд┐рдпрд╛, рдФрд░ рдЬрд╡рд╛рдм
AN82156 рдореЗрдВ рд╣реИ , рдЖрдкрдХреЛ рдмрд╕ рддрд┐рд░рдЫреЗ рдкрдврд╝рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рд╡рд╣рд╛рдВ рдХрд╣рд╛ рдЧрдпрд╛ рд╣реИ) рд▓рдШреБ рдЕрд╕рдВрдЧрдд рд╡рд╛рдХреНрдпрд╛рдВрд╢)ред
рдпрджрд┐ рдЖрдк рд╕рдорд╛рдирд╛рдВрддрд░ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ CY_PSOC3_DP рд╡рд┐рдХрд▓реНрдк рдЪреБрдирдирд╛ рд╣реЛрдЧрд╛ред рд╕рдорд╛рдирд╛рдВрддрд░ рдбреЗрдЯрд╛ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдк рдореЗрдВ рдкреЛрд░реНрдЯ рдирд╣реАрдВ рд╣реЛрдВрдЧреЗред
So. рдЙрджрд╛рд╣рд░рдг рдХреЛ LCD_DP рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ:

рдареАрдХ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ рдкрд░рд┐рдгрд╛рдо рдХреЛ рд╕рд╣реЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╣рдордд рд╣реЛрддреЗ рд╣реБрдП,
рдЕрднреА рдХреЗ рд▓рд┐рдП рдбрд╛рдЯрд╛рдкрде рдХреЙрдиреНрдлрд┐рдЧрд░ рдЯреВрд▓ рдХреЛ рдмрдВрдж рдХрд░реЗрдВ рд╣рдо рдмрд╛рдж рдореЗрдВ рдпрд╣рд╛рдВ рд╡рд╛рдкрд╕ рдЖрдПрдВрдЧреЗред
рд╣рдорд╛рд░реЗ рд╡реЗрд░рд┐рд▓реЙрдЧ рдХреЛрдб рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рд╣реБрдЖ рд╣реИред рдЕрдм рдЗрд╕рдореЗрдВ рджрддреНрддрдкрде рд╣реИред рдЙрд╕рдХреА рд╢реБрд░реБрдЖрдд рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдкрдардиреАрдп рд╣реИред рдпрд╣ рдбрд░рд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИ, рдЗрд╕реЗ
рдбрд╛рдЯрд╛рдкрде рдХреЙрдиреНрдлрд┐рдЧ рдЯреВрд▓ рджреНрд╡рд╛рд░рд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдФрд░ рд╣рдо рджрддреНрддрдкрд╛рда рд╡рд░реНрдгрди рдХреЗ рдЕрдВрдд рдкрд░ рд╢рд╛рд╕рди рдХрд░реЗрдВрдЧреЗред рд╣рдорд╛рд░реА рд╕рд╛рдЗрдЯ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреА рд╣реИ
(рдЗрд╕ рдмрд┐рдВрджреБ рд╕реЗ рдпрд╣ рд╕рдм рдХреБрдЫ рдкрд╛рда рд░реВрдк рдореЗрдВ рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ)ред)) LCD_DP( /* input */ .reset(1'b0), /* input */ .clk(1'b0), /* input [02:00] */ .cs_addr(3'b0), /* input */ .route_si(1'b0), /* input */ .route_ci(1'b0), /* input */ .f0_load(1'b0), /* input */ .f1_load(1'b0), /* input */ .d0_load(1'b0), /* input */ .d1_load(1'b0), /* output */ .ce0(), /* output */ .cl0(), /* output */ .z0(), /* output */ .ff0(), /* output */ .ce1(), /* output */ .cl1(), /* output */ .z1(), /* output */ .ff1(), /* output */ .ov_msb(), /* output */ .co_msb(), /* output */ .cmsb(), /* output */ .so(), /* output */ .f0_bus_stat(), /* output */ .f0_blk_stat(), /* output */ .f1_bus_stat(), /* output */ .f1_blk_stat(), /* input */ .ci(1'b0), // Carry in from previous stage /* output */ .co(), // Carry out to next stage /* input */ .sir(1'b0), // Shift in from right side /* output */ .sor(), // Shift out to right side /* input */ .sil(1'b0), // Shift in from left side /* output */ .sol(), // Shift out to left side /* input */ .msbi(1'b0), // MSB chain in /* output */ .msbo(), // MSB chain out /* input [01:00] */ .cei(2'b0), // Compare equal in from prev stage /* output [01:00] */ .ceo(), // Compare equal out to next stage /* input [01:00] */ .cli(2'b0), // Compare less than in from prv stage /* output [01:00] */ .clo(), // Compare less than out to next stage /* input [01:00] */ .zi(2'b0), // Zero detect in from previous stage /* output [01:00] */ .zo(), // Zero detect out to next stage /* input [01:00] */ .fi(2'b0), // 0xFF detect in from previous stage /* output [01:00] */ .fo(), // 0xFF detect out to next stage /* input [01:00] */ .capi(2'b0), // Software capture from previous stage /* output [01:00] */ .capo(), // Software capture to next stage /* input */ .cfbi(1'b0), // CRC Feedback in from previous stage /* output */ .cfbo(), // CRC Feedback out to next stage /* input [07:00] */ .pi(8'b0), // Parallel data port /* output [07:00] */ .po() // Parallel data port );
рдбрд░рд╛рд╡рдирд╛? рдЕрдм рд╣рдо рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдПрдВрдЧреЗ рдХрд┐ рдХреНрдпрд╛ рд╣реИ - рдпрд╣ рдбрд░рд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЗрд╕ рдкрд╛рда рдореЗрдВ рддреАрди рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕рдореВрд╣ рд╣реИрдВред рдЪрд▓реЛ рдкреНрд░рд▓реЗрдЦрди рдХреЗ рдЕрдиреБрд╡рд╛рдж рдХреЛ рдпрд╛рдж рдХрд░рддреЗ рд╣реИрдВред рдЪрд┐рддреНрд░ рдореЗрдВ рджрддреНрддрдкрде рдХреИрд╕рд╛ рджрд┐рдЦ рд░рд╣рд╛ рдерд╛? рдореИрдВ рддреБрд░рдВрдд рдЙрди рдЬрдЧрд╣реЛрдВ рдкрд░ рдзреНрдпрд╛рди рджреВрдВрдЧрд╛ рдЬрд┐рдирдореЗрдВ рд╕рдореВрд╣ "1", "2" рдФрд░ "3" рд╣реИрдВред

рджрд░рдЕрд╕рд▓, рд╡реЗрд░рд┐рд▓реЙрдЧ рдХреЛрдб рдореЗрдВ рдмрдВрджрд░рдЧрд╛рд╣реЛрдВ рдХрд╛ рдкрд╣рд▓рд╛ рд╕рдореВрд╣ рдЗрдирдкреБрдЯ рд╣реИред рдЗрдирдкреБрдЯ рдорд▓реНрдЯреАрдкреНрд▓реЗрдХреНрд╕ рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ рдирд╛рдореЛрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░реЗрдВ (рдЪрд┐рддреНрд░ рдореЗрдВ "1") рдФрд░ рдХреЛрдб рдореЗрдВ рд╕рдВрдХреЗрддреЛрдВ рдХреЗ рдирд╛рдоред
рдЕрдм рд╕рднреА рдЗрдирдкреБрдЯ рд╢реВрдиреНрдп рд╣реИрдВред рд╣рдореЗрдВ рдХреНрд▓реЙрдХ рдЗрдирдкреБрдЯ рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рд╣рдо рдЫрд╣ рдЗрдирдкреБрдЯ рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рдЖрдЧреЗ рдмрдврд╝рд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ UDB рдПрдбрд┐рдЯрд░ рдореЗрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдпреЗ рдЗрдирдкреБрдЯ рд╣реИрдВ:
/* input */ .reset(1'b0), /* input */ .clk(1'b0), /* input [02:00] */ .cs_addr(3'b0), /* input */ .route_si(1'b0), /* input */ .route_ci(1'b0), /* input */ .f0_load(1'b0), /* input */ .f1_load(1'b0), /* input */ .d0_load(1'b0), /* input */ .d1_load(1'b0),
рджреВрд╕рд░рд╛ рд╕рдореВрд╣ рдирд┐рдХрд╛рд╕ рд╣реИред рдХреЛрдб рдореЗрдВ рдирд╛рдо рдЖрдЙрдЯрдкреБрдЯ рдорд▓реНрдЯреАрдкреНрд▓реЗрдХреНрд╕рд░ "2" рдХреЗ рдЗрдирдкреБрдЯ рдХреЗ рдирд╛рдореЛрдВ рд╕реЗ рднреА рдореЗрд▓ рдЦрд╛рддреЗ рд╣реИрдВред
/* output */ .ce0(), /* output */ .cl0(), /* output */ .z0(), /* output */ .ff0(), /* output */ .ce1(), /* output */ .cl1(), /* output */ .z1(), /* output */ .ff1(), /* output */ .ov_msb(), /* output */ .co_msb(), /* output */ .cmsb(), /* output */ .so(), /* output */ .f0_bus_stat(), /* output */ .f0_blk_stat(), /* output */ .f1_bus_stat(), /* output */ .f1_blk_stat(),
рдХреЗрд╡рд▓ рджреА рдЧрдИ рджрддреНрддрдкрде рдкреНрд░рдЬрд╛рддрд┐ рдореЗрдВ рддреАрд╕рд░рд╛ рд╕рдореВрд╣ рд╣реИ (рдЕрдиреНрдп рдХреЗ рдкрд╛рд╕ рдХреЛрдИ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП, рдХреЛрдИ рд╕рдорд╛рдирд╛рдВрддрд░ рдбреЗрдЯрд╛ рдирд╣реАрдВ рд╣реИрдВ)ред рдпреЗ рдЖрдВрддрд░рд┐рдХ рдбрд╛рдЯрд╛рдкрде рд╕рдВрдХреЗрдд рд╣реИрдВ рдЬрд┐рдирдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЖрдк рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдПрдХ рд╕рд╛рде рдЪреЗрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рдЕрдиреНрдп рдЙрдкрдпреЛрдЧреА рдХреНрд░рд┐рдпрд╛рдПрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдХреЛрдб рдореЗрдВ рдирд╛рдо рдЖрдВрдХрдбрд╝реЗ рдореЗрдВ рдмрд┐рдЦрд░реЗ рд╣реБрдП рдЖрдВрддрд░рд┐рдХ рд╕рдВрдХреЗрддреЛрдВ рдХреЗ рдирд╛рдореЛрдВ рдХреЗ рд╕рд╛рде рднреА рдореЗрд▓ рдЦрд╛рддреЗ рд╣реИрдВред рд╣рдо рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ (рд╕реВрдЪреА рдореЗрдВ рдЕрдВрддрд┐рдо, рдЙрд╕рдХрд╛ рдирд╛рдо
рдкреАрдУ рд╣реИ ) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдорд╛рдирд╛рдВрддрд░ рдбреЗрдЯрд╛ рдХреЛ рд╕реАрдзреЗ рдЪрд┐рдк рдХреЗ рдкреИрд░реЛрдВ рдореЗрдВ рдЖрдЙрдЯрдкреБрдЯ рдХрд░реЗрдВрдЧреЗред
/* input */ .ci(1'b0), // Carry in from previous stage /* output */ .co(), // Carry out to next stage /* input */ .sir(1'b0), // Shift in from right side /* output */ .sor(), // Shift out to right side /* input */ .sil(1'b0), // Shift in from left side /* output */ .sol(), // Shift out to left side /* input */ .msbi(1'b0), // MSB chain in /* output */ .msbo(), // MSB chain out /* input [01:00] */ .cei(2'b0), // Compare equal in from prev stage /* output [01:00] */ .ceo(), // Compare equal out to next stage /* input [01:00] */ .cli(2'b0), // Compare less than in from prv stage /* output [01:00] */ .clo(), // Compare less than out to next stage /* input [01:00] */ .zi(2'b0), // Zero detect in from previous stage /* output [01:00] */ .zo(), // Zero detect out to next stage /* input [01:00] */ .fi(2'b0), // 0xFF detect in from previous stage /* output [01:00] */ .fo(), // 0xFF detect out to next stage /* input [01:00] */ .capi(2'b0), // Software capture from previous stage /* output [01:00] */ .capo(), // Software capture to next stage /* input */ .cfbi(1'b0), // CRC Feedback in from previous stage /* output */ .cfbo(), // CRC Feedback out to next stage /* input [07:00] */ .pi(8'b0), // Parallel data port /* output [07:00] */ .po() // Parallel data port );
So. рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рд╣рдореЗрдВ рдЗрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдЗрдирдкреБрдЯ рдФрд░ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдЕрдкрдиреА рд╕рдВрд╕реНрдерд╛рдУрдВ рд╕реЗ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛, рдФрд░ рдмрд╛рдХреА - рдмрд╕ рдЙрдиреНрд╣реЗрдВ рдЙрд╕ рд░реВрдк рдореЗрдВ рдЫреЛрдбрд╝ рджреЗрдВ рдЬрд┐рд╕рдореЗрдВ рд╣рдордиреЗ рдЙрдиреНрд╣реЗрдВ рдмрдирд╛рдпрд╛ рдерд╛ред
рд╕рдВрджрд░реНрдн рдХреЗ рд░реВрдк рдореЗрдВ UDB рд╕рдВрдкрд╛рджрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛
рдФрд░ рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд░рд┐рдХреНрдд рд╣реИ, рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рд╣рдореЗрдВ рдХрд╣рд╛рдБ рдФрд░ рдХреНрдпрд╛ рд▓рд┐рдЦрдирд╛ рд╣реИред рдпрд╣ рд╕рдордЭрдирд╛ рдмрд╛рдХреА рд╣реИ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╣рдо рд╡рд╣рд╛рдВ рдХреИрд╕реЗ рдкреНрд░рд╡реЗрд╢ рдХрд░реЗрдВрдЧреЗред рдРрд╕рд╛ рд╣реБрдЖ рд╣реИ рдХрд┐ рдореИрдВ рд╣рд░ рджрд┐рди рд╡реЗрд░рд┐рд▓реЙрдЧ рднрд╛рд╖рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рд╢рдмреНрджреЛрдВ рдореЗрдВ рдореБрдЭреЗ рд╕рдм рдХреБрдЫ рдпрд╛рдж рд╣реИ, рдФрд░ рдореЗрд░реЗ рд▓рд┐рдП рдЦрд░реЛрдВрдЪ рд╕реЗ рд▓рд┐рдЦрдирд╛ рд╣рдореЗрд╢рд╛ рдПрдХ рддрдирд╛рд╡рдкреВрд░реНрдг рд╕реНрдерд┐рддрд┐ рд╣реИред рдЬрдм рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЪрд▓ рд░рд╣реА рд╣реИ, рддреЛ рдпрд╣ рд╕рдм рдпрд╛рдж рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдХреБрдЫ рдорд╣реАрдиреЛрдВ рдХреА рдирд┐рд╖реНрдХреНрд░рд┐рдпрддрд╛ рдХреЗ рдмрд╛рдж рдореБрдЭреЗ рдЦрд░реЛрдВрдЪ рд╕реЗ рдХреБрдЫ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдореБрдЭреЗ рдЕрдм рдЗрд╕ рд╡рд┐рд╢реЗрд╖ рднрд╛рд╖рд╛ рдХреЗ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рд╡рд┐рд╡рд░рдг рдпрд╛рдж рдирд╣реАрдВ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдореЗрд░рд╛ рд╕реБрдЭрд╛рд╡ рд╣реИ рдХрд┐ рд╡рд┐рдХрд╛рд╕ рдХреЗ рдорд╛рд╣реМрд▓ рдХреЛ рд╣рдорд╛рд░реА рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣реЗрдВред
рд╕реНрд╡-рдирд┐рдЧрд░рд╛рдиреА рдХреЗ рд▓рд┐рдП UDB рд╕рдВрдкрд╛рджрдХ Verilog рдХреЛрдб рдмрдирд╛рддрд╛ рд╣реИред рд╣рдо рдЗрд╕ рддрдереНрдп рдХрд╛ рд▓рд╛рдн рдЙрдард╛рддреЗ рд╣реИрдВ рдХрд┐ рдореБрдЦреНрдп рд╕рд░реНрдХрд┐рдЯ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдШрдЯрдХ рд╕рдВрдХрд▓рд┐рдд рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдпреВрдбреАрдмреА рд╕рдВрдкрд╛рджрдХ рдореЗрдВ рдПрдХ рд╕рд╣рд╛рдпрдХ рдШрдЯрдХ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдпрд╣ рдЖрдЙрдЯрдкреБрдЯ рдХреЛрдб рдореЗрдВ рдирд╣реАрдВ рдЖрдПрдЧрд╛ред рд╣рдо рд╡рд╣рд╛рдВ рдПрдХ рдСрдЯреЛрдореЗрдЯрди рддреИрдпрд╛рд░ рдХрд░реЗрдВрдЧреЗ, рд╣рдо рдбрд╛рдЯрд╛рдкрде рдЗрдирдкреБрдЯ рдФрд░ рдЖрдЙрдЯрдкреБрдЯ рдХрд╛ рдПрдХ рдореЛрдЯрд╛ рд╕рдорд╛рдпреЛрдЬрди рдХрд░реЗрдВрдЧреЗ, рдФрд░ рдлрд┐рд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рдкрд╛рда рдХреЛ рд╣рдорд╛рд░реЗ verilog рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдВрдЧреЗ рдФрд░ рд╕рдм рдХреБрдЫ рд░рдЪрдирд╛рддреНрдордХ рд░реВрдк рд╕реЗ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░реЗрдВрдЧреЗред рдпрд╣ рд╡реЗрд░рд┐рд▓реЙрдЧ рд╕рд┐рдВрдЯреИрдХреНрд╕ рд╡рд┐рд╡рд░рдг рдХреЛ рдпрд╛рдж рд░рдЦрдиреЗ рдФрд░ рд╕реНрдХреНрд░реИрдЪ рд╕реЗ рд╕рдм рдХреБрдЫ рд▓рд┐рдЦрдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЬреЛ рдХреЛрдИ рднреА рд╡реЗрд░рд┐рд▓реЙрдЧ рдХрд╛ рд▓рдЧрд╛рддрд╛рд░ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, рдЦрд░реЛрдВрдЪ рд╕реЗ рд▓рд┐рдЦрдирд╛ рдЖрд╕рд╛рди рд╣реЛрдЧрд╛: рд░рдЪрдирд╛рддреНрдордХ рдкреВрд░реНрдгрддрд╛, рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рдЬрд▓реНрдж рд╣реА рджреЗрдЦреЗрдВрдЧреЗ, рд╕рд░рд▓ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рд╕рдордп)ред
рддреЛ, рд╣рдо рдПрдХ рд╕рд╣рд╛рдпрдХ рдШрдЯрдХ рдмрдирд╛рдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рд╣рд╛рде рдХреА рд╕рд╛рдорд╛рдиреНрдп рдЧрддрд┐ рдХреЗ рд╕рд╛рде рд╣рдо рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдПрдХ рдирдпрд╛ рддрддреНрд╡ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ:

рдпрд╣ рдПрдХ UDB рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рд╣реЛрдЧрд╛, рдЗрд╕реЗ
UDBhelper рдХрд╣рддреЗ рд╣реИрдВ:

рдпрд╣ рдорд╢реАрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрдиреЗ рдХрд╛ рд╕рдордп рд╣реИ, рдЬрд┐рд╕реЗ рд╣рдо рдмрдирд╛рдИ рдЧрдИ рд╢реАрдЯ рдкрд░ рд░рдЦреЗрдВрдЧреЗред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдХрд┐рд╕ рд╕рдордп рдЖрд░реЗрдЦ рдХреЗ рд╕рд╛рде рдЗрд╕реЗ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рд┐рдП:


So. рдкрд╣рд▓реЗ рдЖрдкрдХреЛ рдЖрд░рдПрд╕ рд╕рд┐рдЧреНрдирд▓ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рдЪреВрдВрдХрд┐ рдЖрд░ / рдбрдмреНрд▓реНрдпреВ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдореЗрдВ рд╢реВрдиреНрдп рдкрд░ рдЯрд┐рдХреА рд╣реИ)ред рдЕрдЧрд▓рд╛, рдЯреАрдПрдПрд╕ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВ, рдлрд┐рд░ рд╕рд┐рдЧреНрдирд▓ рдИ рдмрдврд╝рд╛рдПрдВ рдФрд░ рдбреЗрдЯрд╛ рд╕реЗрдЯ рдХрд░реЗрдВ (рд╕рдХрд╛рд░рд╛рддреНрдордХ рдХрд┐рдирд╛рд░реЗ рдИ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдбреЗрдЯрд╛ рд╕реЗрдЯрд┐рдВрдЧ рд╕реАрдорд┐рдд рдирд╣реАрдВ рд╣реИ)ред рдбреЗрдЯрд╛ рдЯреАрдбреАрдПрд╕рдбрдмреНрд▓реНрдпреВ рд╕реЗ рдХрдо рдирд╣реАрдВ рдмрд╕ рдореЗрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рд╕рд┐рдЧреНрдирд▓ рдИ рдХреЛ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдбреЗрдЯрд╛ рдХреЛ рдХрдо рд╕реЗ рдХрдо tDHW, рдФрд░ RS рдкрд░ рдХрдо рд╕реЗ рдХрдо tAH рдХреЗ рд▓рд┐рдП рдмрд╕ рдореЗрдВ рд░рд╣рдирд╛ рдЪрд╛рд╣рд┐рдПред
RS рдХрдорд╛рдВрдб рдпрд╛ рдбреЗрдЯрд╛ рдлреНрд▓реИрдЧ рд╣реИред рдпрджрд┐ RS рд╢реВрдиреНрдп рд╣реИ, рддреЛ рдПрдХ рдХрдорд╛рдВрдб рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрджрд┐ рдпрд╣ рдПрдХ рд╣реИ, рддреЛ рдбреЗрдЯрд╛ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдореИрдВ
FIFO0 рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрдорд╛рдВрдб рднреЗрдЬрдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛
рд╣реВрдВ , рдФрд░
FIFO1 рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдбреЗрдЯрд╛ред рд╡рд░реНрддрдорд╛рди рдХрд╛рд░реНрдп рдХреЗ рдврд╛рдВрдЪреЗ рдореЗрдВ, рдпрд╣ рдХреБрдЫ рднреА рд╡рд┐рд░реЛрдзрд╛рднрд╛рд╕ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдлрд┐рд░ рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдкрд░рд┐рдорд┐рдд рд░рд╛рдЬреНрдп рдорд╢реАрди рдХреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд░реВрдк рд╣реЛрдВрдЧреЗ:
рдирд┐рд╖реНрдХреНрд░рд┐рдп рдЕрд╡рд╕реНрдерд╛ рдореЗрдВ, рдорд╢реАрди рдЕрднреА рднреА рдХреЛрдИ рдлреАрдлреЛ рдбреЗрдЯрд╛ рдирд╣реАрдВ рд╣реИред рдпрджрд┐ рдбреЗрдЯрд╛
FIFO0 рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ, рддреЛ рдпрд╣
LoadF0 рдкрд░ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЗрд╕реЗ
FIFO0 рд╕реЗ A0 рддрдХ рдХрд╛ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдЧрд╛ред
рдЬрдмрдХрд┐ рдЖрджреЗрд╢ рдкреНрд░реЗрд╖рд┐рдд рдХрд┐рдП рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ, рдбреЗрдЯрд╛ рдирд╣реАрдВ рднреЗрдЬрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рд▓рд┐рдП, рдХрдорд╛рдВрдб рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рд╢рд░реНрдд рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╕реЗ рдХрдо рд╣реЛрдЧреАред

рд░рд╛рдЬреНрдп
рд▓реЛрдбрдлрд╝ 1 рдореЗрдВ рдбреЗрдЯрд╛ A1 рдореЗрдВ рдкреНрд░рд╛рдкреНрдд
рд╣реЛрддрд╛ рд╣реИ (
FIFO1 рд╕реЗ рд╡реЗ рдХреЗрд╡рд▓ A1 рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ A0 рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ), рдФрд░ рдлрд┐рд░ рдЙрдиреНрд╣реЗрдВ A1
A1A0 рд╕реЗ A1 рдореЗрдВ A0 рд╕реЗ рдХреЙрдкреА рдХрд┐рдпрд╛
рдЬрд╛рддрд╛ рд╣реИ ред
рд╣рдо рддреАрд░ рдХреЗ рдЕрднрд┐рд╕рд░рдг рдХреЗ рдмрд┐рдВрджреБ рдкрд░ рдЬреЛ рднреА рдЬрд╛рддреЗ рд╣реИрдВ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ A0 рдореЗрдВ рдбреЗрдЯрд╛ рд╣реЛрддрд╛ рд╣реИред рд╡реЗ рд╕рдорд╛рдирд╛рдВрддрд░ рдмрдВрджрд░рдЧрд╛рд╣ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЖрдЙрдЯрдкреБрдЯ рд╣реИрдВред рд╣рдо E (рд░рд╛рдЬреНрдп
E_UP1 рдореЗрдВ ), E рдХреЛ рдЫреЛрдбрд╝рддреЗ рд╣реИрдВ (рд░рд╛рдЬреНрдп
E_DOWN1 рдореЗрдВ )ред рдЕрдЧрд▓рд╛, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ nibbles (
SWAP )
рд╕реНрд╡реИрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд░рд╛рдЬреНрдп рд╣реЛрдЧрд╛, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж E рдлрд┐рд░ рд╕реЗ рдЙрдЧрддрд╛ рд╣реИ (
E_UP2 )ред рдЗрд╕ рдкрд░, рдореИрдВрдиреЗ рдЖрда рд░рд╛рдЬреНрдпреЛрдВ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░ рджрд┐рдпрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рддреАрди рдмрд┐рдЯреНрд╕ рдореЗрдВ рдПрдиреНрдХреЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдФрд░ рд╣рдореЗрдВ рдпрд╛рдж рд╣реИ рдХрд┐ рдбрд╛рдЯрд╛рдкрдЯ рдбрд╛рдпрдиреЗрдорд┐рдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд░реИрдо рдореЗрдВ рдХреЗрд╡рд▓ рддреАрди рдПрдбреНрд░реЗрд╕ рдЗрдирдкреБрдЯ рд╣реИрдВред рдХреБрдЫ рддрд░рдХреАрдмреЗрдВ рд▓рдЧрд╛рдИ рдЬрд╛ рд╕рдХрддреА рдереАрдВ, рд▓реЗрдХрд┐рди рд▓реЗрдЦ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмрдбрд╝рд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдХреЗрд╡рд▓ рджреВрд╕рд░реА рдмрд╛рд░ рд╣рдо
рдЖрдЗрдбрд▓ рдЕрд╡рд╕реНрдерд╛ рдореЗрдВ E рдХреЛ рдЫреЛрдбрд╝ рджреЗрдВрдЧреЗред рдлрд┐рд░ рдЖрда рд░рд╛рдЬреНрдп рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдХрд╛рдлреА рд╣реИрдВред
рд╣рдордиреЗ рдбрд╛рдЯрд╛рдкрде рдХреЛ рднреА рд╢реАрдЯ рдкрд░ рд░рдЦрд╛ рдФрд░ рдЗрд╕рдХреЗ рдЗрдирдкреБрдЯ рдФрд░ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЕрд╕рд╛рдЗрди рдХрд┐рдпрд╛ рдЬреЛ рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦреЛрдВ рдореЗрдВ рдкрд░рд┐рдЪрд┐рдд рд╣реИред рдпреЗ рд╣реИрдВ рдЗрдирдкреБрдЯреНрд╕:

рдпрд╣рд╛рдБ рдЖрдЙрдЯрдкреБрдЯ рд╣реИрдВ:

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

рд╕рдордп рд╕реАрдорд╛ рдХреЛ рдареАрдХ рд╕реЗ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдПрдХ рдШрдбрд╝реА рдЖрд╡реГрддреНрддрд┐ рдХреЛ рдПрдХ рдореЗрдЧрд╛рд╣рд░реНрдЯреНрдЬрд╝ рдХреЗ рдмрд░рд╛рдмрд░ рдЪреБрдирд╛ред рдЖрд╡реГрддреНрддрд┐ рдФрд░ рдЙрдЪреНрдЪрддрд░ рд▓реЗрдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдбреЗрдЯрд╛ рдЙрдЪреНрдЪ рд╣рд╕реНрддрдХреНрд╖реЗрдк рдХреА рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рд▓рдВрдмреЗ рддрд╛рд░реЛрдВ рдкрд░ рдкреНрд░реЗрд╖рд┐рдд рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЧреЗрдЯ рд╕реЗ рдкрд╣рд▓реЗ рдФрд░ рдмрд╛рдж рдореЗрдВ рдбреЗрдЯрд╛ рдХреЛ рдорд╛рд░реНрдЬрд┐рди рдХреЗ рд╕рд╛рде рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордп рд▓реЗрдирд╛ рдмреЗрд╣рддрд░ рд╣реЛрддрд╛ рд╣реИред рдпрджрд┐ рдХреЛрдИ рдПрдХ рд╣реА рдмреНрд░реЗрдбрдмреЛрд░реНрдб рдкрд░ рдореЗрд░реЗ рдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рджреЛрд╣рд░рд╛рдПрдЧрд╛ - рдкреЛрд░реНрдЯ P3.2 рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВ: рдПрдХ рд╕рдВрдзрд╛рд░рд┐рддреНрд░ рдмреЛрд░реНрдб рдкрд░ рдЗрд╕ рдкреИрд░ рдХреЛ рдорд┐рд▓рд╛рдк рд╣реИред рдореИрдВрдиреЗ рдЖрдзреЗ рдШрдВрдЯреЗ рддрдХ рд╣рддреНрдпрд╛ рдХреА, рдЬрдм рддрдХ рдореБрдЭреЗ рдкрддрд╛ рдирд╣реАрдВ рдЪрд▓рд╛ рдХрд┐ рдореИрдВрдиреЗ рдПрдХ рдЖрд╡реЗрдЧ рдИ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдмрдирд╛рдпрд╛, рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рдкрд╣рд▓реА рдмрд╛рд░ рд╡рд╣рд╛рдВ рдЬреЛрдбрд╝рд╛ рдерд╛ред рдореИрдВрдиреЗ рдЗрд╕реЗ P3.1 рдореЗрдВ рдлреЗрдВрдХ рджрд┐рдпрд╛ - рдпрд╣ рд╕рдм рддреБрд░рдВрдд рдХрд╛рдо рдХрд┐рдпрд╛ред рдореЗрд░рд╛ рдбреЗрдЯрд╛ рдмрд╕ P3.7-P3.4 рдкрд░ рдЬрд╛рддрд╛ рд╣реИ, RS P3.3 рдкрд░ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП E рдореВрд▓ рд░реВрдк рд╕реЗ P3.2 рдкрд░ рдЧрдпрд╛ ...
рдЦреИрд░ рдпрд╣рд╛рдБред рдЕрдм, рдпрджрд┐ рдЖрдк рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкреВрд░реНрд╡рд╛рдиреБрдорд╛рдирд┐рдд рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдорд┐рд▓рддреА рд╣реИрдВ

рдЗрд╕рд▓рд┐рдП рд╕рд┐рд╕реНрдЯрдо рдХреБрдЫ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЙрд╕рдХреЗ рдкрд╛рд╕ рдЕрдм рднреА рдХреБрдЫ рдирд╣реАрдВ рд╣реИред рд╣рдо рдХреЛрдб рдХреЛ рдХреЙрдкреА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, UDB рд╕рдВрдкрд╛рджрдХ рдореЗрдВ, Verilog рдЯреИрдм рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░реЗрдВ (рдпрд╣ рдЯреИрдм UDB рд╢реАрдЯ рд╢реАрдЯ рдХреЗ рд╕рд╛рде рдЦрд┐рдбрд╝рдХреА рдХреЗ рдиреАрдЪреЗ рд╕реНрдерд┐рдд рд╣реИ:

рд╡рд╣рд╛рдВ рдХреНрдпрд╛ рдкрд░рд┐рдЪрд┐рдд рд╣реИ? рдкрд╛рда рдХреЗ рдмрд╣реБрдд рдЕрдВрдд рдореЗрдВ рдСрдЯреЛрдореЗрдЯрди рдХрд╛ рд╢рд░реАрд░ рд╣реИред рдЖрдЗрдП рдЗрд╕рд╕реЗ рдкреНрд░рд╡рд╛рд╕ рд╢реБрд░реВ рдХрд░реЗрдВред
рдЗрд╕реЗ рджрд╛рддрдкрд╛рда рдХреЗ рдиреАрдЪреЗ рднреА рд░рдЦреЗрдВ: /* ==================== State Machine: SM ==================== */ always @ (posedge clock) begin : Idle_state_logic case(SM) Idle : begin if (( !F0empty ) == 1'b1) begin SM <= LoadF0 ; end else if (( !F1empty ) == 1'b1) begin SM <= LoadF1 ; end end LoadF0 : begin if (( 1'b1 ) == 1'b1) begin SM <= E_Up1 ; end end E_Up1 : begin if (( 1'b1 ) == 1'b1) begin SM <= E_Down1 ; end end E_Down1 : begin if (( 1'b1 ) == 1'b1) begin SM <= SWAP ; end end SWAP : begin if (( 1'b1 ) == 1'b1) begin SM <= E_UP2 ; end end E_UP2 : begin if (( 1'b1 ) == 1'b1) begin SM <= Idle ; end end LoadF1 : begin if (( 1'b1 ) == 1'b1) begin SM <= A1toA0 ; end end A1toA0 : begin if (( 1'b1 ) == 1'b1) begin SM <= E_Up1 ; end end default : begin SM <= Idle; end endcase end
рдЗрд╕ рдХреЛрдб рдХреЗ рд▓рд┐рдП рд╢реАрд░реНрд╖ рдкрд░ рдШреЛрд╖рдгрд╛рдПрдВ рд╣реИрдВ (рд░рд╛рдЬреНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдирд╛рдо, рдбрд╛рдЯрд╛рдкрде рдХреЗ рд▓рд┐рдП рдЬрдВрдЬреАрд░, рдПрдХ рдЖрдЯреЛрдореЗрд╢рди рдХреЗ рд░рд╛рдЬреНрдп рдХреЛ рдПрдиреНрдХреЛрдб рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рд░рдЬрд┐рд╕реНрдЯрд░)ред рд╣рдо рдЙрдиреНрд╣реЗрдВ рдЙрдкрдпреБрдХреНрдд рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ
рд╣рдорд╛рд░реЗ рдХреЛрдб рдХрд╛ рднрд╛рдЧ: /* ==================== Wire and Register Declarations ==================== */ localparam [2:0] Idle = 3'b000; localparam [2:0] LoadF0 = 3'b001; localparam [2:0] LoadF1 = 3'b010; localparam [2:0] E_Up1 = 3'b100; localparam [2:0] A1toA0 = 3'b011; localparam [2:0] E_Down1 = 3'b101; localparam [2:0] SWAP = 3'b110; localparam [2:0] E_UP2 = 3'b111; wire hungry0; wire F0empty; wire hungry1; wire F1empty; wire Datapath_1_d0_load; wire Datapath_1_d1_load; wire Datapath_1_f0_load; wire Datapath_1_f1_load; wire Datapath_1_route_si; wire Datapath_1_route_ci; wire [2:0] Datapath_1_select; reg [2:0] SM;
рдЦреИрд░, рдФрд░
рд╕рд┐рдЧреНрдирд▓ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рд╕рд╛рдЗрдЯ рд╣рд╕реНрддрд╛рдВрддрд░рдгреАрдп рд╣реИ: /* ==================== Assignment of Combinatorial Variables ==================== */ assign Datapath_1_d0_load = (1'b0); assign Datapath_1_d1_load = (1'b0); assign Datapath_1_f0_load = (1'b0); assign Datapath_1_f1_load = (1'b0); assign Datapath_1_route_si = (1'b0); assign Datapath_1_route_ci = (1'b0); assign Datapath_1_select[0] = (SM[0]); assign Datapath_1_select[1] = (SM[1]); assign Datapath_1_select[2] = (SM[2]);
рджрддреНрддрдкрде рдореЗрдВ рдкреНрд▓рдЧ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рдЖ рдЧрдпрд╛ рд╣реИред UDB рд╕рдВрдкрд╛рджрдХ рд╕реЗ рдкреЛрд░реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдХреЛрдб рдорд╢реАрди рд╕рдВрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдиреНрдпреБрдЕрд▓ рд╕рдВрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИред рд╡рд╣рд╛рдВ, рдЬрдВрдЬреАрд░реЗрдВ рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИрдВ рдЬреЛ рдПрдХ рд╕рд┐рд░реЗ рдкрд░ рдбрд╛рдЯрд╛рдкрде рдЗрдирдкреБрдЯ рд╕реЗ рдЬреБрдбрд╝рддреА рд╣реИрдВ рдФрд░ рджреВрд╕рд░реЗ рдкрд░ рд╕реНрдерд┐рд░рд╛рдВрдХ рд╕реЗред рд▓реЗрдХрд┐рди
рдбрд╛рдЯрд╛рдкрде рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЯреВрд▓ (рдЬреЛ рдореИрдиреБрдЕрд▓ рдХрд╛рдо рдХреЗ рд▓рд┐рдП рд╕рдм рдХреБрдЫ рдХрд░рддрд╛ рд╣реИ) рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдП рдЧрдП рдХреЛрдб рдореЗрдВ, рд╕рднреА рдЗрдирдкреБрдЯ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╢реВрдиреНрдп рд╕реНрдерд┐рд░рд╛рдВрдХ рд╕реЗ рд╕реАрдзреЗ рдЬреБрдбрд╝реЗ рд╣реБрдП рд╣реИрдВред рдЗрд╕рд▓рд┐рдП рдореИрдВ рдХреЗрд╡рд▓ рдЙрди рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝рддрд╛ рд╣реВрдВ рдЬреЛ рд╕реНрдерд┐рд░рд╛рдВрдХ рдирд╣реАрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдкрд╛рда рд╕реЗ рд╕реНрдерд┐рд░рд╛рдВрдХ рдХреЗ рдЕрдЧреНрд░реЗрд╖рдг рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╕рднреА рдЪреАрдЬреЛрдВ рдХреЛ рдХрд╛рдЯ рджреВрдВрдЧрд╛ред рдХрдиреЗрдХреНрд╢рди рдЗрд╕ рддрд░рд╣ рд╕реЗ рдирд┐рдХрд▓рд╛ (рд░рдВрдЧ рдЙрди рд╕реНрдерд╛рдиреЛрдВ рдкрд░ рдкреНрд░рдХрд╛рд╢ рдбрд╛рд▓рддрд╛ рд╣реИ, рдЬрд┐рдиреНрд╣реЗрдВ рдореИрдВрдиреЗ рдбрд╛рдЯрд╛рдкрде рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЯреВрд▓ рдореЗрдВ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдмрдирд╛рдП рдЧрдП рд╕рдВрдмрдВрдз рдореЗрдВ рд╕рдВрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рд╣реИ):

рдПрдХ рд╣реА рдкрд╛рда: )) LCD_DP( /* input */ .reset(1'b0), /* input */ .clk(clk), /* input [02:00] */ .cs_addr(SM), /* input */ .route_si(1'b0), /* input */ .route_ci(1'b0), /* input */ .f0_load(1'b0), /* input */ .f1_load(1'b0), /* input */ .d0_load(1'b0), /* input */ .d1_load(1'b0), /* output */ .ce0(), /* output */ .cl0(), /* output */ .z0(), /* output */ .ff0(), /* output */ .ce1(), /* output */ .cl1(), /* output */ .z1(), /* output */ .ff1(), /* output */ .ov_msb(), /* output */ .co_msb(), /* output */ .cmsb(), /* output */ .so(), /* output */ .f0_bus_stat(hungry0), /* output */ .f0_blk_stat(F0empty), /* output */ .f1_bus_stat(hungry1), /* output */ .f1_blk_stat(F1empty),
рд╕рдорд╛рдирд╛рдВрддрд░ рдбреЗрдЯрд╛ рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реИред рджрддреНрддрдкрде рдореЗрдВ рдЖрда-рдмрд┐рдЯ рдмрдВрджрд░рдЧрд╛рд╣ рд╣реИ, рдФрд░ рдЙрдирдореЗрдВ рд╕реЗ рдХреЗрд╡рд▓ рдЪрд╛рд░ рдХреЛ рдмрд╛рд╣рд░ рд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╣рдо рд╕рд╣рд╛рдпрдХ рд╕рд░реНрдХрд┐рдЯ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдХреЗрд╡рд▓ рдЖрдзреЗ рдЖрдЙрдЯрдкреБрдЯ рд╕реЗ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ:
wire [7:0] tempBus; assign LCD_D = tempBus[7:4];
рдФрд░ рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ:

рдПрдХ рд╣реА рдкрд╛рда: /* input [07:00] */ .pi(8'b0), // Parallel data port /* output [07:00] */ .po( tempBus) // Parallel data port );
рд╣рдо рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ (Shift + F6 рдпрд╛ рдореЗрдиреВ рдЖрдЗрдЯрдо рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ
рдмрд┐рд▓реНрдб-> рдЬреЗрдирд░реЗрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди )ред рд╣рдореЗрдВ рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИ:

рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкреЛрд░реНрдЯреНрд╕ рд╣реИрдВ
Hung0 рдФрд░
Hung1 (рдХрдВрдкреЛрдиреЗрдВрдЯ рдмрдирд╛рддреЗ рд╕рдордп рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛), рд╕рд╛рде рд╣реА рдПрдХ рд╣реА рдирд╛рдо рдХреА рдЪреЗрди (рд╕реИрдВрдкрд▓ рд╕реЗ рдЦреАрдВрдЪрддреЗ рд╕рдордп рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛)ред рдмрд╕ рдЗрди рдЬрдВрдЬреАрд░реЛрдВ рдХреЛ рд╣рдЯрд╛ рджреЗрдВ (рдмрдВрджрд░рдЧрд╛рд╣реЛрдВ рдХреЛ рдЫреЛрдбрд╝рдХрд░)ред рдФрд░ рдХрд╣реАрдВ-рдХрд╣реАрдВ
рдХреНрд▓реЙрдХ рд╕рд┐рдЧреНрдирд▓ рд▓реАрдХ рд╣реЛ рдЧрдпрд╛, рдФрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдпрд╣ рд╕рд░реНрдХрд┐рдЯ рд╣реИ, рдЬрд┐рд╕реЗ
clk рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╕рднреА рдЕрдирд╛рд╡рд╢реНрдпрдХ рдкрд░рд┐рдкрдереЛрдВ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рдмрд╛рдж (рдЬреЛ рд╢реБрд░реВ рдореЗрдВ рд╢реВрдиреНрдп рд╕реНрдерд┐рд░рд╛рдВрдХ рдХреЛ
рдбрд╛рдЯрд╛рдкрде рдЗрдирдкреБрдЯ рдкрд░ рдлреЗрдВрдХ рджреЗрддреЗ рд╣реИрдВ, рд╕рд╛рде рд╣реА
рднреВрдЦрд╛ рдФрд░
рднреВрдЦрд╛ 1 ), рд╣рдореЗрдВ рдЕрдкрдиреА рдлрд╝рд╛рдЗрд▓ рдХреА рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдорд┐рд▓рддреЗ рд╣реИрдВ:
// Your code goes here /* ==================== Wire and Register Declarations ==================== */ localparam [2:0] Idle = 3'b000; localparam [2:0] LoadF0 = 3'b001; localparam [2:0] LoadF1 = 3'b010; localparam [2:0] E_Up1 = 3'b100; localparam [2:0] A1toA0 = 3'b011; localparam [2:0] E_Down1 = 3'b101; localparam [2:0] SWAP = 3'b110; localparam [2:0] E_UP2 = 3'b111; wire F0empty; wire F1empty; reg [2:0] SM; /* ==================== Assignment of Combinatorial Variables ==================== */ wire [7:0] tempBus; assign LCD_D = tempBus[7:4];
рдФрд░ рдЬрдм рдорд╢реАрди рдХреЗ рд╢рд░реАрд░ рдореЗрдВ
рдХреНрд▓реЙрдХ рдХреЗ рд╕рд╛рде
рдШрдбрд╝реА рдХреА рдЬрдЧрд╣, рдЙрд╕реА рд╕рдордп рдореИрдВ рдЙрди рд╕рднреА рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рдмрд╛рд╣рд░ рдХрд░ рджреВрдВрдЧрд╛ рдЬреЛ рдСрдЯреЛ-рдЬреЗрдирд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореИрдиреБрдЕрд▓ рдПрдбрд┐рдЯрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдХреЗрд╡рд▓ рднреНрд░рдо рдкреИрджрд╛ рд╣реЛрддрд╛ рд╣реИ (рд╕рднреА рддреБрд▓рдирд╛рдПрдВ рдЬреЛ рдмрд┐рдирд╛ рд╢рд░реНрдд рдкрд░рд┐рдгрд╛рдо рдХреЛ
TRUE рд╡рдЧреИрд░рд╣ рджреЗрддреА рд╣реИрдВ )ред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдЖрдк рд▓рдЧрднрдЧ рдЖрдзреА рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдкрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдФрд░ рдХреБрдЫ
рд╢реБрд░реБрдЖрдд / рдЕрдВрдд рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реИрдВ, рдХрднреА-рдХрднреА рдЙрдирдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдХрд╛рд░реНрд░рд╡рд╛рдИ рдЬреЛрдбрд╝ рджреЗрдВрдЧреЗ, рдореИрдВрдиреЗ рдЙрдиреНрд╣реЗрдВ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд┐рдпрд╛):

рдЙрдкрд░реЛрдХреНрдд рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХрдВрдШреА рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж (рдФрд░
рдХреНрд▓реЙрдХ рдХреЗ рд╕рд╛рде
рдШрдбрд╝реА рдХреА рдЬрдЧрд╣), рдРрд╕рд╛ рд╢рд░реАрд░ рд░рд╣рддрд╛ рд╣реИ
(рдпрд╣ рдЫреЛрдЯрд╛ рд╣реЛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдпрд╣ рдкрдврд╝рдирд╛ рдЖрд╕рд╛рди рд╣реИ): always @ (posedge clk) begin : Idle_state_logic case(SM) Idle : begin if (( !F0empty ) == 1'b1) begin SM <= LoadF0 ; end else if (( !F1empty ) == 1'b1) begin SM <= LoadF1 ; end end LoadF0 : begin SM <= E_Up1 ; end E_Up1 : begin SM <= E_Down1 ; end E_Down1 : begin SM <= SWAP ; end SWAP : begin SM <= E_UP2 ; end E_UP2 : begin SM <= Idle ; end LoadF1 : begin SM <= A1toA0 ; end A1toA0 : begin SM <= E_Up1 ; end default : begin SM <= Idle; end endcase end
рдЕрдм, рд╕рдВрдХрд▓рди рдХреЗ рджреМрд░рд╛рди, рд╣рдореЗрдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐
LCD_E рдФрд░
LCD_RS рд╕рд░реНрдХрд┐рдЯ рдЬреБрдбрд╝реЗ рдирд╣реАрдВ
рд╣реИрдВ ред
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рд╕рдЪ рд╣реИ:

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

рдПрдХ рд╣реА рдкрд╛рда: module LCD4bit ( output hungry0, output hungry1, output [3:0] LCD_D, output reg LCD_E, output reg LCD_RS, input clk );
рдФрд░ рдорд╢реАрди рдХреЛ рдХреНрд░рд┐рдпрд╛рдУрдВ рд╕реЗ рднрд░реЗрдВред рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╣реА рдКрдкрд░ рддрд░реНрдХ рджрд┐рдпрд╛ рдЬрдм рдореИрдВ рдСрдЯреЛрдореЗрдЯрди рдХреЗ рд╕рдВрдХреНрд░рдордг рдЧреНрд░рд╛рдл рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░ рд░рд╣рд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдХреЗрд╡рд▓ рдкрд░рд┐рдгрд╛рдо рджрд┐рдЦрд╛рдКрдВрдЧрд╛:

рдПрдХ рд╣реА рдкрд╛рда: always @ (posedge clk) begin : Idle_state_logic case(SM) Idle : begin LCD_E <= 0; if (( !F0empty ) == 1'b1) begin SM <= LoadF0 ; LCD_RS <= 0; end else if (( !F1empty ) == 1'b1) begin SM <= LoadF1 ; LCD_RS <= 1; end end LoadF0 : begin SM <= E_Up1 ; end E_Up1 : begin SM <= E_Down1 ; LCD_E <= 1'b1; end E_Down1 : begin SM <= SWAP ; LCD_E <= 1'b0; end SWAP : begin SM <= E_UP2 ; end E_UP2 : begin SM <= Idle ; LCD_E <= 1; end LoadF1 : begin SM <= A1toA0 ; end A1toA0 : begin SM <= E_Up1 ; end default : begin SM <= Idle; end endcase end
рдЗрд╕ рдХреНрд╖рдг рд╕реЗ, рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдирд╛ рд╢реБрд░реВ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╡рд╣ рдЕрднреА рддрдХ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рдЕрдм рддрдХ рдореИрдВрдиреЗ рдкреНрд░рд╕рд┐рджреНрдз рд░реВрдк рд╕реЗ рдХрд╣рд╛ рд╣реИ: "рдЗрд╕ рдЕрд╡рд╕реНрдерд╛ рдореЗрдВ, рд╣рдо FIFO рд╕реЗ рд░рдЬрд┐рд╕реНрдЯрд░ рд▓реЛрдб рдХрд░реЗрдВрдЧреЗ", "рдЗрд╕рдореЗрдВ A1 рдХреЛ A0 рдореЗрдВ рдХреЙрдкреА рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛", "Nibbles рдХреЛ рдЗрд╕рдореЗрдВ рдлрд┐рд░ рд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛"ред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдореИрдВрдиреЗ рдмрд╣реБрдд рдХреБрдЫ рдмреЛрд▓рд╛, рд▓реЗрдХрд┐рди рдЕрднреА рддрдХ рдХреЛрдИ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдирд╣реАрдВ рд╣реБрдИ рд╣реИред рдЙрдиреНрд╣реЗрдВ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рдЖ рдЧрдпрд╛ рд╣реИред рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рд░рд╛рдЬреНрдпреЛрдВ рдХреЛ рдХрд┐рд╕ рддрд░рд╣ рд╕реЗ рдХреВрдЯрдмрджреНрдз рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛:
localparam [2:0] Idle = 3'b000; localparam [2:0] LoadF0 = 3'b001; localparam [2:0] LoadF1 = 3'b010; localparam [2:0] E_Up1 = 3'b100; localparam [2:0] A1toA0 = 3'b011; localparam [2:0] E_Down1 = 3'b101; localparam [2:0] SWAP = 3'b110; localparam [2:0] E_UP2 = 3'b111;
рджрддреНрддрдкрде рд╡рд┐рдиреНрдпрд╛рд╕ рдЙрдкрдХрд░рдг рдХреЛ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓реЗрдВ :

рдФрд░
CFGRAM рд▓рд╛рдЗрдиреЛрдВ рдХрд╛
рд╕рдВрдкрд╛рджрди рд╢реБрд░реВ рдХрд░реЗрдВред рд╕рдВрдкрд╛рджрди рдХрд░рддреЗ рд╕рдордп, Datapath рдпреЛрдЬрдирд╛ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦреЗрдВ, рдЕрд░реНрдерд╛рддреН:

рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЖрдВрдХрдбрд╝реЗ рдореЗрдВ рд▓рд╛рд▓ рдлреНрд░реЗрдо (рдФрд░ рдКрдкрд░ рдХреА рдЖрдХреГрддрд┐ рдореЗрдВ рддреАрд░) рдореИрдВрдиреЗ рд░рд╛рдЬреНрдп рдХреЗ рд▓рд┐рдП рд╕рд╣реА рдХрд┐рдП рдЧрдП рдХреНрд╖реЗрддреНрд░реЛрдВ (рдФрд░ рдбреЗрдЯрд╛ рдкрде) рдХреЛ
рд▓реЛрдб рдХрд┐рдпрд╛ рд╣реИ
LoadF0 (рдХреЛрдб 001, рдЕрд░реНрдерд╛рдд,
Reg1 )ред рдореИрдВрдиреЗ рд╕реНрд╡рдпрдВ рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ рднреА рджрд░реНрдЬ рдХреАрдВред F0 рдХреА рд╕рд╛рдордЧреНрд░реА A0 рдореЗрдВ рдорд┐рд▓рдиреА рдЪрд╛рд╣рд┐рдПред

рд╣рд░реЗ рдлреНрд░реЗрдо рдФрд░ рддреАрд░ рдХреЗ рд╕рд╛рде рдореИрдВрдиреЗ рд░рд╛рдЬреНрдп рд▓реЛрдбрдлрд╝ 1 (рдХреЛрдб 010 -
рд░реЗрдЧ 2 ) рдХреЗ рд▓рд┐рдП рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдФрд░ рдкрде рдХреЛ рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ред
рдиреАрд▓реЗ рдлреНрд░реЗрдо рдФрд░ рддреАрд░ рдХреЗ рд╕рд╛рде рдореИрдВрдиреЗ рд░рд╛рдЬреНрдп A1toA0 рдХреЗ рд▓рд┐рдП рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдФрд░ рдкрде рдХреЛ рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ (рдХреЛрдб 011 -
Reg3 )ред
рдмреИрдВрдЧрдиреА рдлреНрд░реЗрдо рдФрд░ рддреАрд░ рдореИрдВрдиреЗ
SWAP рд░рд╛рдЬреНрдп рдХреЗ рд▓рд┐рдП рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдФрд░ рдкрде рдХреЛ рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ (рдХреЛрдб 110 -
Reg6 )ред
рдЕрдВрдд рдореЗрдВ, рдирд╛рд░рдВрдЧреА рддреАрд░ рд╕рдорд╛рдирд╛рдВрддрд░ рдбреЗрдЯрд╛ рдкрде рджрд┐рдЦрд╛рддреЗ рд╣реИрдВред рдФрд░ рдЙрдирдХреЗ рд▓рд┐рдП рдХреЛрдИ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдирд╣реАрдВ рдХреА рдЬрд╛рддреА рд╣реИред рд╡реЗ рд╣рдореЗрд╢рд╛
рдПрд╕рдЖрд░рд╕реАрдП рд╕реЗ рдмрд╛рд╣рд░ рдЖрддреЗ рд╣реИрдВред рд╣рдо рд▓рдЧрднрдЧ рд╣рдореЗрд╢рд╛ A0 рдХреЛ
SRCA рдХреЗ рд░реВрдк рдореЗрдВ
рдЪреБрдирддреЗ рд╣реИрдВ : рдбреЗрдЯрд╛ A0 рд╕реЗ рдмрд╛рд╣рд░ рдЖрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛ рдХреЛ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдХрдИ рд╕рд╣рд╛рдпрдХ рдХреНрд░рд┐рдпрд╛рдПрдВ рдХрд░рдиреА рд╣реЛрдВрдЧреА, рд▓реЗрдХрд┐рди рд╣рдо рдХрд┐рд╕реА рднреА рдбреЗрдЯрд╛ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдпрд╣рд╛рдВ рд╣рдореЗрдВ рдЗрди рдХрд╛рд░реНрдпреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдФрд░ рд╕рднреА рдХреЛ
AN82156 рдореЗрдВ рдЕрдкрдиреА рд╕реВрдЪреА рдорд┐рд▓
рдЬрд╛рдПрдЧреА ред рд╣рдореЗрдВ рдХрд┐рд╕реА рднреА рд╕реНрдерд┐рд░ рдбрд╛рдЯрд╛рдкрде рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП
рдбрд╛рдЯрд╛рдкрде рдХреЙрдиреНрдлрд┐рдЧ рдЯреВрд▓ рдХреЛ рдмрдВрдж рдХрд░реЗрдВред
рд╡рд╣ рд╕рдм рд╣реИред рд╕рдВрдХрд▓реНрдкрд┐рдд рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдкреВрд░реНрдгред рд╕реА рдХреЛрдб рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП,
рд╕реНрд░реЛрдд рдЯреИрдм рдкрд░ рдЬрд╛рдПрдВ рдФрд░
main.c рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВред

рдирд┐рдпрдорд┐рдд рдПрд▓рд╕реАрдбреА рдЖрд░рдВрднреАрдХрд░рдг рдФрд░ "рдПрдмреАрд╕реА" рдЪрд░рд┐рддреНрд░ рдЖрдЙрдЯрдкреБрдЯ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ (рдореИрдВ рдЖрдкрдХреЛ рдпрд╛рдж рджрд┐рд▓рд╛рддрд╛ рд╣реВрдВ рдХрд┐ рдХрдорд╛рдВрдб
FIFO0 рдкрд░
рдЬрд╛рддреЗ рд╣реИрдВ , рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдХреЛ рдЯреАрдореЛрдВ рдХреЗ рдмреАрдЪ рдард╣рд░рд╛рд╡ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдФрд░ рдбреЗрдЯрд╛
FIFO1 рдХреЛ рдЬрд╛рддрд╛ рд╣реИ, рдореБрдЭреЗ рдбреЗрдЯрд╛ рдХреЗ рдмреАрдЪ рдард╣рд░рд╛рд╡ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рдорд┐рд▓рд╛):
volatile uint8_t* pFIFO0 = (uint8_t*) LCD4bit_1_LCD_DP__F0_REG; volatile uint8_t* pFIFO1 = (uint8_t*) LCD4bit_1_LCD_DP__F1_REG; pFIFO0[0] = 0x33; CyDelay (5); pFIFO0[0] = 0x33; CyDelay (100); pFIFO0[0] = 0x33; CyDelay (5); pFIFO0[0] = 0x20; CyDelay (5); pFIFO0[0] = 0x0C; // CyDelay (50); pFIFO0[0] = 0x01; // CyDelay (50); pFIFO1[0] = 'A'; pFIFO1[0] = 'B'; pFIFO1[0] = 'C';
рдХреНрдпрд╛ рд╣реИ рд╕реНрдХреНрд░реАрди рдкрд░ рдХреЗрд╡рд▓ рдкрд╣рд▓рд╛ рдХрд┐рд░рджрд╛рд░ рд╣реА рдХреНрдпреЛрдВ рд╣реИ?

рдФрд░ рдпрджрд┐ рдЖрдк рдбреЗрдЯрд╛ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рдмреАрдЪ рджреЗрд░реА рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ - рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реИ:

рдЖрд╕реНрдЯрд╕реАрд▓рд╕реНрдХрдк рдореЗрдВ рдРрд╕реЗ рдХрд╛рдо рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдЪреИрдирд▓ рдирд╣реАрдВ рд╣реИрдВред рд╣рдо рдПрдХ рддрд╛рд░реНрдХрд┐рдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдкрд░ рдХрд╛рдо рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╣реИрдВред рдбреЗрдЯрд╛ рд░рд┐рдХреЙрд░реНрдб рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИред

рд╕рднреА рдбреЗрдЯрд╛ рдЬрдЧрд╣ рдореЗрдВ рд╣реИрдВ (рдкреИрдХреЗрдЬ рдХреЗ рддреАрди рдЬреЛрдбрд╝реЗ)ред рд╕реНрдерд╛рдкрдирд╛ рдФрд░ рд╕реНрдиреИрдкрд┐рдВрдЧ рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рд╕рдордп рдкрд░реНрдпрд╛рдкреНрдд рдорд╛рддреНрд░рд╛ рдореЗрдВ рдЖрд╡рдВрдЯрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд╕рдордп рдЖрд░реЗрдЦреЛрдВ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ - рд╕рдм рдХреБрдЫ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЧрдИ рд╣реИ, рд╡рд╛рдВрдЫрд┐рдд рд╕рдордп рдЖрд░реЗрдЦ рдХрд╛ рдЧрдарди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣рд╛рдБ рдЗрдВрдЬреАрдирд┐рдпрд░рд┐рдВрдЧ рд╣реИ - рдирд╣реАрдВред рдЗрд╕рдХрд╛ рдХрд╛рд░рдг рдПрд▓рд╕реАрдбреА рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреА рд╕реБрд╕реНрддреА рд╣реИред рдмрд╛рдЗрдЯреНрд╕ рдХреЗ рдмреАрдЪ, рджреЗрд░реА рдЬреЛрдбрд╝реЗрдВред
рд╣рдо рд╕рд╛рдд-рдмрд┐рдЯ рдХрд╛рдЙрдВрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рджреЗрд░реА рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдВрдЧреЗ, рдЙрд╕реА рд╕рдордп рд╣рдо рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рдХреЗ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдХрд░реЗрдВрдЧреЗред рдЖрдЗрдбрд▓ рдЕрд╡рд╕реНрдерд╛ рдореЗрдВ рд╣рдо рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рд╕рдордп рд╕реЗ рдХрдо рдирд╣реАрдВ рд╣реИрдВ, рдФрд░ рдПрдХ рд╕рд╛рдд-рдмрд┐рдЯ рдХрд╛рдЙрдВрдЯрд░ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЗрд╕ рд╕рдордп рдХреЛ рдорд╛рдкреЗрдЧрд╛ред рдФрд░ рдлрд┐рд░, рд╣рдо рдирд╣реАрдВ рд▓рд┐рдЦреЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди рдХреЛрдб рдмрдирд╛рдПрдБред рдЗрд╕рд▓рд┐рдП, рдлрд┐рд░ рд╕реЗ рд╣рдо UDB рд╕рдВрдкрд╛рджрдХ рдХреЗ рд╕рд╣рд╛рдпрдХ рдШрдЯрдХ рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдХрд╛рд░реНрдпрдкрддреНрд░рдХ рдореЗрдВ рдПрдХ рдХрд╛рдЙрдВрдЯрд░ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рдЗрд╕рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ:

рдпрд╣ рдХрд╛рдЙрдВрдЯрд░ рд╣рдореЗрд╢рд╛ рдХрд╛рдо рдХрд░реЗрдЧрд╛ (
рд╕рдХреНрд╖рдо рдХрд░реЗрдВ 1 рдкрд░
рд╕реЗрдЯ рд╣реИ)ред рд▓реЗрдХрд┐рди рдпрд╣ рддрдм рд▓реЛрдб рд╣реЛрдЧрд╛ рдЬрдм рдорд╢реАрди
E_UP2 рд░рд╛рдЬреНрдп рдореЗрдВ рд╣реИ (рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рд╣рдо рддреБрд░рдВрдд
рдЖрдЗрдбрд▓ рдЕрд╡рд╕реНрдерд╛ рдореЗрдВ рдЖрддреЗ рд╣реИрдВ)ред рдЬрдм рдХрд╛рдЙрдВрдЯ рдЬреАрд░реЛ рдХрд╛рдЙрдВрдЯ рд╢реВрдиреНрдп
рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рд▓рд╛рдЗрди
рдХрд╛рдЙрдВрдЯ 7_1_tc рдХреЛ 1 рддрдХ рдмрдврд╝рд╛ рджрд┐рдпрд╛
рдЬрд╛рдПрдЧрд╛ , рдЬрд┐рд╕реЗ рд╣рдо
рдЖрдЗрдбрд▓ рд╕реНрдЯреЗрдЯ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реНрдерд┐рддрд┐ рдмрдирд╛рдПрдВрдЧреЗред рдЖрдВрдХрдбрд╝рд╛ рдореЗрдВ рдЕрд╡рдзрд┐ рдХрд╛ рдореВрд▓реНрдп рднреА рд╢рд╛рдорд┐рд▓ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдо рдЗрд╕реЗ рд╡реЗрд░рд┐рд▓реЙрдЧ рдХреЛрдб рдореЗрдВ рдирд╣реАрдВ рдкрд╛рдПрдВрдЧреЗред рдЗрд╕реЗ C рдХреЛрдб рдореЗрдВ рджрд░реНрдЬ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рд▓реЗрдХрд┐рди рдкрд╣рд▓реЗ, рд╣рдо рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЬрдирд░реЗрдЯ рдХрд┐рдП рдЧрдП рд╡реЗрд░рд┐рд▓реЙрдЧ рдХреЛрдб рдХреЛ рд╡реЗрд░рд┐рд▓реЙрдЧ рдЯреИрдм рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдХреЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдХрд╛рдЙрдВрдЯрд░ рдЬреБрдбрд╝рд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП (рд╣рдо рдлрд╝рд╛рдЗрд▓ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдЗрд╕ рдХреЛрдб рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рд╢реБрд░реБрдЖрдд рдореЗрдВ рднреА рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ):
`define CY_BLK_DIR "$CYPRESS_DIR\..\psoc\content\CyComponentLibrary\CyComponentLibrary.cylib\Count7_v1_0" `include "$CYPRESS_DIR\..\psoc\content\CyComponentLibrary\CyComponentLibrary.cylib\Count7_v1_0\Count7_v1_0.v"
рд▓рд╛рдЗрдиреЛрдВ рдФрд░ рд╕реНрдерд┐рд░рд╛рдВрдХ рдХрд╛ рд░рдЪрдирд╛рддреНрдордХ рд╢реЛрдзрди рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рдХрд╛ рд╡рд░реНрдгрди рдкрд╣рд▓реЗ рд╣реА рдХрд┐рдпрд╛ рдЬрд╛ рдЪреБрдХрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдХреЗрд╡рд▓ рдкрд░рд┐рдгрд╛рдо рджрд┐рдЦрд╛рдКрдВрдЧрд╛ред рдЗрд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рд╢реНрд░реГрдВрдЦрд▓рд╛ рдФрд░ рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдЬреЛрдбрд╝реЗ рдЧрдП рд╣реИрдВ (рдмрд╛рдХреА рд╕реНрдерд┐рд░рд╛рдВрдХ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЙрдиреНрд╣реЗрдВ рдлреЗрдВрдХ рджрд┐рдпрд╛)
wire Count7_1_load; wire Count7_1_tc; assign Count7_1_load = (SM==E_UP2);
рдФрд░ рдпрд╣рд╛рдВ рдХрд╛рдЙрдВрдЯрд░ рд╣реА рд╣реИ, рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЕрдВрдд рдореЗрдВ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИред рд╕рднреА рд╕реНрдерд┐рд░рд╛рдВрдХ рдЗрд╕ рдШреЛрд╖рдгрд╛ рдореЗрдВ рд╕реАрдзреЗ рдмрдВрджрд░рдЧрд╛рд╣реЛрдВ рдХреЛ рд╕реМрдВрдкреЗ рдЬрд╛рддреЗ рд╣реИрдВ:
Count7_v1_0 Count7_1 ( .en(1'b1), .load(Count7_1_load), .clock(clk), .reset(1'b0), .cnt(), .tc(Count7_1_tc)); defparam Count7_1.EnableSignal = 1; defparam Count7_1.LoadSignal = 1;
рдЗрд╕ рдХрд╛рдЙрдВрдЯрд░ рдХреЛ рдХрд╛рд░реНрдп рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ
рдЖрдЗрдбрд▓ рд╕реНрдЯреЗрдЯ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рд╢рд░реНрдд рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ:

рдПрдХ рд╣реА рдкрд╛рда: case(SM) Idle : begin LCD_E <= 0; if (( !F0empty ) == 1'b1) begin SM <= LoadF0 ; LCD_RS <= 0; end else if (( !F1empty &Count7_1_tc ) == 1'b1) begin SM <= LoadF1 ; LCD_RS <= 1; end end
рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЬреЛрдбрд╝реЗ рдЧрдП рдХрд╛рдЙрдВрдЯрд░ рдХреЗ рд▓рд┐рдП рдПрдкреАрдЖрдИ рдирд╣реАрдВ рдмрдирд╛рдИ рдЧрдИ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рджреЛ рдореИрдЬрд┐рдХ рд▓рд╛рдЗрдиреЛрдВ рдХреЛ
рдореБрдЦреНрдп рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рдЬреЛ рдореИрдВрдиреЗ рдкрд┐рдЫрд▓реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рд╕реЗ рдПрдкреАрдЖрдИ рдореЗрдВ рджреЗрдЦреА рдЧрдИ рдЫрд╡рд┐ рдФрд░ рд╕рдорд╛рдирддрд╛ рдореЗрдВ рдмрдирд╛рдИ рдереА (рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рдЦрд╛рддреЗ рдХреЗ рд▓реЛрдб рдХрд┐рдП рдЧрдП рдореВрд▓реНрдп рдХреЛ рд╕реЗрдЯ рдХрд░рддреА рд╣реИ, рд╡рд╣реА рд▓реЛрдб, рджреВрд╕рд░рд╛ рдХрд╛рдЙрдВрдЯрд░ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИ):
*((uint8_t*)LCD4bit_1_Count7_1_Counter7__PERIOD_REG) = 0x20; *((uint8_t*)LCD4bit_1_Count7_1_Counter7__CONTROL_AUX_CTL_REG) |= 0x20; // Start
рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рд╕рдВрд╢реЛрдзрд┐рдд рдорд╛рдорд▓реЗ рдореЗрдВ рджреЗрд░реА рд╕реНрдкрд╖реНрдЯ рд╣реИ:

рдПрд▓рд╕реАрдбреА рдореЗрдВ рднреА рд╕рднреА рддреАрди рд╡рд░реНрдг рд╣реИрдВред
рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЬреАрд╡рди рдореЗрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдореЗрдЯрд┐рдХ рдХреИрд░реЗрдХреНрдЯрд░ рдЖрдЙрдЯрдкреБрдЯ рдЕрд╕реНрд╡реАрдХрд╛рд░реНрдп рд╣реИред рдмрд╕ рдЙрдиреНрд╣реЗрдВ FIFO рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдУрд╡рд░рдлреНрд▓реЛ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред FIFO рдХреЗ рдЦрд╛рд▓реА рд╣реЛрдиреЗ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВ - рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЛрд░ рдХреЗ рд▓рд┐рдП рдмрдбрд╝реА рджреЗрд░реАред
рдкреНрд░реЛрд╕реЗрд╕рд░ 72 рдореЗрдЧрд╛рд╣рд░реНрдЯреНрдЬ рдХреА рдЖрд╡реГрддреНрддрд┐ рдкрд░ рд╕рдВрдЪрд╛рд▓рд┐рдд рд╣реЛрддрд╛ рд╣реИ, рдФрд░ 1 рдореЗрдЧрд╛рд╣рд░реНрдЯреНрдЬ рдХреА рдЖрд╡реГрддреНрддрд┐ рдкрд░ 7-8 рдШрдбрд╝реА рдЪрдХреНрд░реЛрдВ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рдЖрдЙрдЯрдкреБрдЯ рд╣реЛрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЬреАрд╡рди рдореЗрдВ, рдкрд╛рда рдХреЛ рдбреАрдПрдордП рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рд╡рд╣ рдЬрдЧрд╣ рд╣реИ рдЬрд╣рд╛рдВ "рд▓реЙрдиреНрдЪ рдФрд░ рднреВрд▓" рд╕рд┐рджреНрдзрд╛рдВрдд рдХрд╛рдо рдореЗрдВ рдЖрддрд╛ рд╣реИред UDB рджреНрд╡рд╛рд░рд╛ рдЯрд╛рдЗрдорд┐рдВрдЧ рдЖрд░реЗрдЦ рдХреЗ рд▓рд┐рдП рд╕рднреА рджреЗрд░реА рдЙрддреНрдкрдиреНрди рд╣реЛрдЧреА, рдФрд░ рдбреАрдПрдордП рдирд┐рдпрдВрддреНрд░рдХ рд╣рдореЗрдВ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлреАрдлреЛ рдХреА рддрддреНрдкрд░рддрд╛ рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдХрд░реЗрдЧрд╛ред рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЛрд░ рдХреЛ рдХреЗрд╡рд▓ рдореЗрдореЛрд░реА рдореЗрдВ рдПрдХ рд▓рд╛рдЗрди рдмрдирд╛рдиреЗ рдФрд░ рдбреАрдПрдордП рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдпрд╣ рдПрд▓рд╕реАрдбреА рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд╛ рдХрд┐рдП рдмрд┐рдирд╛ рдЕрдиреНрдп рдХрд╛рд░реНрдп рдХрд░ рд╕рдХрддрд╛ рд╣реИредрдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдЬреЛрдбрд╝реЗрдВ: static const char line[] = "This is a line"; /* Defines for DMA_D */ #define DMA_D_BYTES_PER_BURST 1 #define DMA_D_REQUEST_PER_BURST 1 /* Variable declarations for DMA_D */ /* Move these variable declarations to the top of the function */ uint8 DMA_D_Chan; uint8 DMA_D_TD[1]; /* DMA Configuration for DMA_D */ DMA_D_Chan = DMA_D_DmaInitialize(DMA_D_BYTES_PER_BURST, DMA_D_REQUEST_PER_BURST, HI16(line), HI16(LCD4bit_1_LCD_DP__F1_REG)); DMA_D_TD[0] = CyDmaTdAllocate(); CyDmaTdSetConfiguration(DMA_D_TD[0], sizeof(line)-1, CY_DMA_DISABLE_TD, CY_DMA_TD_INC_SRC_ADR); CyDmaTdSetAddress(DMA_D_TD[0], LO16((uint32)line), LO16((uint32)LCD4bit_1_LCD_DP__F1_REG)); CyDmaChSetInitialTd(DMA_D_Chan, DMA_D_TD[0]); CyDmaChEnable(DMA_D_Chan, 1);
рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╕реНрдХреНрд░реАрди рдкрд░:
рдирд┐рд╖реНрдХрд░реНрд╖
рдПрдХ рдЕрд░реНрдз-рд╕рд┐рдВрдереЗрдЯрд┐рдХ, рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдХрд░реАрдм, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рддрдВрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ UDB рдХреЗ рд▓рд┐рдП рдХреЛрдб рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддрдВрддреНрд░ рдореЗрдВ рдорд╣рд╛рд░рдд рд╣рд╛рд╕рд┐рд▓ рдХреА рд╣реИ - рджрддреНрддрдкрде рд╡рд┐рдиреНрдпрд╛рд╕ рдЙрдкрдХрд░рдгред рдпрд╣ рддрдВрддреНрд░, UDB рд╕рдВрдкрд╛рджрдХ рдХреЗ рд╡рд┐рдкрд░реАрдд, рдмрд┐рд▓реНрдХреБрд▓ UDB рдкреНрд░рдмрдВрдзрди рдХреНрд╖рдорддрд╛рдУрдВ рддрдХ рдкрд╣реБрдБрдЪ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ UDB рд╕рдВрдкрд╛рджрдХ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реИред рдлрд┐рд░ рднреА, рд▓реЗрдЦ рдХреЗ рд▓реЗрдЦрдХ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╡рд┐рдзрд┐ рдЦрд░реЛрдВрдЪ рд╕реЗ рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдмрд╕ рдЗрд╕реЗ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЙрд╕реА рдпреВрдбреАрдмреА рд╕рдВрдкрд╛рджрдХ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдП рдЧрдП рд╕рд╣рд╛рдпрдХ рдХреЛрдб рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИредрд▓реЗрдЦ рд▓рд┐рдЦрддреЗ рд╕рдордп рдкреНрд░рд╛рдкреНрдд рдкрд░реАрдХреНрд╖рдг рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдпрд╣рд╛рдВ рд▓реЗ рдЬрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ред