Issuu on Google+

‫اﻟﺠﻤﻬﻮرﯾﺔ اﻟﻌﺮﺑﯿﺔ اﻟﺴﻮرﯾﺔ‬ ‫وزارة اﻟﺘﻌﻠﯿﻢ اﻟﻌﺎﻟﻲ‬ ‫ﺟﺎﻣﻌﺔ ﺣﻠﺐ – ﻛﻠﯿﺔ اﻟﻬﻨﺪﺳﺔ اﻟﻜﻬﺮﺑﺎﺋﯿﺔ واﻻﻟﻜﺘﺮوﻧﯿﺔ‬ ‫ﻗﺴﻢ ﻫﻨﺪﺳﺔ اﻟﺤﻮاﺳﯿﺐ – ﻣﺨﺒﺮ اﻟﺤﺎﺳﺒﺎت‬ ‫إﻋﺪاد اﻟﻤﻬﻨﺪس ‪ :‬أﺳﺎﻣﺔ ﻋﺰﯾﺰ‬

‫ﻣﺪﺧﻞ إﻟﻰ اﺳﺘﺨﺪام اﻟﺒﺮﻣﺠﯿﺔ ‪ - MAX PLUS II‬اﻟﺠﺰء اﻟﺜﺎﻧﻲ‬ ‫‪Introduction to MAX PLUS II - Part 2‬‬ ‫اﻟﺴﻨﺔ اﻟﺜﺎﻟﺜﺔ ‪ -‬ﻗﺴﻢ ﻫﻨﺪﺳﺔ اﻟﺤﻮاﺳﯿﺐ‬

‫اﻟﻔﺼﻞ اﻟﺪراﺳﻲ اﻷول‬ ‫‪٢٠١١ - ٢٠١٠‬‬

‫‪١‬‬


‫اﻟﺠﻠﺴﺔ اﻟﺜﺎﻧﯿﺔ ﻣﻦ ﻋﻤﻠﻲ ﻣﺎدة ﺗﺼﻤﯿﻢ اﻟﻨﻈﻢ اﻟﻤﻨﻄﻘﯿﺔ و اﻟﺪارات اﻟﺮﻗﻤﯿﺔ‬ ‫اﻟﺴﻨﺔ اﻟﺜﺎﻟﺜﺔ ‪ -‬ﻗﺴﻢ ﻫﻨﺪﺳﺔ اﻟﺤﻮاﺳﯿﺐ‬ ‫اﻟﻨﻘﺎط اﻟﺘﻲ ﺳﺘﻌﺎﻟﺞ ﻓﻲ ﻫﺬه اﻟﺠﻠﺴﺔ ﻫﻲ ‪:‬‬ ‫‪ -١‬ﻣﺮاﺟﻌﺔ ﻛﯿﻔﯿﺔ ﺗﺼﻤﯿﻢ اﻟﺪارات اﻟﺘﺘﺎﺑﻌﯿﺔ ﻣﻦ ﺧﻼل ﻣﺜﺎل ﺗﺼﻤﯿﻤﻲ ﺑﺴﯿﻂ ‪.‬‬ ‫‪ -٢‬ﻋﺮض ﻛﯿﻔﯿﺔ إﻧﺸﺎء ﻣﻜﻮﻧﺎت ‪ Components‬ﺑﻠﻐﺔ ‪ VHDL‬ﻻﺳﺘﺨﺪاﻣﻬﺎ ﻓﯿﻤﺎ ﺑﻌﺪ ﻛﻮﺣﺪات ﺑﻨﺎء ﻓﻲ‬ ‫ﺗﺼﺎﻣﯿﻢ ﻣﺴﺘﻘﺒﻠﯿﺔ ) اﻟﺘﻤﻬﯿﺪ ﻟﻜﯿﻔﯿﺔ ﺑﻨﺎء ﻣﻜﺘﺒﺔ اﻟﻤﺼﻤﻢ اﻟﺨﺎﺻﺔ ( ‪.‬‬ ‫‪ -٣‬ﻋﺮض ﻛﯿﻔﯿﺔ اﺳﺘﺨﺪام ﻣﻨﻬﺠﯿﺔ اﻟﺘﺼﻤﯿﻢ اﻟﻬﺮﻣﻲ ﺑﺎﺳﺘﺨﺪام اﻟﺒﺮﻣﺠﯿﺔ ‪. MAX PLUS II‬‬ ‫أوﻻً ‪ :‬ﺳﻨﻌﺮض ﻓﯿﻤﺎ ﯾﻠﻲ ﻣﻨﻬﺠﯿﺔ ﺗﺼﻤﯿﻢ اﻟﺪارات اﻟﺘﺘﺎﺑﻌﯿﺔ ﻣﻦ ﺧﻼل ﻣﺜﺎل ﺑﺴﯿﻂ ‪ .‬ﺗﻘﻮم ﻫﺬه اﻟﻤﻨﻬﺠﯿﺔ ﻋﻠﻰ اﻟﺒﺪء‬ ‫أوﻻً ﺑﺘﺤﻮﯾﻞ وﺻﻒ اﻟﺪارة ) أداﺋﻬﺎ أو وﻇﺎﺋﻔﻬﺎ ( ‪ Circuit Specifications‬إﻟﻰ ﻣﺨﻄﻂ اﻟﺤﺎﻻت ‪States‬‬ ‫‪ . Diagram‬ﻣﻦ ﺛﻢ ﯾﺘﻢ اﻧﻄﻼﻗﺎً ﻣﻦ ﻣﺨﻄﻂ اﻟﺤﺎﻻت اﺳﺘﻨﺘﺎج ﺟﺪول اﻟﺤﺎﻻت ‪ States Table‬واﻟﺬي ﯾﺴﻤﺢ ﺑﺪوره‬ ‫ﺑﺎﺳﺘﻨﺒﺎط ﻣﺨﻄﻂ اﻟﺪارة اﻟﻤﻨﻄﻘﯿﺔ اﻟﻤﻄﻠﻮﺑﺔ وذﻟﻚ ﺑﺎﻻﺳﺘﻌﺎﻧﺔ ﺑﻤﺨﻄﻄﺎت ﻛﺎرﻧﻮف ﻛﻤﺎ ﺳﻨﺮى ﺑﻌﺪ ﻗﻠﯿﻞ ‪.‬‬ ‫ﻧﺮﯾﺪ ﻓﻲ ﻫﺬا اﻟﻤﺜﺎل ﺗﺼﻤﯿﻢ دارة ﺗﺘﺎﺑﻌﯿﺔ ﺑﺴﯿﻄﺔ ﻣﻨﺒﻮﺿﺔ ‪ Simple Clocked Sequential Circuit‬واﻟﺘﻲ ﺗﻤﺮ‬ ‫ﺑﺸﻜﻞ ﻣﺘﻜﺮر ﻋﺒﺮ اﻟﺤﺎﻻت اﻟﺜﻨﺎﺋﯿﺔ اﻟﺘﺎﻟﯿﺔ ‪ 10 ، 01 ، 00 :‬و ‪ 11‬وذﻟﻚ ﻋﻨﺪﻣﺎ ﺗﻜﻮن ﻗﯿﻤﺔ اﻟﻤﺪﺧﻞ ‪ x‬ﻟﻠﺪارة ﻣﺴﺎوﯾﺎً‬ ‫اﻟﻘﯿﻤﺔ ’‪ . ‘1‬ﺣﺎﻟﺔ اﻟﺪارة ﺗﺒﻘﻰ دون ﺗﻐﯿﯿﺮ ﻋﻨﺪﻣﺎ ﺗﻜﻮن ﻗﯿﻤﺔ اﻟﻤﺪﺧﻞ ‪ x‬ﻣﺴﺎوﯾﺔ ﻟﻠﻘﯿﻤﺔ ’‪ . ‘0‬إن ﻫﺬه اﻟﺪارة ﻫﻲ‬ ‫ﺑﺒﺴﺎﻃﺔ دارة ﻋﺪاد ﺛﻨﺎﺋﻲ ﺑﻄﻮل ﺧﺎﻧﺘﯿﻦ ﻷن ﺗﺘﺎﺑﻊ اﻟﺤﺎﻻت اﻟﺜﻨﺎﺋﯿﺔ اﻟﻤﻄﻠﻮب ﻣﻄﺎﺑﻖ ﻟﺘﺘﺎﺑﻊ اﻟﻌﺪ ﻣﻦ أﺟﻞ ﺧﺎﻧﺘﯿﻦ‬ ‫ﺛﻨﺎﺋﯿﺘﯿﻦ ‪ . Two Binary Digits‬اﻟﻤﺪﺧﻞ ‪ x‬ﻫﻮ ﻣﺘﻐﯿﺮ اﻟﺘﺤﻜﻢ ‪ Control Variable‬اﻟﺬي ﯾﺤﺪد ﻣﺘﻰ ﯾﺠﺐ أن‬ ‫ﯾﺴﺘﻤﺮ أو ﯾﺘﻮﻗﻒ اﻟﻌﺪ ‪.‬‬ ‫إن ﻫﺬا اﻟﻌﺪاد اﻟﺜﻨﺎﺋﻲ ﯾﺘﻄﻠﺐ ﻗﻼﺑﯿﻦ اﺛﻨﯿﻦ ‪ Two Flip-Flops‬ﻟﺘﻤﺜﯿﻞ اﻟﺨﺎﻧﺘﯿﻦ ‪ .‬ﯾﺒﯿﻦ اﻟﺸﻜﻞ )‪ (١‬ﻣﺨﻄﻂ اﻟﺤﺎﻻت‬ ‫ﻟﻬﺬه اﻟﺪارة اﻟﺘﺘﺎﺑﻌﯿﺔ ‪ .‬ﺗﻢ رﺳﻢ اﻟﻤﺨﻄﻂ ﺑﺤﯿﺚ ﯾﺒﯿﻦ أن ﺣﺎﻻت اﻟﺪارة ﺗﻮاﻓﻖ اﻟﻌﺪ اﻟﺜﻨﺎﺋﻲ ﻃﺎﻟﻤﺎ أن ’‪ . x = ‘1‬اﻟﺤﺎﻟﺔ‬ ‫اﻟﺘﻲ ﺗﻠﻲ اﻟﺤﺎﻟﺔ ”‪ “11‬ﻫﻲ اﻟﺤﺎﻟﺔ ”‪ “00‬واﻟﺘﻲ ﺗﺴﺒﺐ اﻟﻌﻮدة ﻣﻦ ﺟﺪﯾﺪ ﻟﺒﺪء دورة ﻋﺪ أﺧﺮى ‪ .‬إذا ﻛﺎﻧﺖ ’‪x = ‘0‬‬ ‫ﻓﺈن ﺣﺎﻟﺔ اﻟﺪارة ﺗﺒﻘﻰ ﺛﺎﺑﺘﺔ دون ﺗﻐﯿﯿﺮ ‪ .‬ﻫﺬه اﻟﺪارة اﻟﺘﺘﺎﺑﻌﯿﺔ ﻟﯿﺲ ﻟﻬﺎ ﻣﺨﺎرج ﺣﻘﯿﻘﯿﺔ ‪External Outputs‬‬ ‫وﺑﺎﻟﺘﺎﻟﻲ ﻓﺈن اﻷﺳﻬﻢ ﻓﻲ اﻟﻤﺨﻄﻂ ﻗﺪ ُﻗﺮِﻧﺖ ﺑﻘﯿﻤﺔ اﻟﺪﺧﻞ ‪ x‬ﻓﻘﻂ ‪ .‬ﻓﻲ اﻟﺤﻘﯿﻘﺔ ﯾﻤﻜﻦ اﻋﺘﺒﺎر ﺣﺎﻟﺔ اﻟﻘﻼﺑﺎت ﻛﻤﺨﺎرج‬ ‫ﻟﻠﻌﺪاد ‪.‬‬

‫‪00‬‬

‫‪x=0‬‬

‫‪x=1‬‬

‫‪x=1‬‬

‫‪11‬‬ ‫‪x=0‬‬

‫‪01‬‬ ‫‪x=1‬‬

‫‪x=1‬‬

‫‪x=0‬‬

‫‪01‬‬ ‫‪x=0‬‬

‫اﻟﺸﻜﻞ )‪ : (١‬ﻣﺨﻄﻂ اﻟﺤﺎﻻت ﻟﻠﺪارة اﻟﺘﺘﺎﺑﻌﯿﺔ ‪.‬‬ ‫‪1‬‬


‫ﻟﻘﺪ أﺳﻨﺪﻧﺎ ﻣﺴﺒﻘﺎً اﻟﺮﻣﺰ ‪ x‬ﻟﻤﺘﻐﯿﺮ اﻟﺪﺧﻞ وﺳﻨﻘﻮم اﻵن ﺑﺈﺳﻨﺎد اﻟﺮﻣﺰﯾﻦ ‪ A‬و ‪ B‬ﻟﻤﺨﺮﺟﻲ اﻟﻘﻼﺑﯿﻦ ) اﻟﻤﺨﺮج ‪B‬‬ ‫ﯾﻤﺜﻞ ﻫﻨﺎ اﻟﺨﺎﻧﺔ اﻷﻗﻞ أﻫﻤﯿﺔ ( ‪ .‬إن اﻟﺤﺎﻟﺔ اﻟﺘﺎﻟﯿﺔ ‪ Next State‬ﻟﻜﻞ ﻣﻦ ‪ A‬و ‪ B‬ﻛﺘﺎﺑﻊ ﻟﻠﺤﺎﻟﺔ اﻵﻧﯿﺔ ‪Present‬‬ ‫‪ State‬وﻟﻠﺪﺧﻞ ‪ x‬ﯾﻤﻜﻦ أن ﺗُﺴﺘﻨﺘﺞ ﻣﻦ ﻣﺨﻄﻂ اﻟﺤﺎﻻت ﻟﻠﺤﺼﻮل ﻋﻠﻰ ﺟﺪول اﻟﺤﺎﻻت اﻟﻤﻮﺿﺢ ﻓﯿﻤﺎ ﯾﻠﻲ ‪:‬‬

‫‪KB‬‬ ‫‪x‬‬ ‫‪x‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪x‬‬ ‫‪x‬‬ ‫‪0‬‬ ‫‪1‬‬

‫‪Flip-Flop Inputs‬‬ ‫‪KA‬‬ ‫‪JB‬‬ ‫‪x‬‬ ‫‪0‬‬ ‫‪x‬‬ ‫‪1‬‬ ‫‪x‬‬ ‫‪x‬‬ ‫‪x‬‬ ‫‪x‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪x‬‬ ‫‪1‬‬ ‫‪x‬‬

‫‪JA‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪x‬‬ ‫‪x‬‬ ‫‪x‬‬ ‫‪x‬‬

‫‪Next State‬‬ ‫‪A‬‬ ‫‪B‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪0‬‬

‫‪Input‬‬ ‫‪x‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪1‬‬

‫‪Present State‬‬ ‫‪A‬‬ ‫‪B‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬

‫ﺟﺪول اﻟﺤﺎﻻت ﻟﻠﺪارة اﻟﺘﺘﺎﺑﻌﯿﺔ ‪.‬‬ ‫ﺑﺎﻻﺳﺘﻌﺎﻧﺔ ﺑﻤﺨﻄﻄﺎت ﻛﺎرﻧﻮف ﻧﺠﺪ أن ‪:‬‬ ‫‪KA = B.x‬‬ ‫‪JB = x‬‬ ‫‪KB = x‬‬ ‫وﺑﺎﻟﺘﺎﻟﻲ ﻓﺈن ﻣﺨﻄﻂ اﻟﺪارة اﻟﻤﻨﻄﻘﯿﺔ ﯾﻤﻜﻦ ﺗﻤﺜﯿﻠﻪ ﻛﻤﺎ ﻫﻮ ﻣﻮﺿﺢ ﻓﻲ اﻟﺸﻜﻞ )‪: (٢‬‬

‫‪JA = B.x‬‬

‫اﻟﺸﻜﻞ )‪ : (٢‬ﻣﺨﻄﻂ اﻟﺪارة اﻟﻤﻨﻄﻘﯿﺔ ﻟﻠﻌﺪاد ‪.‬‬ ‫ﺳﻮف ﻧﻘﻮم اﻵن ﺑﻌﺮض ﻛﯿﻔﯿﺔ ﺑﻨﺎء ﻫﺬه اﻟﺪارة ﺑﺎﺳﺘﺨﺪام اﻟﻤﺤﺮر اﻟﺮﺳﻮﻣﻲ ‪ Graphic Editor‬ﺿﻤﻦ اﻟﺒﺮﻣﺠﯿﺔ‬ ‫‪ MAX PLUS II‬وﻣﻦ ﺛﻢ اﻟﻘﯿﺎم ﺑﻌﻤﻠﯿﺔ اﻟﻤﺤﺎﻛﺎة ﻟﻠﺘﺄﻛﺪ ﻣﻦ ﺻﺤﺔ ﻋﻤﻠﻬﺎ ‪.‬‬ ‫إن ذﻟﻚ ﯾﺘﻢ ﻣﻦ ﺧﻼل اﻟﺨﻄﻮات اﻟﺘﺎﻟﯿﺔ ‪:‬‬ ‫‪ -١‬إﻧﺸﺎء ﻣﺠﻠﺪ ﺟﺪﯾﺪ ﺧﺎص ﺿﻤﻦ اﻟﺴﻮاﻗﺔ ‪ D‬ﻣﻦ اﻟﻘﺮص اﻟﺼﻠﺐ ﺑﺎﺳﻢ ‪ Counter‬ﺑﺤﯿﺚ ﯾﻜﻮن ﻣﺠﻠﺪ اﻟﻤﺸﺮوع‬ ‫‪. Project Folder‬‬ ‫‪ -٢‬ﺗﺸﻐﯿﻞ اﻟﺒﺮﻣﺠﯿﺔ ‪. MAX PLUS II‬‬ ‫‪ -٣‬ﻣﻦ اﻟﻘﺎﺋﻤﺔ ‪ MAX PLUS II‬ﻧﺴﺘﺪﻋﻲ اﻟﻤﺤﺮر اﻟﺮﺳﻮﻣﻲ ‪. Graphic Editor‬‬ ‫‪ -٤‬ﻧﻘﻮم ﺑﺘﻜﺒﯿﺮ اﻟﻨﺎﻓﺬة إﻟﻰ اﻟﺤﺠﻢ اﻷﻋﻈﻤﻲ ﻟﻠﺤﺼﻮل ﻋﻠﻰ أﻛﺒﺮ ﻣﺴﺎﺣﺔ ﻣﻤﻜﻨﺔ ﻟﻠﺮﺳﻢ ‪.‬‬ ‫‪ -٥‬ﯾُﻔﻀّﻞ ﻗﺒﻞ اﻟﺒﺪء ﺑﺎﻟﻌﻤﻞ ﺗﺨﺰﯾﻦ اﻟﻤﻠﻒ اﻟﺤﺎﻟﻲ ) ﺑﺎﻟﺮﻏﻢ ﻣﻦ ﻛﻮﻧﻪ ﻣﺎ ﯾﺰال ﻓﺎرﻏﺎً ( ﻓﻲ اﻟﻤﺠﻠﺪ ‪Counter‬‬ ‫وﺑﺎﻟﺘﺎﻟﻲ ﻣﻦ اﻟﻘﺎﺋﻤﺔ ‪ File‬ﻧﺨﺘﺎر اﻷﻣﺮ … ‪ Save As‬ﻓﻨﺤﺼﻞ ﻋﻠﻰ اﻟﻨﺎﻓﺬة ذات اﻟﻌﻨﻮان ‪ . Save As‬ﻧﺨﺘﺎر اﻵن‬ ‫اﻟﻤﺴﺎر ‪ D:\Counter‬ﻟﺘﺨﺰﯾﻦ اﻟﻤﻠﻒ ﺿﻤﻨﻪ وﺳﻨﻌﻄﻲ ﻟﻠﻤﻠﻒ اﺳﻢ ‪ counter‬أﯾﻀﺎً ﻛﻤﺎ أن اﻻﻣﺘﺪاد ﯾﺠﺐ أن ﯾﻜﻮن‬ ‫ﻣﻦ اﻟﻨﻮع ) ‪ ( .gdf‬وﻫﻮ اﺧﺘﺼﺎر ‪. Graphic Design File‬‬ ‫‪2‬‬


‫‪ -٦‬ﺳﻨﻘﻮم اﻵن ﺑﺘﺨﺼﯿﺺ ﻣﺸﺮوع ﻟﻠﻤﻠﻒ اﻟﺤﺎﻟﻲ وﯾﺘﻢ ذﻟﻚ ﻣﻦ ﺧﻼل اﻟﻘﺎﺋﻤﺔ ‪ File‬ﺣﯿﺚ ﻧﺨﺘﺎر ﻣﻦ اﻟﺨﯿﺎر‬ ‫‪ Project‬اﻷﻣﺮ ‪ ) Set Project to Current File‬اﻻﺧﺘﺼﺎر اﻟﻤﻔﺘﺎﺣﻲ ﻟﻬﺬا اﻷﻣﺮ ﻫﻮ ‪( Ctrl+Shift+J‬‬ ‫وﻧﻼﺣﻆ اﻵن أن ﺷﺮﯾﻂ اﻟﻌﻨﻮان ﻟﻠﺒﺮﻣﺠﯿﺔ ‪ MAX PLUS II‬ﻗﺪ أﺻﺒﺢ ﯾﺘﻀﻤﻦ اﻟﻤﺴﺎر اﻟﻜﺎﻣﻞ ﻟﻠﻤﺸﺮوع اﻟﺤﺎﻟﻲ ‪.‬‬ ‫‪ -٧‬ﯾﺠﺐ ﻋﺎدةً اﺧﺘﯿﺎر اﻟﺸﺮﯾﺤﺔ اﻟﻬﺪف ‪ Target Device‬اﻟﺘﻲ ﻧﺮﯾﺪ ﺑﺮﻣﺠﺘﻬﺎ وﺑﺎﻟﺘﺎﻟﻲ ﻣﻦ ﺧﻼل اﻟﻘﺎﺋﻤﺔ ‪Assign‬‬ ‫ﻧﺨﺘﺎر اﻷﻣﺮ ‪ Device‬ﻓﻨﺤﺼﻞ ﻋﻠﻰ اﻟﻨﺎﻓﺬة ذات اﻟﻌﻨﻮان ‪ Device‬واﻟﺘﻲ ﯾﻤﻜﻨﻨﺎ ﻣﻦ ﺧﻼﻟﻬﺎ اﺧﺘﯿﺎر ﻋﺎﺋﻠﺔ اﻟﺸﺮﯾﺤﺔ‬ ‫‪ Device Family‬وﻟﺘﻜﻦ ‪ MAX7000‬ﻋﻠﻰ ﺳﺒﯿﻞ اﻟﻤﺜﺎل ﻛﻤﺎ ﻧﺨﺘﺎر اﻟﺸﺮﯾﺤﺔ ‪ Device‬وﻟﺘﻜﻦ ﻋﻠﻰ ﺳﺒﯿﻞ‬ ‫اﻟﻤﺜﺎل اﻟﺸﺮﯾﺤﺔ ‪ EPM7096QC100-7 :‬و أﺧﯿﺮاً ﻧﻨﻘﺮ ﻋﻠﻰ اﻟﺰر ‪. OK‬‬ ‫‪ -٨‬اﻵن ‪ ،‬ﻧﺎﻓﺬة اﻟﺮﺳﻢ ﻓﺎرﻏﺔ ﺑﯿﻀﺎء ﻟﺬﻟﻚ ﯾﺠﺐ اﻟﺒﺪء ﺑﺠﻠﺐ اﻟﻤﻜﻮﻧﺎت واﻟﻌﻨﺎﺻﺮ اﻟﻼزﻣﺔ ﻟﺒﻨﺎء اﻟﺪارة اﻟﻤﺒﯿﻨﺔ ﻓﻲ‬ ‫اﻟﺸﻜﻞ )‪ . (٢‬ﯾﻤﻜﻦ اﻟﻘﯿﺎم ﺑﻬﺬا ﻣﻦ ﺧﻼل اﻟﻨﻘﺮ ﺑﺸﻜﻞ ﻣﺰدوج ﺿﻤﻦ ﻣﻨﻄﻘﺔ ﻓﺎرﻏﺔ ﻣﻦ ﻧﺎﻓﺬة اﻟﺮﺳﻢ ﻓﻨﺤﺼﻞ ﻋﻠﻰ‬ ‫اﻟﻨﺎﻓﺬة اﻟﻤﺒﯿﻨﺔ ﻓﻲ اﻟﺸﻜﻞ )‪. (٣‬‬

‫اﻟﺸﻜﻞ )‪ : (٣‬ﻧﺎﻓﺬة اﺧﺘﯿﺎر ﻋﻨﺼﺮ ﻣﻦ اﻟﻤﻜﺘﺒﺎت ‪.‬‬ ‫ﻧﻼﺣﻆ ﻓﻲ اﻟﺸﻜﻞ )‪ (٣‬وﺟﻮد ﻋﺪة ﻣﻜﺘﺒﺎت ﯾﻤﻜﻦ اﻻﻋﺘﻤﺎد ﻋﻠﯿﻬﺎ وﻣﻦ أﻫﻤﻬﺎ وأﻛﺜﺮﻫﺎ اﺳﺘﺨﺪاﻣﺎً اﻟﻤﻜﺘﺒﺔ ‪) prim‬‬ ‫اﺧﺘﺼﺎراً ﻟﻠﻜﻠﻤﺔ ‪ ( primitives‬واﻟﺘﻲ ﺗﺘﻀﻤﻦ ﻛﺎﻓﺔ اﻟﻌﻨﺎﺻﺮ اﻟﺘﻲ ﺳﻨﺴﺘﺨﺪﻣﻬﺎ ﻟﺒﻨﺎء دارة اﻟﻌﺪاد اﻟﺤﺎﻟﯿﺔ ‪ .‬ﺑﺎﻟﻨﻘﺮ‬ ‫ﺑﺸﻜﻞ ﻣﺰدوج ﻋﻠﻰ ﻫﺬه اﻟﻤﻜﺘﺒﺔ ﻧﺤﺼﻞ ﻋﻠﻰ ﻣﺤﺘﻮﯾﺎﺗﻬﺎ ﻛﻤﺎ ﻫﻮ واﺿﺢ ﻓﻲ اﻟﺸﻜﻞ )‪. (٤‬‬

‫اﻟﺸﻜﻞ )‪ : (٤‬ﻋﻨﺎﺻﺮ اﻟﻤﻜﺘﺒﺔ ‪. prim‬‬

‫‪3‬‬


‫ﻣﻦ ﻫﺬه اﻟﻤﻜﺘﺒﺔ وﻣﻦ ﺧﻼل ﻗﺎﺋﻤﺔ اﻟﻌﻨﺎﺻﺮ اﻟﻤُﺪرﺟﺔ ﺗﺤﺖ اﻟﻌﻨﻮان ‪ Symbol Files‬ﻧﺨﺘﺎر اﻟﻌﻨﺼﺮ اﻷول ﻣﻦ‬ ‫اﻟﺪارة وﻫﻮ اﻟﻘﻼب ﻣﻦ اﻟﻨﻮع ‪ JK‬واﻟﺬي ﯾﻤﺘﻠﻚ اﻻﺳﻢ ‪ jkff‬ﺿﻤﻦ ﻫﺬه اﻟﻤﻜﺘﺒﺔ ﻛﻤﺎ ﻫﻮ ﻣﺒﯿﻦ ﻓﻲ اﻟﺸﻜﻞ )‪ (٥‬ﺛﻢ ﻧﻨﻘﺮ‬ ‫اﻟﺰر ‪. OK‬‬

‫اﻟﺸﻜﻞ )‪ : (٥‬ﻛﯿﻔﯿﺔ اﺧﺘﯿﺎر اﻟﻌﻨﺼﺮ ‪ jkff‬ﻣﻦ اﻟﻤﻜﺘﺒﺔ ‪. prim‬‬ ‫ﻧﺎﻓﺬة اﻟﺮﺳﻢ اﻵن أﺻﺒﺤﺖ ﺗﺤﺘﻮي ﻧﺴﺨﺔ واﺣﺪة ﻣﻦ اﻟﻘﻼب ‪ JK‬واﻟﻤﻮﺿﺢ ﻓﻲ اﻟﺸﻜﻞ )‪. (٦‬‬

‫اﻟﺸﻜﻞ )‪ : (٦‬ﺷﻜﻞ اﻟﻘﻼب ‪ JKFF‬ﺿﻤﻦ ﻧﺎﻓﺬة اﻟﻤﺤﺮر اﻟﺮﺳﻮﻣﻲ ﻓﻲ اﻟﺒﺮﻣﺠﯿﺔ ‪. MAX PLUS II‬‬ ‫‪ -٩‬ﺑﺎﻋﺘﺒﺎر أﻧﻨﺎ ﻧﺤﺘﺎج ﻟﻘﻼب آﺧﺮ أﯾﻀﺎً ﯾﻤﻜﻦ إﻋﺎدة اﻟﻌﻤﻠﯿﺔ أو إﻧﺸﺎء ﻧﺴﺨﺔ ‪ Copy‬ﻣﻦ اﻟﻘﻼب اﻷول ﻟﻠﺤﺼﻮل‬ ‫ﻋﻠﻰ ﻗﻼب آﺧﺮ ﺟﺪﯾﺪ وﯾﺘﻢ ذﻟﻚ ﻣﻦ ﺧﻼل اﻟﻨﺴﺦ ‪ Copy‬واﻟﻠﺼﻖ ‪. Paste‬‬ ‫‪ -١٠‬ﺑﻄﺮﯾﻘﺔ ﻣﺸﺎﺑﻬﺔ ﻧﻘﻮم اﻵن ﺑﺈﺣﻀﺎر ﺑﻮاﺑﺔ ‪ AND‬ﺑﻤﺪﺧﻠﯿﻦ واﻟﺘﻲ ﺗﻤﺘﻠﻚ اﻻﺳﻢ ‪ and2‬ﻣﻦ اﻟﻤﻜﺘﺒﺔ اﻟﺴﺎﺑﻘﺔ‬ ‫‪ prim‬وﻧﻀﻌﻬﺎ ﻓﻲ ﻣﻜﺎن ﻣﻨﺎﺳﺐ ﺿﻤﻦ ﻧﺎﻓﺬة اﻟﺮﺳﻢ ‪.‬‬ ‫‪ -١١‬ﻧﺒﺪأ اﻵن ﺑﺈﻧﺸﺎء ﻧﻘﺎط اﻟﺪﺧﻞ ﻟﻠﺪارة وﻫﻲ اﻟﻤﺪاﺧﻞ ‪ Reset‬و ‪ Clock‬و ‪ . x‬ﻟﺬﻟﻚ وﻣﻦ اﻟﻤﻜﺘﺒﺔ ‪ prim‬ﻧﺨﺘﺎر‬ ‫اﻟﻌﻨﺼﺮ اﻟﻤﺴﻤﻰ ‪ input‬واﻟﺬي ﻟﻪ اﻟﺸﻜﻞ اﻟﻤﺒﯿﻦ ﻓﻲ اﻟﺸﻜﻞ )‪. (٧‬‬

‫اﻟﺸﻜﻞ )‪ : (٧‬ﺷﻜﻞ ﻧﻘﻄﺔ اﻟﺪﺧﻞ ﻓﻲ اﻟﻤﺤﺮر اﻟﺮﺳﻮﻣﻲ‬ ‫ﺑﻌﺪ إﺣﻀﺎر ﻧﺴﺨﺔ ﻣﻦ ﻧﻘﻄﺔ اﻟﺪﺧﻞ ﻧﻮﻟﺪ ﻧﺴﺨﺘﯿﻦ إﺿﺎﻓﯿﺘﯿﻦ ﻋﻦ ﻃﺮﯾﻖ اﻟﻨﺴﺦ واﻟﻠﺼﻖ ﻛﻤﺎ رأﯾﻨﺎ ﻓﻲ ﺣﺎﻟﺔ اﻟﻘﻼب‬ ‫‪ . JKFF‬اﻵن ﯾﺘﻮﺟﺐ ﺗﺴﻤﯿﺔ ﻧﻘﺎط اﻟﺪﺧﻞ وذﻟﻚ ﯾﺘﻢ ﻣﻦ ﺧﻼل اﻟﻨﻘﺮ اﻟﻤﺰدوج ﻋﻠﻰ اﻟﻤﻨﻄﻘﺔ ‪PINE_NAME‬‬ ‫اﻟﻤﻮﺿﺤﺔ ﻓﻲ اﻟﺸﻜﻞ وﻣﻦ ﺛﻢ ﻛﺘﺎﺑﺔ اﺳﻢ اﻟﻤﺪﺧﻞ اﻟﻤﻮاﻓﻖ ﻟﻨﻘﻄﺔ اﻟﺪﺧﻞ ﻫﺬه ) ‪ x‬أو ‪ Reset‬أو ‪. ( Clock‬‬ ‫‪ -١٢‬ﺑﺎﻋﺘﺒﺎر أﻧﻨﺎ ﻗﺮرﻧﺎ أن ﻧﻌﺘﻤﺪ ﻣﺨﺎرج اﻟﻘﻼﺑﺎت ﻛﻤﺨﺮج ﻟﻠﻌﺪاد ﻟﺬﻟﻚ ﯾﺘﻮﺟﺐ ﻋﻠﯿﻨﺎ اﻵن إﻧﺸﺎء ﻧﻘﺎط اﻟﺨﺮج‬ ‫ﻟﻠﻌﺪاد ) ﻓﻲ اﻟﺤﻘﯿﻘﺔ ﻟﺪﯾﻨﺎ ﻫﻨﺎ ﻗﻼﺑﺎن وﺑﺎﻟﺘﺎﻟﻲ ﺳﻨﺤﺘﺎج إﻟﻰ ﻧﻘﻄﺘﻲ ﺧﺮج ﻫﻤﺎ ‪ y0‬و ‪ y1‬ﺣﯿﺚ أن ‪ y0���ﺗﻤﺜﻞ اﻟﺨﺎﻧﺔ‬ ‫اﻷﻗﻞ أﻫﻤﯿﺔ ‪ LSB‬و ‪ y1‬ﺗﻤﺜﻞ اﻟﺨﺎﻧﺔ اﻷﻛﺜﺮ أﻫﻤﯿﺔ ( ‪ .‬ﻹﺟﺮاء ذﻟﻚ ‪ ،‬ﻧﺨﺘﺎر ﻣﻦ اﻟﻤﻜﺘﺒﺔ ‪ prim‬اﻟﻌﻨﺼﺮ اﻟﻤﺴﻤﻰ‬ ‫‪ output‬واﻟﺬي ﻟﻪ اﻟﺸﻜﻞ اﻟﻤﺒﯿﻦ ﻓﻲ اﻟﺸﻜﻞ )‪. (٨‬‬ ‫‪4‬‬


‫اﻟﺸﻜﻞ )‪ : (٨‬ﺷﻜﻞ ﻧﻘﻄﺔ اﻟﺨﺮج ﻓﻲ اﻟﻤﺤﺮر اﻟﺮﺳﻮﻣﻲ ‪.‬‬ ‫ﻧﻨﺸﺊ ﻧﺴﺨﺔ أﺧﺮى وﻣﻦ ﺛﻢ ﻧﺴﻤﻲ ﻧﻘﻄﺔ اﻟﺨﺮج اﻷوﻟﻰ ) واﻟﺘﻲ ﺳﺘﻮﺻﻞ ﺑﻌﺪ ﻗﻠﯿﻞ ﻣﻊ ﻣﺨﺮج اﻟﻘﻼب اﻷول ( ‪y0‬‬ ‫ﻛﻤﺎ ﻧﺴﻤﻲ ﻧﻘﻄﺔ اﻟﺨﺮج اﻟﺜﺎﻧﯿﺔ ‪ y1‬وذﻟﻚ ﺑﻄﺮﯾﻘﺔ ﻣﺸﺎﺑﻬﺔ ﻟﻤﺎ ورد أﺛﻨﺎء ﺗﺴﻤﯿﺔ ﻧﻘﺎط اﻟﺪﺧﻞ ) أي اﻟﻨﻘﺮ اﻟﻤﺰدوج‬ ‫ﻋﻠﻰ اﻟﻤﻨﻄﻘﺔ ‪ PINE_NAME‬وﻛﺘﺎﺑﺔ اﺳﻢ اﻟﻤﺨﺮج اﻟﻤﻨﺎﺳﺐ ( ‪.‬‬ ‫‪ -١٣‬إن ﻛﻼً ﻣﻦ اﻟﻘﻼﺑﯿﻦ ‪ JKFF‬اﻟﻤﺴﺘﺨﺪﻣﯿﻦ ﻓﻲ اﻟﺪارة ﯾﻤﺘﻠﻚ ﻣﺪﺧﻞ ﺗﺼﻔﯿﺮ ﻗﺴﺮي ‪ CLRN‬ﻏﯿﺮ ﻣﺘﻮاﻗﺖ‬ ‫‪ Asynchronous‬وﻓﻌﺎل ﻋﻨﺪ اﻟﻤﺴﺘﻮى اﻟﻤﻨﺨﻔﺾ وﻣﺪﺧﻞ ﺗﻮﺿﯿﻊ ﻗﺴﺮي ‪ PRN‬ﻏﯿﺮ ﻣﺘﻮاﻗﺖ وﻓﻌﺎل ﻋﻨﺪ‬ ‫اﻟﻤﺴﺘﻮى اﻟﻤﻨﺨﻔﺾ أﯾﻀﺎً ‪ .‬اﻟﻤﺪاﺧﻞ ‪ PRN‬ﻟﻠﻘﻼﺑﯿﻦ ﻟﯿﺴﺖ ﺿﺮورﯾﺔ ﻓﻲ ﻫﺬا اﻟﻤﺜﺎل ﻟﺬﻟﻚ ﺳﻨﺼﻠﻬﺎ إﻟﻰ ﺟﻬﺪ اﻟﺘﻐﺬﯾﺔ‬ ‫اﻟﻤﻮﺟﺐ ‪ VCC‬ﻟﺬﻟﻚ ﻧﻘﻮم ﺑﺈﺣﻀﺎر اﻟﻌﻨﺼﺮ اﻟﻤﺴﻤﻰ ‪vcc‬‬ ‫ﺗﻤﻬﯿﺪاً ﻟﻮﺻﻠﻪ إﻟﻰ اﻟﻤﺪاﺧﻞ ‪ PRN‬ﻟﻠﻘﻼﺑﯿﻦ‬ ‫‪ . JKFF‬أﻣﺎ اﻟﻤﺪاﺧﻞ ‪ CLRN‬ﻟﻠﻘﻼﺑﯿﻦ ﻓﯿﺠﺐ أن ﺗﻮﺻﻞ إﻟﻰ ﻣﺪﺧﻞ ﺗﺼﻔﯿﺮ اﻟﻌﺪاد ) ﻧﻘﻄﺔ اﻟﺪﺧﻞ ‪ ( Reset‬ﻋﻦ‬ ‫) ﻋﺎﻛﺲ ‪ ( Inverter‬واﻟﺘﻲ ﯾﻤﻜﻦ إﺣﻀﺎر ﻧﺴﺨﺔ ﻣﻨﻬﺎ ﻣﻦ اﻟﻤﻜﺘﺒﺔ ‪ . prim‬ﻓﻲ‬ ‫ﻃﺮﯾﻖ ﺑﻮاﺑﺔ ‪NOT‬‬ ‫اﻟﺤﻘﯿﻘﺔ إن اﻟﺴﺒﺐ وراء اﺳﺘﺨﺪام ﻫﺬه اﻟﺒﻮاﺑﺔ ﻫﻮ ﻛﻮن اﻟﻤﺪﺧﻞ ‪ Reset‬ﻟﻠﻌﺪاد ﻓﻌﺎﻻً ﻋﻨﺪ اﻟﻤﺴﺘﻮى اﻟﻤﻨﻄﻘﻲ اﻟﻤﺮﺗﻔﻊ‬ ‫’‪ ‘1‬ﻓﻲ ﺣﯿﻦ أن اﻟﻤﺪاﺧﻞ ‪ CLRN‬ﻟﻠﻘﻼﺑﯿﻦ ‪ JKFF‬ﻓﻌﺎﻟﺔ ﻋﻨﺪ اﻟﻤﺴﺘﻮى اﻟﻤﻨﻄﻘﻲ اﻟﻤﻨﺨﻔﺾ ’‪. ‘0‬‬ ‫‪ -١٤‬ﻛﺎﻓﺔ اﻟﻌﻨﺎﺻﺮ اﻟﻼزﻣﺔ اﻵن ﻗﺪ أﺣﻀﺮت ﻣﻦ اﻟﻤﻜﺘﺒﺔ وﺑﺎﻟﺘﺎﻟﻲ ﻣﺎ ﺗﺒﻘﻰ ﻫﻮ ﺗﻮﺻﯿﻞ أﺳﻼك اﻟﺪارة ﻛﻤﺎ ﻫﻮ ﻣﺒﯿﻦ‬ ‫ﻓﻲ اﻟﺸﻜﻞ )‪ (٢‬اﻟﺴﺎﺑﻖ ‪ .‬ﺑﻌﺪ إﺟﺮاء اﻟﺘﻮﺻﯿﻼت ﺑﯿﻦ ﻋﻨﺎﺻﺮ اﻟﺪارة ﻧﺤﺼﻞ ﻋﻠﻰ اﻟﺪارة اﻟﻤﺒﯿﻨﺔ ﻓﻲ اﻟﺸﻜﻞ )‪. (٩‬‬

‫اﻟﺸﻜﻞ )‪ : (٩‬ﻣﺨﻄﻂ اﻟﺪارة ﺑﻌﺪ ﺗﻮﺻﯿﻞ اﻷﺳﻼك ﺿﻤﻦ اﻟﻤﺤﺮر اﻟﺮﺳﻮﻣﻲ ﻓﻲ اﻟﺒﺮﻣﺠﯿﺔ ‪. MAX PLUS II‬‬ ‫‪ -١٥‬ﻧﻘﻮم اﻵن ﺑﺎﻟﻨﻘﺮ ﻋﻠﻰ اﻷﯾﻘﻮﻧﺔ‬ ‫ﻓﻲ ﺷﺮﯾﻂ اﻷدوات أو اﻟﻀﻐﻂ ﻋﻠﻰ اﻻﺧﺘﺼﺎر اﻟﻤﻔﺘﺎﺣﻲ ‪ Ctrl+S‬ﻣﻦ‬ ‫أﺟﻞ ﺗﺨﺰﯾﻦ اﻟﺪارة اﻟﻨﻬﺎﺋﯿﺔ ﺗﻤﻬﯿﺪاً ﻟﻠﻘﯿﺎم ﺑﻌﻤﻠﯿﺔ اﻟﺘﺮﺟﻤﺔ ‪.‬‬ ‫‪ -١٦‬ﯾﻤﻜﻨﻨﺎ اﻵن اﺳﺘﺪﻋﺎء اﻟﻤﺘﺮﺟﻢ وذﻟﻚ ﻣﻦ ﺧﻼل اﻟﻘﺎﺋﻤﺔ ‪ MAX PLUS II‬ﺣﯿﺚ ﻧﺨﺘﺎر اﻷﻣﺮ ‪Compiler‬‬ ‫ﻓﻨﺤﺼﻞ ﻋﻠﻰ ﻧﺎﻓﺬة اﻟﻤﺘﺮﺟﻢ اﻟﻤﻮﺿﺤﺔ ﻓﻲ اﻟﺸﻜﻞ )‪. (١٠‬‬

‫اﻟﺸﻜﻞ )‪ : (١٠‬ﻧﺎﻓﺬة اﻟﻤﺘﺮﺟﻢ ‪ Compiler‬ﻓﻲ اﻟﺒﺮﻣﺠﯿﺔ ‪. MAX PLUS II‬‬ ‫‪5‬‬


‫‪ -١٧‬ﻧﻨﻘﺮ ﻋﻠﻰ اﻟﺰر ‪ Start‬ﻓﺘﺒﺪأ ﻋﻤﻠﯿﺔ اﻟﺘﺮﺟﻤﺔ اﻟﺘﻲ ﯾﻨﺠﻢ ﻋﻨﻬﺎ اﻟﻤﻠﻒ ‪ counter.pof‬ﻓﻲ ﺣﺎﻟﺔ ﻋﺪم وﺟﻮد‬ ‫أﺧﻄﺎء أﺛﻨﺎء ﻋﻤﻠﯿﺔ ﺗﻮﺻﯿﻞ اﻷﺳﻼك ‪ .‬إن ﻫﺬا اﻟﻤﻠﻒ ذا اﻻﻣﺘﺪاد ) ‪ .pof‬وﻫﻮ اﺧﺘﺼﺎر ‪Programmer Object‬‬ ‫‪ ( File‬ﻫﻮ اﻟﺬي ﯾﻘﻮم ﺑﻀﺒﻂ ) ﺑﺮﻣﺠﺔ ( اﻟﺸﺮﯾﺤﺔ اﻟﻬﺪف ﻋﻨﺪ إرﺳﺎﻟﻪ ﻋﺒﺮ ﻛﺒﻞ اﻟﺒﺮﻣﺠﺔ إﻟﻰ اﻟﺒﻮرد اﻟﺬي ﯾﺤﺘﻮي‬ ‫ﺷﺮﯾﺤﺔ اﻟـ ‪ CPLD‬أو اﻟـ ‪. FPGA‬‬ ‫‪ -١٨‬ﻓﻲ ﺣﺎﻟﺔ اﻧﺘﻬﺎء ﻋﻤﻠﯿﺔ اﻟﺘﺮﺟﻤﺔ ﺑﻨﺠﺎح ﻧﺤﺼﻞ ﻋﻠﻰ اﻟﻨﺎﻓﺬة اﻟﻤﻮﺿﺤﺔ ﻓﻲ اﻟﺸﻜﻞ )‪ (١١‬اﻟﺘﻲ ﺗﻌﻠﻤﻨﺎ ﺑﺄﻧﻪ ﻻ‬ ‫ﺗﻮﺟﺪ أﺧﻄﺎء ﻗﻮاﻋﺪﯾﺔ ﻓﻲ اﻟﺘﺼﻤﯿﻢ وﻟﻜﻦ ﻟﻠﺘﺄﻛﺪ ﻣﻦ ﺳﻼﻣﺔ أداء اﻟﺪارة ﻟﻮﻇﯿﻔﺘﻬﺎ ﯾﺘﻮﺟﺐ ﻋﻠﯿﻨﺎ اﻟﻘﯿﺎم ﺑﻌﻤﻠﯿﺔ اﻟﻤﺤﺎﻛﺎة‬ ‫‪. Simulation‬‬

‫اﻟﺸﻜﻞ )‪ : (١١‬رﺳﺎﻟﺔ إﻧﻬﺎء ﻋﻤﻠﯿﺔ اﻟﺘﺮﺟﻤﺔ ﺑﻨﺠﺎح ‪.‬‬ ‫‪ -١٩‬ﻗﺒﻞ اﺳﺘﺪﻋﺎء اﻟﻤﺤﺎﻛﻲ ‪ Simulator‬ﯾﺠﺐ أن ﻧﺠﻬﺰ اﻷﺷﻜﺎل اﻟﻤﻮﺟﯿﺔ ‪ Waveforms‬ﻹﺷﺎرات اﻟﺪﺧﻞ وﻟﺬﻟﻚ‬ ‫ﻧﻘﻮم ﺑﺎﺳﺘﺪﻋﺎء ﻣﺤﺮر ﺷﻜﻞ اﻟﻤﻮﺟﺔ ‪ Waveform Editor‬اﻧﻄﻼﻗﺎً ﻣﻦ اﻟﻘﺎﺋﻤﺔ ‪ MAX PLUS II‬وﺑﺎﻟﺘﺎﻟﻲ‬ ‫ﻧﺤﺼﻞ ﻋﻠﻰ اﻟﻨﺎﻓﺬة اﻟﻤﺒﯿﻨﺔ ﻓﻲ اﻟﺸﻜﻞ )‪. (١٢‬‬

‫اﻟﺸﻜﻞ )‪ : (١٢‬ﻧﺎﻓﺬة ﻣﺤﺮر ﺷﻜﻞ اﻟﻤﻮﺟﺔ ‪ Waveform Editor‬ﻓﻲ اﻟﺒﺮﻣﺠﯿﺔ ‪. MAX PLUS II‬‬ ‫‪ -٢٠‬ﻓﻲ اﻟﺒﺪء ﻧﻘﻮم ﺑﻀﺒﻂ ﻗﯿﻤﺔ ﻧﻬﺎﯾﺔ ﻣﺤﻮر اﻟﺰﻣﻦ ‪ End Time‬ﺑﺤﯿﺚ ﺗﺴﺎوي ‪ ) 1 us‬أي ‪ 1‬ﻣﯿﻜﺮوﺛﺎﻧﯿﺔ ( وذﻟﻚ‬ ‫ﻣﻦ ﺧﻼل اﻟﻘﺎﺋﻤﺔ ‪ File‬واﺧﺘﯿﺎر اﻷﻣﺮ … ‪ . End Time‬ﺑﻌﺪ ذﻟﻚ ﻧﻘﻮم ﺑﻀﺒﻂ ﻗﯿﻤﺔ ﺧﻄﻮة اﻟﺰﻣﻦ ‪Grid Size‬‬ ‫ﺑﺤﯿﺚ ﺗﺴﺎوي ‪ ) 50 ns‬أي ‪ 50‬ﻧﺎﻧﻮﺛﺎﻧﯿﺔ ( وذﻟﻚ ﻣﻦ ﺧﻼل اﻟﻘﺎﺋﻤﺔ ‪ Options‬واﺧﺘﯿﺎر اﻷﻣﺮ … ‪. Grid Size‬‬ ‫‪ -٢١‬ﻧﻨﻘﺮ اﻵن ﺑﺎﻟﺰر اﻷﯾﻤﻦ ﻓﻲ ﻣﻨﻄﻘﺔ اﻟﺮﺳﻢ ) ﻓﻲ وﺳﻂ اﻟﻤﺴﺎﺣﺔ اﻟﻤﺨﺼﺼﺔ ﻟﻠﺮﺳﻢ ( ﻟﻠﺤﺼﻮل ﻋﻠﻰ اﻟﻘﺎﺋﻤﺔ‬ ‫اﻟﻤﻨﺴﺪﻟﺔ اﻟﻤﻮﺿﺤﺔ ﻓﻲ اﻟﺸﻜﻞ )‪ (١٣‬واﻟﺘﻲ ﻧﺨﺘﺎر ﻣﻨﻬﺎ اﻷﻣﺮ … ‪. Enter Nodes From SNF‬‬

‫‪6‬‬


‫اﻟﺸﻜﻞ )‪ : (١٣‬اﻟﻘﺎﺋﻤﺔ اﻟﻤﻨﺴﺪﻟﺔ اﻟﺘﻲ ﺗﺴﻤﺢ ﺑﺎﺳﺘﺪﻋﺎء ﻧﺎﻓﺬة إﺣﻀﺎر اﻹﺷﺎرات إﻟﻰ ﻣﻨﻄﻘﺔ اﻟﺮﺳﻢ ﻓﻲ ﻣﺤﺮر‬ ‫ﺷﻜﻞ اﻟﻤﻮﺟﺔ وذﻟﻚ ﻣﻦ اﻟﻤﻠﻒ ‪ SNF ) counter.snf‬اﺧﺘﺼﺎر ﻟـ ‪. ( Simulator Netlist File‬‬ ‫‪ -٢٢‬ﻣﻦ اﻟﻨﺎﻓﺬة اﻟﻤﺴﺘﺪﻋﺎة واﻟﻤﺒﯿﻨﺔ ﻓﻲ اﻟﺸﻜﻞ )‪ (١٤‬ﻧﺨﺘﺎر اﻟﻤﺪاﺧﻞ ‪ Inputs‬واﻟﻤﺨﺎرج ‪ ) Outputs‬ﺑﻮﺿﻊ‬ ‫إﺷﺎرﺗﻲ اﻻﺧﺘﯿﺎر ﻗﺮب ﻛﻞ ﻣﻨﻬﻤﺎ ﻛﻤﺎ ﻫﻮ ﻣﻮﺿﺢ ﻓﻲ اﻟﺸﻜﻞ )‪ ( (١٤‬ﺛﻢ ﻧﻨﻘﺮ ﻋﻠﻰ اﻟﺰر ‪. ( List‬‬

‫اﻟﺸﻜﻞ )‪ : (١٤‬ﻧﺎﻓﺬة إدﺧﺎل اﻟﻌﻘﺪ ﻣﻦ ﻣﻠﻒ ﻻﺋﺤﺔ اﻟﺘﻮﺻﯿﻞ ﻟﻠﻤﺤﺎﻛﻲ ‪.‬‬ ‫‪ -٢٣‬ﺑﻌﺪ اﻟﻨﻘﺮ ﻋﻠﻰ اﻟﺰر ‪ List‬ﺗﻈﻬﺮ ﻛﺎﻓﺔ إﺷﺎرات اﻟﺪﺧﻞ واﻟﺨﺮج ﻟﻠﺪارة ﻓﻲ اﻟﻤﻨﻄﻘﺔ اﻟﯿﺴﺎرﯾﺔ اﻟﻤﺴﻤﺎة‬ ‫‪ Available Nodes & Groups‬وﺑﺎﻟﺘﺎﻟﻲ ﻧﻨﻘﺮ اﻵن ﻋﻠﻰ اﻟﺰر > = ﻹرﺳﺎل ﻛﺎﻓﺔ ﻫﺬه اﻹﺷﺎرات إﻟﻰ اﻟﻤﻨﻄﻘﺔ‬ ‫اﻟﯿﻤﯿﻨﯿﺔ اﻟﻤﺴﻤﺎة ‪ Selected Nodes & Groups‬ﺛﻢ ﻧﻨﻘﺮ ﻋﻠﻰ اﻟﺰر ‪ OK‬ﻛﻤﺎ ﻫﻮ ﻣﻮﺿﺢ ﻓﻲ اﻟﺸﻜﻞ )‪. (١٥‬‬

‫اﻟﺸﻜﻞ )‪ : (١٥‬اﺧﺘﯿﺎر ﻛﺎﻓﺔ إﺷﺎرات اﻟﺪﺧﻞ واﻟﺨﺮج ﻹﻇﻬﺎرﻫﺎ ﻓﻲ ﻧﺎﻓﺬة ﻣﺤﺮر ﺷﻜﻞ اﻟﻤﻮﺟﺔ ‪.‬‬ ‫‪ -٢٤‬اﻵن ﻧﺎﻓﺬة ﻣﺤﺮر ﺷﻜﻞ اﻟﻤﻮﺟﺔ وﺑﻌﺪ ﺟﻠﺐ إﺷﺎرات اﻟﺪﺧﻞ واﻟﺨﺮج ﺳﺘﺒﺪو ﻛﻤﺎ ﻫﻮ ﻣﺒﯿﻦ ﻓﻲ اﻟﺸﻜﻞ )‪. (١٦‬‬ ‫ﻗﺒﻞ اﻟﺒﺪء ﺑﻌﻤﻠﯿﺔ إﻋﻄﺎء اﻟﻘﯿﻢ ﻹﺷﺎرات اﻟﺪﺧﻞ ﻣﻦ اﻟﻤﻔﻀﻞ دوﻣﺎً ﺗﺮﺗﯿﺐ ﺗﺴﻠﺴﻞ اﻹﺷﺎرات ﺑﺤﯿﺚ ﻧﻀﻊ ﻋﺎدة ﻓﻲ‬ ‫اﻟﺒﺪاﯾﺔ ) ﻓﻲ اﻷﻋﻠﻰ ( اﻹﺷﺎرة ‪ Reset‬وﻣﻦ ﺛﻢ إﺷﺎرة ﻧﺒﻀﺎت اﻟﺴﺎﻋﺔ ‪ Clock‬وأﺧﯿﺮاً اﻹﺷﺎرة ‪ x‬ﻓﻲ ﺣﺎﻟﺘﻨﺎ ﻫﺬه )‬ ‫أي أن إﺷﺎرات اﻟﺪﺧﻞ ﺗﻮﺿﻊ ﻓﻲ اﻟﻤﻨﻄﻘﺔ اﻟﻌﻠﻮﯾﺔ وﻣﻦ ﺛﻢ ﻓﻲ اﻷﺳﻔﻞ ﺗﻮﺿﻊ إﺷﺎرات اﻟﺨﺮج ( ‪ .‬إن إﻋﺎدة ﺗﺮﺗﯿﺐ‬ ‫ﺗﺴﻠﺴﻞ اﻹﺷﺎرات ﻣﻔﯿﺪ ﺟﺪاً ﻟﺰﯾﺎدة وﺿﻮح ﻧﺘﺎﺋﺞ اﻟﻤﺤﺎﻛﺎة وإﻣﻜﺎﻧﯿﺔ اﻟﺘﺄﻛﺪ ﻣﻦ ﺳﻼﻣﺔ أداء اﻟﺪارة ﺑﺴﻬﻮﻟﺔ و ﺳﺮﻋﺔ ‪.‬‬ ‫‪7‬‬


‫اﻟﺸﻜﻞ )‪ : (١٦‬ﻧﺎﻓﺬة ﻣﺤﺮر ﺷﻜﻞ اﻟﻤﻮﺟﺔ ﺑﻌﺪ إﻇﻬﺎر إﺷﺎرات اﻟﺪﺧﻞ واﻟﺨﺮج ‪.‬‬ ‫‪ -٢٥‬ﯾﻤﻜﻦ ﺗﻐﯿﯿﺮ ﻣﻮﻗﻊ إﺷﺎرة ﻣﺎ ﻣﻦ ﺧﻼل اﻟﻨﻘﺮ ﺑﺎﻟﺰر اﻷﯾﺴﺮ ﻟﻠﻔﺄرة ﻋﻠﻰ ﻣِﻤﺴَﻚ ‪ The Handle‬اﻹﺷﺎرة وﻫﻮ‬ ‫اﻟﺴﻬﻢ ذو اﻟﻠﻮن اﻟﺮﻣﺎدي اﻟﺬي ﯾﻘﻊ ﻋﻠﻰ ﯾﺴﺎر اﺳﻢ اﻹﺷﺎرة وﻣﻦ ﺛﻢ وﻣﻊ اﺳﺘﻤﺮار اﻟﻀﻐﻂ ﻋﻠﻰ اﻟﺰر اﻷﯾﺴﺮ ﻧﻘﻮم‬ ‫ﺑﺰﻟﻖ اﻟﻤِﻤﺴَﻚ إﻟﻰ اﻟﻤﻮﻗﻊ اﻟﺠﺪﯾﺪ اﻟﻤﺮﻏﻮب ﻟﻺﺷﺎرة وﻣﻦ ﺛﻢ ﺗﺤﺮﯾﺮ زر اﻟﻔﺄرة ‪.‬‬ ‫‪ -٢٦‬ﺑﻌﺪ إﻋﺎدة ﺗﺮﺗﯿﺐ ﻣﻮاﻗﻊ اﻹﺷﺎرات ﻧﺤﺼﻞ ﻋﻠﻰ اﻟﻨﺎﻓﺬة اﻟﻤﺒﯿﻨﺔ ﻓﻲ اﻟﺸﻜﻞ )‪. (١٧‬‬

‫اﻟﺸﻜﻞ )‪ : (١٧‬ﻧﺎﻓﺬة ﻣﺤﺮر ﺷﻜﻞ اﻟﻤﻮﺟﺔ ﺑﻌﺪ إﻋﺎدة ﺗﺮﺗﯿﺐ ﻣﻮاﻗﻊ إﺷﺎرات اﻟﺪﺧﻞ واﻟﺨﺮج ‪.‬‬ ‫‪ -٢٧‬اﻵن ﻧﻘﻮم ﺑﺈﻋﻄﺎء ﻗﯿﻢ ﻛﯿﻔﯿﺔ ﻹﺷﺎرات اﻟﺪﺧﻞ ‪ Reset‬و ‪ Clock‬و ‪ x‬ﻛﻤﺎ ﻫﻮ ﻣﻮﺿﺢ ﻓﻲ اﻟﺸﻜﻞ )‪. (١٨‬‬ ‫ﻟﻤﺮاﺟﻌﺔ ﻛﯿﻔﯿﺔ اﻟﻘﯿﺎم ﺑﺬﻟﻚ ﻋﻠﻰ اﻟﻄﺎﻟﺐ ‪ /‬اﻟﻄﺎﻟﺒﺔ اﻟﻌﻮدة إﻟﻰ اﻟﻤﻠﻒ اﻟﺨﺎص ﺑﺎﻟﺠﻠﺴﺔ اﻷوﻟﻰ اﻟﺬي ﺗﻢ ﻓﯿﻪ ﺗﻮﺿﯿﺢ‬ ‫ﻛﯿﻔﯿﺔ إﻋﻄﺎء اﻟﻘﯿﻢ ﻹﺷﺎرة ﻣﺎ ﻣﻦ ﺧﻼل اﺳﺘﺨﺪام اﻷﯾﻘﻮﻧﺎت اﻟﻤﺘﻮﺿﻌﺔ ﻓﻲ ﺷﺮﯾﻂ اﻷدوات اﻟﺸﺎﻗﻮﻟﻲ ﻓﻲ اﻟﺠﻬﺔ‬ ‫اﻟﯿﺴﺮى ﻣﻦ ﻧﺎﻓﺬة ﻣﺤﺮر ﺷﻜﻞ اﻟﻤﻮﺟﺔ ‪.‬‬ ‫‪ -٢٨‬ﻗﺒﻞ اﺳﺘﺪﻋﺎء اﻟﻤﺤﺎﻛﻲ ﻧﻨﻘﺮ اﻵن ﻋﻠﻰ اﻷﯾﻘﻮﻧﺔ‬ ‫ﻟﺘﺨﺰﯾﻦ اﻟﻤﻠﻒ وﻣﻦ ﺛﻢ ﻧﻨﻘﺮ ﻋﻠﻰ اﻟﺰر ‪ OK‬ﺑﻌﺪ اﻟﺘﺄﻛﺪ‬ ‫ﻣﻦ أن اﺳﻢ اﻟﻤﻠﻒ ﻫﻮ ‪ counter‬واﻣﺘﺪاده ﻫﻮ ) ‪ .scf‬اﺧﺘﺼﺎراً ﻟـ ‪ ( Simulator Channel File‬وأﻧﻪ ﺳﻮف‬ ‫ﯾُﺨﺰّن ﺿﻤﻦ ﻣﺠﻠﺪ اﻟﻤﺸﺮوع ﻛﻤﺎ ﻫﻮ ﻣﻮﺿﺢ ﻓﻲ اﻟﺸﻜﻞ )‪. (١٩‬‬

‫‪8‬‬


‫اﻟﺸﻜﻞ )‪ : (١٨‬ﻧﺎﻓﺬة ﻣﺤﺮر ﺷﻜﻞ اﻟﻤﻮﺟﺔ ﺑﻌﺪ ﺿﺒﻂ ﻗﯿﻢ إﺷﺎرات اﻟﺪﺧﻞ ) ﻻﺣﻆ أن اﻟﻤﻠﻒ ﻟﻢ ﯾُﺨﺰّن ﺑﻌﺪ !!! ( ‪.‬‬

‫اﻟﺸﻜﻞ )‪ : (١٩‬ﻧﺎﻓﺬة ﺗﺨﺰﯾﻦ اﻟﻤﻠﻒ ‪ counter.scf‬ﺿﻤﻦ ﻣﺠﻠﺪ اﻟﻤﺸﺮوع ذي اﻟﻤﺴﺎر ‪D:\counter‬‬ ‫‪ -٢٩‬ﻧﻘﻮم اﻵن ﺑﺎﺳﺘﺪﻋﺎء اﻟﻤﺤﺎﻛﻲ ﻣﻦ ﺧﻼل اﻟﻘﺎﺋﻤﺔ ‪ MAX PLUS II‬واﺧﺘﯿﺎر اﻷﻣﺮ ‪ Simulator‬ﻓﺘﻈﻬﺮ ﻧﺎﻓﺬة‬ ‫اﻟﻤﺤﺎﻛﻲ اﻟﻤﺒﯿﻨﺔ ﻓﻲ اﻟﺸﻜﻞ )‪ . (٢٠‬ﻧﻨﻘﺮ اﻵن ﻋﻠﻰ اﻟﺰر ‪ Start‬ﻟﺒﺪء ﻋﻤﻠﯿﺔ اﻟﻤﺤﺎﻛﺎة ‪.‬‬

‫اﻟﺸﻜﻞ )‪ : (٢٠‬ﻧﺎﻓﺬة اﻟﻤﺤﺎﻛﻲ ﻓﻲ اﻟﺒﺮﻣﺠﯿﺔ ‪. MAX PLUS II‬‬ ‫‪ -٣٠‬ﻋﻨﺪ اﻧﺘﻬﺎء ﻋﻤﻠﯿﺔ اﻟﻤﺤﺎﻛﺎة ) اﺣﺘﺴﺎب ﻗﯿﻢ إﺷﺎرات اﻟﺨﺮج ﺑﻨﺎء ﻋﻠﻰ اﻟﺘﺼﻤﯿﻢ وﻋﻠﻰ ﻗﯿﻢ إﺷﺎرات اﻟﺪﺧﻞ (‬ ‫ﺑﻨﺠﺎح ﺗﻈﻬﺮ رﺳﺎﻟﺔ ﺗﻮﺿﺢ ذﻟﻚ ﻛﻤﺎ ﻫﻮ ﻣﺒﯿﻦ ﻓﻲ اﻟﺸﻜﻞ )‪. (٢١‬‬ ‫‪ -٣١‬ﻧﻨﻘﺮ ﻋﻠﻰ اﻟﺰر ‪ Ok‬ﻹﻏﻼق رﺳﺎﻟﺔ اﻧﺘﻬﺎء ﻋﻤﻠﯿﺔ اﻟﻤﺤﺎﻛﺎة ﺑﻨﺠﺎح ﻛﻤﺎ ﻧﻐﻠﻖ ﻧﺎﻓﺬة اﻟﻤﺤﺎﻛﻲ ﻓﻨﺮى ﻧﺘﺎﺋﺞ ﻋﻤﻠﯿﺔ‬ ‫اﻟﻤﺤﺎﻛﺎة ﻓﻲ ﻧﺎﻓﺬة ﻣﺤﺮر ﺷﻜﻞ اﻟﻤﻮﺟﺔ و اﻟﻤﺒﯿﻨﺔ ﻓﻲ اﻟﺸﻜﻞ )‪. (٢٢‬‬ ‫‪9‬‬


‫اﻟﺸﻜﻞ )‪ : (٢١‬رﺳﺎﻟﺔ اﻧﺘﻬﺎء ﻋﻤﻠﯿﺔ اﻟﻤﺤﺎﻛﺎة ﺑﻨﺠﺎح ‪.‬‬

‫اﻟﺸﻜﻞ )‪ : (٢٢‬ﻧﺘﺎﺋﺞ ﻋﻤﻠﯿﺔ اﻟﻤﺤﺎﻛﺎة ﻟﺪارة اﻟﻌﺪاد اﻟﺜﻨﺎﺋﻲ ﺑﻄﻮل ﺧﺎﻧﺘﯿﻦ ﻣﻊ ﻣﺪﺧﻞ ﺗﻤﻜﯿﻦ اﻟﻌﺪ ‪.‬‬ ‫ﻛﻤﺎ ﻫﻮ واﺿﺢ ﻓﻲ اﻟﺸﻜﻞ )‪ (٢٢‬ﻓﺈن أداء اﻟﺪارة اﻟﻤﺼﻤﻤﺔ ﺳﻠﯿﻢ ﺗﻤﺎﻣﺎً ﺣﯿﺚ أن ﺧﺮج اﻟﻌﺪاد ) اﻟﺨﺎﻧﺘﺎن ‪ y0‬و ‪( y1‬‬ ‫ﻣﺴﺎوٍ ﻟﻠﻘﯿﻤﺔ ”‪ “00‬ﺧﻼل اﻟﻤﺠﺎل اﻟﺰﻣﻨﻲ ‪ 0 ns - 100 ns‬ﺑﺴﺒﺐ ﺗﻔﻌﯿﻞ إﺷﺎرة ﺗﺼﻔﯿﺮ اﻟﻌﺪاد ‪ Reset‬ﺧﻼل ﻫﺬا‬ ‫اﻟﻤﺠﺎل ‪ .‬ﻣﻦ ﺛﻢ وﻋﻨﺪ اﻟﺠﺒﻬﺔ اﻟﺼﺎﻋﺪة ﻹﺷﺎرة ﻧﺒﻀﺎت اﻟﺴﺎﻋﺔ ‪ Clock‬ﻓﻲ اﻟﻠﺤﻈﺔ ‪ t = 150 ns‬ﻓﺈن ﺧﺮج اﻟﻌﺪاد‬ ‫ﯾﺼﺒﺢ ﻣﺴﺎوﯾﺎً ﻟﻠﻘﯿﻤﺔ ”‪ “01‬وذﻟﻚ ﺑﺴﺒﺐ ﻛﻮن اﻟﻤﺪﺧﻞ ’‪ . x = ‘1‬ﯾﺴﺘﻤﺮ اﻟﻌﺪ ﻋﻨﺪ اﻟﻠﺤﻈﺔ ‪ t = 250 ns‬أﯾﻀﺎً‬ ‫ﻟﻨﻔﺲ اﻷﺳﺒﺎب ) ﺟﺒﻬﺔ ﺻﺎﻋﺪة ﻟﻺﺷﺎرة ‪ Clock‬ﻣﻊ ﺑﻘﺎء ﻗﯿﻤﺔ ’‪ ( x = ‘1‬ﺑﺤﯿﺚ ﯾﺼﺒﺢ ﺧﺮج اﻟﻌﺪاد ﻣﺴﺎوﯾﺎً ﻟﻠﻘﯿﻤﺔ‬ ‫”‪ . “10‬ﻓﻲ اﻟﻠﺤﻈﺘﯿﻦ ‪ t = 350 ns‬و ‪ t = 450 ns‬ﻓﺈن اﻟﻌﺪاد ﯾﺤﺎﻓﻆ ﻋﻠﻰ اﻟﻘﯿﻤﺔ ”‪ “10‬دون ﺗﻐﯿﯿﺮ ﻷن ﻗﯿﻤﺔ‬ ‫اﻟﻤﺪﺧﻞ ‪ x‬ﻋﻨﺪ ﻫﺎﺗﯿﻦ اﻟﻠﺤﻈﺘﯿﻦ ﻣﺴﺎوﯾﺔ ﻟﻠﺼﻔﺮ وﺑﺎﻟﺘﺎﻟﻲ ﻓﺈن ﻫﺬا ﯾﻌﻨﻲ ﺗﻌﻄﯿﻞ اﻟﻌﺪ ) ﺗﻌﻄﯿﻞ ‪ Disable‬ﺑﻌﻜﺲ‬ ‫ﺗﻤﻜﯿﻦ ‪ . ( Enable‬ﻓﻲ اﻟﻠﺤﻈﺔ ‪ t = 550 ns‬ﯾﺘﻢ اﺳﺘﺌﻨﺎف اﻟﻌﺪ ﺑﺴﺒﺐ ﻋﻮدة ﻗﯿﻤﺔ اﻟﻤﺪﺧﻞ ‪ x‬إﻟﻰ ’‪ ‘1‬وﺑﺎﻟﺘﺎﻟﻲ ﻓﻦ‬ ‫ﺧﺮج اﻟﻌﺪاد ﯾﺼﺒﺢ ﻣﺴﺎوﯾﺎً ﻟﻠﻘﯿﻤﺔ ”‪ . “11‬ﻋﻨﺪ اﻟﻠﺤﻈﺔ ‪ t = 650 ns‬ﺗﻜﻮن ﻗﯿﻤﺔ ‪ x‬أﯾﻀﺎً ﻣﺴﺎوﯾﺔ ﻟﻠـ ’‪ ‘1‬وﺑﺎﻟﺘﺎﻟﻲ‬ ‫ﻓﺈن ﺧﺮج اﻟﻌﺪاد ﯾﻌﻮد إﻟﻰ اﻟﻘﯿﻤﺔ ”‪ “00‬ﻟﺘﺒﺪأ دورة ﻋﺪ ﺟﺪﯾﺪة ﻃﺎﻟﻤﺎ أن اﻟﻤﺪﺧﻞ ‪ x‬ﺑﻘﯿﻤﺔ ’‪ ‘1‬إﻟﻰ أن ﻧﺼﻞ أﺧﯿﺮاً‬ ‫إﻟﻰ اﻟﻠﺤﻈﺔ ‪ t = 900 ns‬ﺣﯿﺚ ﺗﺼﺒﺢ ﻗﯿﻤﺔ ﻣﺪﺧﻞ اﻟﺘﺼﻔﯿﺮ ‪ Reset‬ﻣﻦ ﺟﺪﯾﺪ ﻣﺴﺎوﯾﺔً ﻟﻠـ ’‪ ‘1‬وﺑﺎﻟﺘﺎﻟﻲ ﯾﺘﻢ ﺗﺼﻔﯿﺮ‬ ‫ﺧﺮج اﻟﻌﺪاد آﻧﯿﺎً دون اﻧﺘﻈﺎر اﻟﺠﺒﻬﺔ اﻟﺼﺎﻋﺪة ﻹﺷﺎرة ﻧﺒﻀﺎت اﻟﺴﺎﻋﺔ ‪ Clock‬ﻓﻲ اﻟﻠﺤﻈﺔ ‪ t = 950 ns‬ﻷن‬ ‫اﻟﺘﺼﻔﯿﺮ ﻫﻨﺎ ﻣﻦ اﻟﻨﻮع ﻏﯿﺮ اﻟﻤﺘﻮاﻗﺖ ‪. Asynchronous Reset‬‬

‫‪10‬‬


VHDL MAX PLUS 02