ﻣﺪﺍﺭ ﻫﺎﻱ ﻣﻨﻄﻘﻲ ﭘﻴﺸﺮﻓﺘﻪ 40412 ﻧﻴﻤﺴﺎﻝ ﺍﻭﻝ 90-91 ﻣﺪﺭﺱ :ﺩﻛﺘﺮ ﺍﺟﻼﻟﻲ ﺩﺍﻧﺸﻜﺪﻩﻱ ﻣﻬﻨﺪﺳﻲ ﻛﺎﻣﭙﻴﻮﺗﺮ ﺗﻤﺮﻳﻦ ﺳﺮﻱ ﺍﻭﻝ : ﻃﺮﺍﺣﻲ ﻧﻤﻮﺩﺍﺭ ﺍﻟﮕﻮﺭﻳﺘﻤﻲ ﻣﺎﺷﻴﻦ ﺣﺎﻟﺖ ) - (ASMﺁﺷﻨﺎﻳﻲ ﺑﺎ ﺍﺑﺰﺍﺭ ASM++ Compiler ﺩﺭ ﺍﻳﻦ ﺗﻤﺮﻳﻦ ﺑﺎﻳﺪ ASMﻣﺮﺑﻮﻁ ﺑﻪ ﺩﻭ ﻣﺪﺍﺭ ﻛﻪ ﺩﺭ ﺯﻳﺮ ﺗﻮﺿﻴﺢ ﺩﺍﺩﻩ ﺷﺪﻩ ﺍﻧﺪ ،ﺭﺍ ﻃﺮﺍﺣﻲ ﻛﻨﻴﺪ .ﺩﺭ ﻃﺮﺍﺣﻲ ﺍﻳﻦ ASMﻫﺎ ﺑﺎﻳﺪ ﻗﻮﺍﻋﺪ ﻃﺮﺍﺣﻲ ﮔﻔﺘﻪ ﺷﺪﻩ ﺭﺍ ﺩﺭ ﻧﻈﺮ ﺩﺍﺷﺘﻪ ﺑﺎﺷﻴﺪ. ﻃﺮﺍﺣﻲ ﺷﻤﺎ ﺑﺎﻳﺪ ﺑﺮ ﭘﺎﻳﻪ ﺯﺑﺎﻥ ASM++ﺍﻧﺠﺎﻡ ﺷﻮﺩ ،ﻭ ASMﺗﻮﻟﻴﺪ ﺷﺪﻩ ﺑﺎﻳﺪ ﺩﺭ ﻗﺎﻟﺐ ﻓﺎﻳﻞ .vdxﺗﻮﺳﻂ ﻧﺮﻡ ﺍﻓﺰﺍﺭ Microsoft Visioﻃﺮﺍﺣﻲ ﺷﻮﺩ .ﺳﭙﺲ ﺧﺮﻭﺟﻲ a++ﻭ Verilogﻛﻪ ﺗﻮﺳﻂ ASM++ Compilerﺗﻮﻟﻴﺪ ﻣﻲ ﺷﻮﺩ ﺭﺍ ﺑﻪ ﺍﻧﻀﻤﺎﻡ ASMﻃﺮﺍﺣﻲ ﺷﺪﻩ ،ﺗﺤﻮﻳﻞ ﺩﻫﻴﺪ. ﺟﺰﺋﻴﺎﺕ ﻣﺮﺑﻮﻁ ﺑﻪ ﺍﺑﺰﺍﺭ ASM++ Compilerﺩﺭ ﻛﻼﺱ ﺣﻞ ﺗﻤﺮﻳﻦ ﺍﺭﺍﺋﻪ ﺷﺪ ﻭ ﻣﻲ ﺗﻮﺍﻧﻴﺪ ﺍﺑﺰﺍﺭ ﻭ ﺭﺍﻫﻨﻤﺎﻱ ﻣﺮﺑﻮﻃﻪ ﺭﺍ ﺩﺭ ﺳﺎﻳﺖ ﺩﺭﺱ ﺑﻴﺎﺑﻴﺪ .ﻃﺮﺍﺣﻲ ﺷﻤﺎ ﺑﺎﻳﺪ ﺑﻪ ﻭﺳﻴﻠﻪ ﺍﺟﺰﺍ ﺳﺎﺯﻧﺪﻩ ASM++ﻛﻪ ﺩﺭ ﻗﺎﻟﺐ .vsxﻣﻮﺟﻮﺩ ﺍﺳﺖ ،ﺍﻧﺠﺎﻡ ﺷﻮﺩ .ﻣﻲ ﺗﻮﺍﻧﻴﺪ ﻃﺮﺡ ﻃﺮﺍﺣﻲ ﺷﺪﻩ ﺭﺍ ﺍﺯ ﻃﺮﻳﻖ ﺯﺑﺎﻥ ﻣﻴﺎﻧﻲ a++ﺑﺎﺯﺑﻴﻨﻲ ﻭ ﺭﻓﻊ ﻋﻴﺐ ﻧﻤﺎﻳﻴﺪ .ﺩﺭ ﻧﻬﺎﻳﺖ ﻓﺎﻳﻞ Verilogﺗﻮﻟﻴﺪ ﺷﺪﻩ ﺗﻮﺳﻂ Compilerﻣﺒﻨﺎﻱ ﺩﺭﺳﺘﻲ ﭘﻴﺎﺩﻩ ﺳﺎﺯﻱ ﻣﺪﺍﺭ ﺷﻤﺎ ﺧﻮﺍﻫﺪ ﺑﻮﺩ. .1ﻃﺮﺍﺣﻲ ﻣﺪﺍﺭ ﺟﻤﻊ ﻛﻨﻨﺪﻩ/ﺗﻔﺮﻳﻖ ﻛﻨﻨﺪﻩ ﺍﻋﺪﺍﺩ ﺩﺭ ﻣﺒﻨﺎﻱ ﺩﻩ ﺷﺮﺡ ﻣﺴﺎﻟﻪ: ﺩﺭ ﺍﻳﻦ ﻣﺴﺎﻟﻪ ﺑﺎﻳﺪ ﻗﺴﻤﺖ ﺟﻤﻊ ﻛﻨﻨﺪﻩ ﻱ ﺍﻋﺪﺍﺩ ﺩﻩ ﺩﻫﻲ ﺭﺍ ﺑﻪ ﻭﺳﻴﻠﻪ ﻱ ﺟﻤﻊ ﻛﻨﻨﺪﻩ ﻱ ﺩﻭ ﺩﻭ ﻳﻲ ﭘﻴﺎﺩﻩ ﺳﺎﺯﻱ ﻧﻤﺎﻳﻴﺪ. ﺍﺟﺰﺍﻱ ﻃﺮﺡ ﺷﻤﺎ ﺑﻪ ﺻﻮﺭﺕ ﺯﻳﺮ ﭘﻴﺸﻨﻬﺎﺩ ﻣﻲ ﺷﻮﺩ. .1 .2 .3 .4 ﻣﺒﺪﻝ ﺍﻋﺪﺍﺩ ﺩﻩ ﺩﻫﻲ ) (BCDﺑﻪ ﺩﻭﺩﻭﻱ ﺑﺎ ﺍﺭﺯﺵ ﮔﺬﺍﺭﻱ 8421 ﺟﻤﻊ ﻛﻨﻨﺪﻩ/ﺗﻔﺮﻳﻖ ﻛﻨﻨﺪﻩ ﺍﻋﺪﺍﺩ ﺩﻭﺩﻭﻳﻲ ﻣﺒﺪﻝ ﺍﻋﺪﺍﺩ ﺩﻭﺩﻭﻳﻲ ﺑﻪ ﺍﻋﺪﺍﺩ ﺩﻩ ﺩﻫﻲ ) (BCDﺑﺎ ﺍﺭﺯﺵ ﮔﺬﺍﺭﻱ 8421 ﻗﺴﻤﺖ ﻛﻨﺘﺮﻝ ﻛﻨﻨﺪﻩ ﻱ ﺍﺭﺗﺒﺎﻁ ﺑﻴﻦ ﺍﺟﺰﺍ ﻣﻮﺍﺭﺩ ﺗﺤﻮﻳﻠﻲ: ASM ﻣﺮﺑﻮﻃﻪ ﺑﻪ ﺍﻳﻦ ﻣﺪﺍﺭ ﭘﻴﺎﺩﻩ ﺳﺎﺯﻱ ﺷﺪﻩ ﺩﺭ ﺯﺑﺎﻥ ASM++ﺩﺭ ﻗﺎﻟﺐ ﻫﺎﻱ .vdxﻭ . .pdf ﭘﻴﺎﺩﻩ ﺳﺎﺯﻱ ﺻﺤﻴﺢ ASMﻣﺪﺍﺭ ﺩﺭ ﻗﺎﻟﺐ ﺯﺑﺎﻥ . ASM++ ﻓﺎﻳﻞ ﺗﻮﻟﻴﺪ ﺷﺪﻩ ﺍﺯ .ASM ﻓﺎﻳﻞ ﻣﻴﺎﻧﻲ ﺑﺎ ﭘﺴﻮﻧﺪ . .a++ ﻓﺎﻳﻞ verilogﺧﺮﻭﺟﻲ ﺗﻮﻟﻴﺪ ﺷﺪﻩ ﺑﺎ ﭘﺴﻮﻧﺪ ..v ﻓﺎﻳﻞ ﺗﻮﻟﻴﺪ ﺷﺪﻩ ﺍﺯ ﻓﺎﻳﻞ a++ﻭ ﺑﺎ ﻭﺍﺳﻂ ﺫﻛﺮ ﺷﺪﻩ ﺩﺭ ﺍﺩﺍﻣﻪ. ﻣﺪﺭﺱ :ﺩﻛﺘﺮ ﺍﺟﻼﻟﻲ ﻣﺪﺍﺭ ﻫﺎﻱ ﻣﻨﻄﻘﻲ ﭘﻴﺸﺮﻓﺘﻪ 40412 ﺩﺍﻧﺸﻜﺪﻩﻱ ﻣﻬﻨﺪﺳﻲ ﻛﺎﻣﭙﻴﻮﺗﺮ ﻧﻴﻤﺴﺎﻝ ﺍﻭﻝ 90-91 ﻭﺍﺳﻂ ﻣﻮﺭﺩ ﻗﺒﻮﻝ: module decimal_adder_ subtractor (Sum, Ready, A, B, Start, Add, ;)Clock ﺩﺭ ﺍﻳﻦ ﻣﺪﺍﺭ ﺩﺭ ﺻﻮﺭﺗﻲ ﻛﻪ ﺳﻴﮕﻨﺎﻝ Startﻓﻌﺎﻝ ﺷﻮﺩ ﻋﻤﻠﻴﺎﺕ ﺟﻤﻊ ﺑﺎ ﺗﻔﺮﻳﻖ ﻣﺘﻨﺎﺳﺐ ﺑﺎ 0ﻳﺎ 1ﺑﻮﺩﻥ Addﺑﺮ ﺭﻭﻱ ﺩﻭ ﻭﺭﻭﺩﻱ A, Bﺍﻧﺠﺎﻡ ﻣﻲ ﺷﻮﺩ .ﺑﺎ ﭘﺎﻳﺎﻥ ﻳﺎﻓﺘﻦ ﻋﻤﻠﻴﺎﺕ ﺧﺮﻭﺟﻲ Sumﺁﻣﺎﺩﻩ ﺍﺳﺖ ﻭ ﺳﻴﮕﻨﺎﻝ Readyﻓﻌﺎﻝ ﻣﻲ ﺷﻮﺩ. .2.2ﻃﺮﺍﺣﻲ ﻳﻚ ﻣﺪﺍﺭ ﺗﻘﺴﻴﻢ ﻛﻨﻨﺪﻩ ﻣﺒﺘﻲ ﺑﺮ ﺍﻟﮕﻮﺭﻳﺘﻢ shift and subtract )(Unsigned Shift and Subtract Divider ﺷﺮﺡ ﻣﺴﺎﻟﻪ: ﺩﺭ ﺍﻳﻦ ﻣﺴﺎﻟﻪ ﺑﺎﻳﺪ ﻣﺪﺍﺭﻱ ﻃﺮﺍﺣﻲ ﻧﻤﺎﻳﻴﺪ ،ﺗﺎ ﺣﺎﺻﻞ ﻋﻤﻠﻴﺎﺕ ﺗﻘﺴﻴﻢ ﻳﻚ ﻋﺪﺩ 16ﺑﻴﺘﻲ )ﻣﻘﺴﻮﻡ ﻳﺎ (Dividerﺭﺍ ﺑﺮ ﻳﻚ ﻋﺪﺩ 16ﺑﻴﺘﻲ )ﻣﻘﺴﻮﻡ ﻋﻠﻴﻪ ﻳﺎ (Dividendﺭﺍ ﺑﻪ ﺩﺳﺖ ﺁﻭﺭﺩ. ﺍﻳﻦ ﻣﺪﺍﺭ ﺑﺎﻳﺪ ﻭﺭﻭﺩﻱ ﻫﺎﻱ ) clock, divider, dividend, ready (input numbers are readyﺭﺍ ﮔﺮﻓﺘﻪ ﻭ ﺧﺮﻭﺟﻲ ﻫﺎﻱ )ﺧﺎﺭﺝ ﻗﺴﻤﺖ ( quotientﻭ )ﺑﺎﻗﻲ ﻣﺎﻧﺪﻩ ( reminderﻭ )finish (output signals are ready ﺭﺍ ﺗﻮﻟﻴﺪ ﻛﻨﺪ .ﻫﻤﺎﻥ ﻃﻮﺭ ﻛﻪ ﻣﺸﺨﺺ ﺍﺳﺖ ،ﻋﻤﻠﻴﺎﺕ ﺗﻘﺴﻴﻢ** ﺑﺎﻳﺪ ﺗﻮﺳﻂ ﺟﺰ ﻋﻤﻠﻴﺎﺕ ﻫﺎﻱ ﺗﻔﺮﻳﻖ ) (Subtractﻭ ﺷﻴﻔﺖ ) (Shiftﺍﻧﺠﺎﻡ ﮔﻴﺮﺩ. ﻣﻮﺍﺭﺩ ﺗﺤﻮﻳﻠﻲ: ASM ﻣﺮﺑﻮﻃﻪ ﺑﻪ ﺍﻳﻦ ﻣﺪﺍﺭ ﭘﻴﺎﺩﻩ ﺳﺎﺯﻱ ﺷﺪﻩ ﺩﺭ ﺯﺑﺎﻥ ASM++ﺩﺭ ﻗﺎﻟﺐ ﻫﺎﻱ .vdxﻭ . .pdf ﭘﻴﺎﺩﻩ ﺳﺎﺯﻱ ﺻﺤﻴﺢ ASMﻣﺪﺍﺭ ﺗﻘﺴﻴﻢ ﻛﻨﻨﺪﻩ ﺑﻪ ﺻﻮﺭﺕ shift and addﺩﺭ ﺯﺑﺎﻥ ASM++ﺩﺭ ﻗﺎﻟﺐ ﺻﺤﻴﺢ. ﻓﺎﻳﻞ ﻣﻴﺎﻧﻲ ﺑﺎ ﭘﺴﻮﻧﺪ . .a++ ﻓﺎﻳﻞ ﺗﻮﻟﻴﺪ ﺷﺪﻩ ﺍﺯ .ASM ﻓﺎﻳﻞ verilogﺧﺮﻭﺟﻲ ﺗﻮﻟﻴﺪ ﺷﺪﻩ ﺑﺎ ﭘﺴﻮﻧﺪ ..v ﻓﺎﻳﻞ ﺗﻮﻟﻴﺪ ﺷﺪﻩ ﺍﺯ ﻓﺎﻳﻞ a++ﻭ ﺑﺎ ﻭﺍﺳﻂ ﺫﻛﺮ ﺷﺪﻩ ﺩﺭ ﺍﺩﺍﻣﻪ. ﻭﺍﺳﻂ ﻣﻮﺭﺩ ﻗﺒﻮﻝ ﺑﺮﺍﻱ ﻣﺪﺍﺭ ﻃﺮﺍﺣﻲ ﺷﺪﻩ: module divide(finish, ;)ready,quotient,remainder,dividend,divider,clock ﻣﺪﺍﺭ ﻫﺎﻱ ﻣﻨﻄﻘﻲ ﭘﻴﺸﺮﻓﺘﻪ 40412 ﻧﻴﻤﺴﺎﻝ ﺍﻭﻝ 90-91 ﻣﺪﺭﺱ :ﺩﻛﺘﺮ ﺍﺟﻼﻟﻲ ﺩﺍﻧﺸﻜﺪﻩﻱ ﻣﻬﻨﺪﺳﻲ ﻛﺎﻣﭙﻴﻮﺗﺮ ﺑﺎ ﺗﻮﺟﻪ ﺑﺎ ﻣﺎژﻭﻝ ﺑﺎﻻ ،ﺩﺭ ﻟﺒﻪ ﻱ clockﺍﮔﺮ ﺑﺎ ﺳﻴﮕﻨﺎﻝ readyﺭﻭﺑﺮﻭ ﺷﺪﻳﻢ ،ﻭﺭﻭﺩﻱ dividerﺧﻮﺍﻧﺪﻩ ﺷﺪﻩ ﻭ ﻋﻤﻠﻴﺎﺕ ﺗﻘﺴﻴﻢ ﺑﺮ dividendﺁﻏﺎﺯ ﻣﻲ ﺷﻮﺩ .ﭘﺲ ﺍﺯ ﺍﺗﻤﺎﻡ ﻓﺮﺁﻳﻨﺪ ﺗﻘﺴﻴﻢ ﺑﺎﻗﻲ ﻣﺎﻧﺪﻩ ﺗﻘﺴﻴﻢ ﺩﺭ remainderﻭ ﺧﺎﺭﺝ ﻗﺴﻤﺖ ﺑﻪ ﺩﺳﺖ ﺁﻣﺪﻩ ﺩﺭ quotientﺧﻮﺍﻫﺪ ﺑﻮﺩ ﻭ ﺧﺮﻭﺟﻲ finishﻓﻌﺎﻝ ﺧﻮﺍﻫﺪ ﺷﺪ. ** ﺑﺮﺍﻱ ﺁﺷﻨﺎﻳﻲ ﺑﺎ ﺍﻟﮕﻮﺭﻳﺘﻢ ﻣﺮﺑﻮﻁ ﺑﻪ ﺍﻳﻦ ﻣﺪﺍﺭ ﺗﻘﺴﻴﻢ ﻛﻨﻨﺪﻩ ﻣﻲ ﺗﻮﺍﻧﻴﺪ ﺑﻪ ﻣﺮﺟﻊ ﺯﻳﺮ ﻳﺎ ﻣﺮﺍﺟﻊ ﺩﻳﮕﺮ ﺩﺭ ﺍﻳﻦ ﺭﺍﺑﻄﻪ ﻣﺮﺍﺟﻌﻪ ﻛﻨﻴﺪ . Computer Arithmetic: Algorithms and Hardware Design, Behrooz Parhami, Chapter 13, Basic Division Schemes, 13.1, Shift/Subtract Division Algorithms ﻧﻜﺎﺕ: ﻟﻄﻔ ًﺎ ﺗﻮﺟﻪ ﺩﺍﺷﺘﻪ ﺑﺎﺷﻴﺪ ﻛﻪ: .1ﻣﻬﻠﺖ ﺗﺤﻮﻳﻞ ﺗﻤﺮﻳﻦ ﺩﻭ ﻫﻔﺘﻪ ﺍﺳﺖ .ﺗﻤﺮﻳﻦ ﻫﺎﻱ ﺧﻮﺩ ﺭﺍ ﺑﺎﻳﺪ ﺑﻪ ﺁﺩﺭﺱ [email protected]ﺑﺎ ﻋﻨﻮﺍﻧﻲ ﻣﺮﺗﺒﻂ ﺑﺎ ﺗﻤﺮﻳﻦ ﻛﻪ ﺩﺭ ﺑﺪﻧﻪ ﻱ ﺁﻥ ﻧﺎﻡ ﻭ ﺷﻤﺎﺭﻩ ﺩﺍﻧﺸﺠﻮﻳﻲ ﻭ ﺷﻤﺎﺭﻩ ﺗﻤﺮﻳﻦ ﻣﺮﻗﻮﻡ ﺑﺎﺷﺪ ،ﺍﺭﺳﺎﻝ ﻛﻨﻴﺪ .ﺗﺤﻮﻳﻞ ﺑﺎ ﺗﺎﺧﻴﺮ ﺗﻤﺮﻳﻦ ﺑﺎ ﻛﺴﺮ ﻧﻤﺮﻩ ﻫﻤﺮﺍﻩ ﺧﻮﺍﻫﺪ ﺑﻮﺩ. .2ﺑﻪ ﻫﻴﭻ ﻋﻨﻮﺍﻥ ﺗﻤﺮﻳﻦ ﻳﺎ ﻗﺴﻤﺘﻲ ﺍﺯ ﺁﻥ ﺭﺍ ﺍﺯ ﺩﻳﮕﺮﺍﻥ ﻛﭙﻲ ﻧﻜﻨﻴﺪ ﻭ ﺑﻪ ﺩﻳﮕﺮﺍﻥ ﻛﭙﻲ ﻧﺪﻫﻴﺪ. .3ﺩﺭ ﺻﻮﺭﺕ ﻭﺟﻮﺩ ﺍﺷﻜﺎﻝ ﺩﺭ ﻣﻮﺭﺩ ﺗﻤﺮﻳﻦ ﺁﻥ ﺭﺍ ﺑﺎ ﺩﺳﺘﻴﺎﺭ ﺁﻣﻮﺯﺷﻲ ﺩﺭ ﻣﻴﺎﻥ ﺑﮕﺬﺍﺭﻳﺪ. ﻣﻮﻓﻖ ﺑﺎﺷﻴﺪ! ﺣﺴﻴﻦ ﺍﻳﺰﺩﻱ ﺭﺍﺩ
© Copyright 2025 Paperzz