ﺑﻪ ﻧﺎﻡ ﺧﺪﺍ ﺗﺤﻮﻳﻞ ۱۵ :ﺗﻴﺮ ۸۷ ﭘﺮﻭﮊﻩ ﺩﺭﺱ ﻫﻢ‐ﻃﺮﺍﺣﻲ ﺳﺨﺖﺍﻓﺰﺍﺭ/ﻧﺮﻡﺍﻓﺰﺍﺭ ﻳﮏ ﭘﺮﺩﺍﺯﻧﺪﻩ ﺑﻪ ﺯﺑﺎﻥ SystemC ﺑﺎ ﻣﺸﺨﺼﺎﺕ ﺯﻳﺮ ﻃﺮﺍﺣﻲ ﮐﻨﻴﺪ: ﺷﺎﻣﻞ ﻣﺠﻤﻮﻋﻪ ﺩﺳﺘﻮﺭﺍﻟﻌﻤﻞ ﻫﺎﻱ ﺯﻳﺮ ﺑﺎﺷﺪ: .۱ .aﺩﺳﺘﻮﺭﺍﺕ ALU ﻃﺒﻖ ﺟﺪﻭﻝ ﺯﻳﺮ . .bﺩﺳﺘﻮﺭﺍﺕ ﭘﺮﺵ ﻏﻴﺮ ﺷﺮﻃﻲ ﻭ ﺷﺮﻃﻲ ﺑﺮ ﺍﺳﺎﺱ ﺻﻔﺮ ﺑﻮﺩﻥ ﻳﮏ ﺛﺒﺎﺕ . .cﺩﺳﺘﻮﺭﺍﺕ load ﻭ .store .dﻳﮏ ﺩﺳﺘﻮﺭﺍﻟﻌﻤﻞ ﺑﺮﺍﻱ ﻓﺮﺍﺧﻮﺍﻧﻲ ﻣﺎﮊﻭﻟﻬﺎﻱ ﺳﺨﺖ ﺍﻓﺰﺍﺭﻱ ﺍﺿﺎﻓﻪ ﺷﺪﻩ ﺑﻪ ﭘﺮﺩﺍﺯﻧﺪﻩ .ﺩﺭ ﺍﻳﻦ ﭘﺮﺩﺍﺯﻧﺪﻩ ،ﻋﻼﻭﻩ ﺑﺮ ﺩﺳﺘﻮﺭﺍﺕ ﻣﻌﻤﻮﻝ ،ﻣﻲ ﺗﻮﺍﻥ ﻳﮏ ﺍﻟﮕﻮﺭﻳﺘﻢ ﺭﺍ ﺑﻪ ﺻﻮﺭﺕ ﺳﺨﺖ ﺍﻓﺰﺍﺭﻱ ﭘﻴﺎﺩﻩ ﺳﺎﺯﻱ ﮐﺮﺩﻩ ﻭ ﺩﺭ ﻗﺎﻟﺐ ﻳﮏ ﭘﺮﺩﺍﺯﻧﺪﻩ ﮐﻤﮑﯽ ﻳﺎ ) FU (Functional Uintﻣﻄﺎﺑﻖ ﺷﮑﻞ ﺯﻳﺮ ﺑﻪ ﭘﺮﺩﺍﺯﻧﺪﻩ ﻣﺘﺼﻞ ﻧﻤﻮﺩ .ﻫﺮ FUﺩﺍﺭﺍﻱ ﻳﮏ ﺷﻨﺎﺳﻪ ) (idﺍﺳﺖ. ﺩﺳﺘﻮﺭﺍﻟﻌﻤﻠﻲ ﺑﻪ ﻓﺮﻡ CallFU fu_idﭘﻴﺎﺩﻩ ﺳﺎﺯﻱ ﮐﻨﻴﺪ ﮐﻪ ﮐﺎﺭ ﺟﺎﺭﻱ ﭘﺮﺩﺍﺯﻧﺪﻩ ﺭﺍ ﻣﺘﻮﻗﻒ ﻭ FUﻣﺮﺑﻮﻃﻪ ﺭﺍ ﻓﻌﺎﻝ ﮐﺮﺩﻩ ﻭ ﭘﺲ ﺍﺯ ﺍﺗﻤﺎﻡ ﮐﺎﺭ ،FUﭘﺮﺩﺍﺯﻧﺪﻩ ﺭﺍ ﺟﻬﺖ ﺍﺩﺍﻣﻪ ﮐﺎﺭ ﻓﻌﺎﻝ ﻧﻤﺎﻳﺪ .ﭼﻮﻥ FUﻫﺎ ﺑﺮ ﺭﻭﻱ ﺑﺎﺱ ﭘﺮﺩﺍﺯﻧﺪﻩ‐ﺣﺎﻓﻈﻪ ﻗﺮﺍﺭ ﺩﺍﺭﻧﺪ ،ﺑﺎﻳﺪ ﻣﮑﺎﻧﻴﺰﻣﻲ ﺑﺮﺍﻱ ﺗﻤﺎﻳﺰ ﺑﻴﻦ ﻓﺮﺍﺧﻮﺍﻧﻲ FUﻭ ﻋﻤﻠﻴﺎﺕ ﺧﻮﺍﻧﺪﻥ ﻭ ﻧﻮﺷﺘﻦ ﺩﺭ ﺣﺎﻓﻈﻪ ﺩﺭ ﻧﻈﺮ ﮔﺮﻓﺖ .ﺩﺭ ﺳﺎﺩﻩ ﺗﺮﻳﻦ ﺭﻭﺵ ،ﺑﺮﺍﻱ ﺍﻳﻦ ﮐﺎﺭ ﻣﻲ ﺗﻮﺍﻥ ﺍﺯ ﻳﮏ ﺳﻴﮕﻨﺎﻝ ﺑﻪ ﻧﺎﻡ callﺩﺭ ﮐﻨﺎﺭ ﺳﻴﮕﻨﺎﻝ ﻫﺎﻱ read , writeﺍﺳﺘﻔﺎﺩﻩ ﮐﺮﺩ .ﺑﺮﺍﻱ ﻋﻤﻠﻴﺎﺕ ﺧﻮﺍﻧﺪﻥ ﻭﻧﻮﺷﺘﻦ ﺣﺎﻓﻈﻪ ،ﺁﺩﺭﺱ ﻣﻮﺭﺩ ﻧﻈﺮ ﺑﺮ ﺭﻭﻱ ﮔﺬﺭﮔﺎﻩ ﺁﺩﺭﺱ ﻗﺮﺍﺭ ﮔﺮﻓﺘﻪ ﻭ ﺳﻴﮕﻨﺎﻝ ﻫﺎﻱ read ﻳﺎ writeﻳﮏ ﻣﻴﺸﻮﻧﺪ .ﺍﻣﺎ ﺑﺮﺍﻱ ﻓﺮﺍﺧﻮﺍﻧﻲ ،FUﺷﻨﺎﺳﻪ ﺁﻥ ﺑﺮ ﺭﻭﻱ ﮔﺬﺭﮔﺎﻩ ﺍﺩﺭﺱ ﻗﺮﺍﺭ ﮔﺮﻓﺘﻪ ﻭ ﺳﻴﮕﻨﺎﻝ call ﻳﮏ ﻣﻲ ﺷﻮﺩ .ﺑﺮﺍﻱ ﺍﺭﺳﺎﻝ ﭘﺎﺭﺍﻣﺘﺮ ﻫﺎ ﺑﻪ FUﻭ ﺩﺭﻳﺎﻓﺖ ﻣﻘﺎﺩﻳﺮ ﺑﺎﺯﮔﺸﺘﻲ ﺍﺯ ﺁﻥ ،ﺑﻪ ﻫﺮ FUﻳﮏ ﻣﺤﺪﻭﺩﻩ ﺍﺯ ﺁﺩﺭﺳﻬﺎﻱ ﺣﺎﻓﻈﻪ ﺭﺍ ﺍﺧﺘﺼﺎﺹ ﺩﻫﻴﺪ).ﺭﻭﺵ .(Memory‐mappedﺩﺭ ﺍﻳﻦ ﻣﻌﻤﺎﺭﻱ ،ﻧﻮﺷﺘﻦ ﭘﺎﺭﺍﻣﺘﺮ ﻫﺎﻱ ﻣﻮﺭﺩ ﻧﻴﺎﺯ FUﻗﺒﻞ ﺍﺯ ﻓﺮﺍﺧﻮﺍﻧﻲ ﺁﻥ ﻭ ﺧﻮﺍﻧﺪﻥ ﻧﺘﻴﺠﻪ ﺑﻌﺪ ﺍﺯ ﺍﺗﻤﺎﻡ ﮐﺎﺭ ﺍﺯ ﺁﺩﺭﺱ ﺍﺧﺘﺼﺎﺹ ﺩﺍﺩﻩ ﺷﺪﻩ ﺑﺮ ﻋﻬﺪﻩ ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺲ ﺍﺳﺖ . .۲ ﭘﺮﺩﺍﺯﻧﺪﻩ ﺑﺎﻳﺪ ﺑﻪ ﺻﻮﺭﺕ ﻳﮏ ﺧﻂ ﻟﻮﻟﻪ 3 (pipeline) ﻣﺮﺣﻠﻪ ﺍﻱ ﺷﺎﻣﻞ ،decode ،fetchﻭ executeﺑﺎﺷﺪ . .۳ ﻳﮏ ﺣﺎﻓﻈﻪ ۸ﮐﻴﻠﻮﺑﺎﻳﺘﻲ ﺭﺍ ﭘﻴﺎﺩﻩ ﺳﺎﺯﻱ ﮐﺮﺩﻩ ﻭ ﺑﻪ ﭘﺮﻭﺳﺴﻮﺭ ﻣﺘﺼﻞ ﮐﻨﻴﺪ .ﻳﮏ ﻧﻤﻮﻧﻪ ﺍﺯ ﭘﻴﺎﺩﻩ ﺳﺎﺯﻱ ﺣﺎﻓﻈﻪ ﺩﺭ SystemCﺩﺭ ﺑﺨﺶ ۷.۲ﮐﺘﺎﺏ ﺁﻣﺪﻩ ﺍﺳﺖ . .۴ ﻣﺪ ﺁﺩﺭﺱ ﺩﻫﻲ ﭘﺮﺩﺍﺯﻧﺪﻩ ﻣﺪ ﻣﺴﺘﻘﻴﻢ ﺍﺳﺖ .ﺑﻪ ﻋﻨﻮﺍﻥ ﮔﺰﻳﻨﻪ ﺍﺧﺘﻴﺎﺭﻱ )ﻳﺎ ﺩﺭ ﺻﻮﺭﺕ ﻧﻴﺎﺯ( ﻣﺪﻫﺎﻱ ﺁﺩﺭﺱ ﺩﻫﻲ ﻏﻴﺮﻣﺴﺘﻘﻴﻢ ،ﻧﺴﺒﻲ ،ﻭ ﺁﻧﻲ ﺭﺍ ﭘﻴﺎﺩﻩ ﮐﻨﻴﺪ . .۵ ﺑﺎ ﻧﻮﺷﺘﻦ ﻳﮏ test benchﻋﻤﻠﮑﺮﺩ ﭘﺮﺩﺍﺯﻧﺪﻩ ﺭﺍ ﭼﮏ ﮐﻨﻴﺪ Test bench .ﺗﺮﺟﻴﺤﺎ ﻳﮏ ﺍﻟﮕﻮﺭﻳﺘﻢ ﻭﺍﻗﻌﻲ ﺭﺍ ﭘﻴﺎﺩﻩ ﺳﺎﺯﻱ ﮐﻨﺪ . ﺗﻮﺿﻴﺤﺎﺕ : .aﻳﮏ ﭘﺮﻭﺗﮑﻞ ﺳﺎﺩﻩ ﺑﺮﺍﻱ ﻓﺮﺍﺧﻮﺍﻧﻲ FUﻫﺎ ﻭ ﻧﺤﻮﻩ ﻃﺮﺍﺣﻲ ﺑﻪ ﺻﻮﺭﺕ ﺧﻂ ﻟﻮﻟﻪ ﺩﺭ ﮐﻼﺱ ﻣﻮﺭﺩ ﺑﺤﺚ ﻗﺮﺍﺭ ﮔﺮﻓﺖ ﻭ ﺩﺭ ﻣﺠﻤﻮﻋﻪ ﻓﺎﻳﻞ ﻫﺎﻱ SystemCﺩﺭ ﺳﺎﻳﺖ ﺩﺭﺱ ﻣﻮﺟﻮﺩ ﺍﺳﺖ . .bﻻﺯﻡ ﻧﻴﺴﺖ ﮐﺪ ﻧﻮﺷﺘﻪ ﺷﺪﻩ ﻗﺎﺑﻞ ﺳﻨﺘﺰ ﺑﺎﺷﺪ . .cﺍﻧﺘﺨﺎﺏ ﭘﺎﺭﺍﻣﺘﺮ ﻫﺎﻳﻲ ﮐﻪ ﺩﺭ ﺗﻮﺻﻴﻒ ﭘﺮﻭﮊﻩ ﺫﮐﺮ ﻧﺸﺪﻩ ﺍﺳﺖ )ﻣﺎﻧﻨﺪ ﺗﻌﺪﺍﺩ ﻭ ﭘﻬﻨﺎﻱ ﺑﻴﺘﻲ ﺛﺒﺎﺕ ﻫﺎ( ﺑﺮ ﻋﻬﺪﻩ ﺧﻮﺩﺗﺎﻥ ﺍﺳﺖ . ﻣﻌﻤﺎﺭﯼ ﮐﻠﯽ ﺳﻴﺴﺘﻢ ﻣﺠﻤﻮﻋﻪ ﻋﻤﻠﻴﺎﺕ ﻭ ﻳﮏ bit‐sliceﺍﺯ ALU ﻣﻮﻓﻖ ﺑﺎﺷﻴﺪ ﻣﺪﺭﺳﯽ
© Copyright 2025 Paperzz