VHDL Quartus II 01

Page 1

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

‫ﻣﺪﺧﻞ إﻟﻰ اﺳﺘﺨﺪام اﻟﺒﺮﻣﺠﯿﺔ ‪ - Quartus II‬اﻟﺠﺰء اﻷول‬ ‫‪Introduction to Quartus II – Part 1‬‬ ‫اﻟﺴﻨﺔ اﻟﺜﺎﻟﺜﺔ ‪ -‬ﻗﺴﻢ ھﻨﺪﺳﺔ اﻟﺤﻮاﺳﯿﺐ‬

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

‫‪١‬‬


‫ﻣﺪﺧﻞ إﻟﻰ ﺗﺼﻤﯿﻢ اﻟﺪارات ﻣﻦ ﺧﻼل اﻟﺒﺮﻣﺠﯿﺔ ‪ Quartus II‬ﺑﺎﺳﺘﺨﺪام ﻟﻐﺔ ‪VHDL‬‬

‫ﺳﻮف ﻧﺘﻌﺮف ﻓﻲ ھﺬه اﻟﺠﻠﺴﺔ ﻋﻠﻰ ﻛﯿﻔﯿﺔ اﺳﺘﺨﺪام اﻟﺒﺮﻣﺠﯿﺔ ‪ Quartus II‬ﻛﻨﻈ ﺎم ﺗﺼ ﻤﯿﻢ ﺑﺎﺳ ﺘﺨﺪام اﻟﺤﺎﺳ ﺐ أو ﻣ ﺎ‬ ‫ﯾﻌﺮف ﺑﺎﺳﻢ ‪ CAD System ) Computer-Aided Design System‬اﺧﺘﺼﺎراً ( ‪.‬‬ ‫ﺳﻮف ﻧﻘﻮم ﻓﻲ اﻟﺒﺪاﯾﺔ ﺑﻌﺮض ﺻﻮرة ﻋﺎﻣﺔ ﻋﻦ اﻟﺨﻄ ﻮات اﻟﺘ ﻲ ﺗﺸ ﻜﻞ ﻣﻨﮭﺠﯿ ﺔ اﻟﺘﺼ ﻤﯿﻢ ﻟﻠ ﺪارات ﻣ ﻦ ﺧ ﻼل ﻧﻈ ﺎم‬ ‫‪ CAD‬ﯾﻌﺘﻤ ﺪ ﻋﻠ ﻰ ﺗﻨﺠﯿ ﺰ ‪ Implementation‬اﻟ ﺪارات ﺑﺎﺳ ﺘﺨﺪام أﺟﮭ ﺰة ‪ . FPGA‬ﻛﻤ ﺎ ﺳ ﻨﺒﯿﻦ ﻛﯿﻔﯿ ﺔ ﺗﻄﺒﯿ ﻖ‬ ‫ﺧﻄ ﻮات ھ ﺬه اﻟﻤﻨﮭﺠﯿ ﺔ ﺑﺎﺳ ﺘﺨﺪام اﻟﺒﺮﻣﺠﯿ ﺔ ‪ . Quartus II‬ﻋﻤﻠﯿ ﺔ اﻟﺘﺼ ﻤﯿﻢ ﺳ ﺘﻌﺮض ﻣ ﻦ ﺧ ﻼل ﺷ ﺮح اﻟﺘﻌﻠﯿﻤ ﺎت‬ ‫اﻟﻮاﺟﺐ ﺗﻨﻔﯿﺬھﺎ ﺧﻄﻮة ﺧﻄﻮة ﻣﻦ أﺟﻞ ﺗﻨﺠﯿﺰ دارة ﺑﺴﯿﻄﺔ ﺟ ﺪاً ﺑﺎﺳ ﺘﺨﺪام ﺷ ﺮﯾﺤﺔ ‪ FPGA‬ﻣﺼ ﻨﻌﺔ ﻣ ﻦ ﻗﺒ ﻞ ﺷ ﺮﻛﺔ‬ ‫‪. Altera‬‬ ‫ﺗﺘﻀﻤﻦ اﻟﺒﺮﻣﺠﯿﺔ ‪ Quartus II‬دﻋﻤﺎً ﻛﺎﻣﻼً ﻟﻜﺎﻓﺔ اﻟﻄﺮق اﻟﺸﺎﺋﻌﺔ ﻹدﺧﺎل ﺗﻮﺻﯿﻒ اﻟﺪارة اﻟﻤﻄﻠ ﻮب ﺗﺼ ﻤﯿﻤﮭﺎ إﻟ ﻰ‬ ‫ﻧﻈﺎم ‪ . CAD‬ﻓﻲ ھﺬه اﻟﺠﻠﺴﺔ ﺑﺎﻟﻄﺒﻊ ﺳﻨﺴﺘﺨﺪم ﻟﻐﺔ ‪ VHDL‬ﻛﺄداة ﻹدﺧﺎل اﻟﺘﺼﻤﯿﻢ ﺑﺤﯿﺚ ﻧﻘﻮم ﺑﺘﺤﺪﯾ ﺪ ﺧﺼ ﺎﺋﺺ‬ ‫اﻟ ﺪارة اﻟﻤﻄﻠﻮﺑ ﺔ ﻣ ﻦ ﺧ ﻼل ﻟﻐ ﺔ اﻟﺘﻮﺻ ﯿﻒ اﻟﻌﺘ ﺎدي ‪ . VHDL‬ﻓ ﻲ اﻟﺤﻘﯿﻘ ﺔ ﯾﻤﻜ ﻦ اﺳ ﺘﺨﺪام ﻟﻐ ﺔ ﺗﻮﺻ ﯿﻒ ﻋﺘ ﺎدي‬ ‫أﺧﺮى ﺗﺪﻋﻰ ‪ Verilog‬أو ﺑﺒﺴﺎﻃﺔ إدﺧﺎل اﻟﺪارة ﻣﻦ ﺧﻼل رﺳﻢ ﻣﺨﻄﻂ اﻟﺪارة ‪. Schematic Diagram‬‬ ‫اﻟﺨﻄ ﻮة اﻷﺧﯿ ﺮة ﻓ ﻲ ﻋﻤﻠﯿ ﺔ اﻟﺘﺼ ﻤﯿﻢ ﺗﺘﻤﺜ ﻞ ﻓ ﻲ ﺑﺮﻣﺠ ﺔ ‪ /‬ﺿ ﺒﻂ ‪ Configuration‬ﺟﮭ ﺎز اﻟ ـ ‪ FPGA‬اﻟﻤﺘ ﻮاﻓﺮ‬ ‫ﻟﯿﺘﺤﻮل إﻟﻰ اﻟﺪارة اﻟﻤﺮاد اﻟﺤﺼﻮل ﻋﻠﯿﮭ ﺎ ‪ .‬ﻣ ﻦ أﺟ ﻞ ﺗﻄﺒﯿ ﻖ ﻣ ﺎ ﺳ ﯿﺮد ﻓ ﻲ ھ ﺬه اﻟﺠﻠﺴ ﺔ ﻓﺈﻧ ﮫ ﯾﻔﺘ ﺮض ﺗ ﻮاﻓﺮ اﻟﻠ ﻮح‬ ‫اﻟﺘﺪرﯾﺒﻲ ‪ /‬اﻟﺒﻮرد ‪ ( Development and Education ) DE2‬اﻟﻤﺼﻤﻢ ﻣﻦ ﻗﺒﻞ ﺷﺮﻛﺔ ‪ Terasic‬ﺑﺎﻟﺘﻌ ﺎون ﻣ ﻊ‬ ‫ﺷﺮﻛﺔ ‪ . Altera‬ھﺬا اﻟﺒﻮرد ﯾﺠﺐ أن ﯾﻜﻮن ﻣﻮﺻﻮﻻً أﯾﻀ ﺎً ﻣ ﻦ ﺧ ﻼل ﻛﺎﺑ ﻞ ‪ USB‬إﻟ ﻰ ﺣﺎﺳ ﺐ ﯾﺘﻀ ﻤﻦ اﻟﺒﺮﻣﺠﯿ ﺔ‬ ‫‪ . Quartus II‬ﻋﻠﻰ ﻛﻞ ﺣﺎل ‪ ،‬ﻓﺈن اﻟﻄﺎﻟﺐ اﻟﺬي ﻻ ﯾﻤﺘﻠﻚ ھﺬا اﻟﺒﻮرد ﯾﺴﺘﻄﯿﻊ ﺗﻄﺒﯿ ﻖ اﻟﻘﺴ ﻢ اﻷﻛﺒ ﺮ ﻣﻤ ﺎ ﺳ ﯿﺮد ﻓ ﻲ‬ ‫ھﺬه اﻟﺠﻠﺴﺔ ﻣﻦ ﺧﻼل ﺗﻨﺼﯿﺐ واﺳﺘﺨﺪام اﻟﺒﺮﻣﺠﯿﺔ ‪ Quartus II‬ﻓﻲ ﺣﺎﺳﺒﮫ اﻟﺨﺎص !!!‬ ‫ﺑﺎﺧﺘﺼﺎر‪ ،‬ﻓﻲ ﻧﮭﺎﯾﺔ ھﺬه اﻟﺠﻠﺴﺔ ﺳﯿﺘﻌﻠﻢ اﻟﻄﺎﻟﺐ ﻛﯿﻔﯿﺔ ﺑﺮﻣﺠ ﺔ ‪ Programming‬و ﺿ ﺒﻂ ‪ Configuration‬ﺟﮭ ﺎز‬ ‫اﻟـ ‪ FPGA‬اﻟﻤﺮﻛﺐ ﻋﻠﻰ اﻟﺒﻮرد ‪ DE2‬ﻣﻦ ﺧﻼل اﺳﺘﺨﺪام اﻟﺒﺮﻣﺠﯿﺔ ‪ Quartus II‬وﻟﻐﺔ ‪. VHDL‬‬ ‫أﺷﻜﺎل اﻟﺸﺎﺷﺎت ‪ Screen Captures‬اﻟﻮاردة ﻓﻲ ھﺬه اﻟﻨﻮﻃﺔ ﺗﻢ اﻟﺤﺼﻮل ﻋﻠﯿﮭﺎ ﺑﺎﺳﺘﺨﺪام اﻟﻨﺴ ﺨﺔ ‪ 9.1 SP1‬ﻣ ﻦ‬ ‫اﻟﺒﺮﻣﺠﯿﺔ ‪ Quartus II‬وﺑﺎﻟﺘﺎﻟﻲ إذا ﻛﺎن اﻟﻄﺎﻟ ﺐ ﯾﺴ ﺘﺨﺪم ﻧﺴ ﺨﺎً ‪ /‬إﺻ ﺪارات أﺧ ﺮى ﻓ ﺈن اﻟﺼ ﻮر ﻗ ﺪ ﺗﻜ ﻮن ﻣﺨﺘﻠﻔ ﺔ‬ ‫ﺑﺸﻜﻞ ﻃﻔﯿﻒ ‪.‬‬ ‫اﻟﻨﻘﺎط اﻟﻤﺪروﺳﺔ ﻓﻲ اﻟﺠﻠﺴﺔ ‪:‬‬ ‫‪ -١‬ﻣﻨﮭﺠﯿﺔ ﻧﻤﻮذﺟﯿﺔ ﻟﻨﻈﺎم ‪. Typical CAD Flow : CAD‬‬ ‫‪ -٢‬ﺗﻤﮭﯿﺪ ‪. Getting Started :‬‬ ‫‪ -٣‬ﺑﺪء ﻣﺸﺮوع ﺟﺪﯾﺪ ‪. Starting a New Project :‬‬ ‫‪ -٤‬إدﺧﺎل اﻟﺘﺼﻤﯿﻢ ﺑﻠﻐﺔ ‪. VHDL Design Entry : VHDL‬‬ ‫‪ -٥‬ﺗﺮﺟﻤﺔ اﻟﺘﺼﻤﯿﻢ ‪. Compiling The Design :‬‬ ‫‪ -٦‬ﺗﺨﺼﯿﺺ أﻗﻄﺎب اﻟﺸﺮﯾﺤﺔ ‪. Pin Assignment :‬‬ ‫‪ -٧‬ﻣﺤﺎﻛﺎة اﻟﺪارة اﻟﻤﺼﻤﻤﺔ ‪. Simulating The Designed Circuit :‬‬ ‫‪ -٨‬ﺑﺮﻣﺠﺔ وﺿﺒﻂ ﺟﮭﺎز اﻟـ ‪. Programming And Configuring The FPGA Device : FPGA‬‬ ‫‪ -٩‬اﺧﺘﺒﺎر اﻟﺪارة اﻟﻤﺼﻤﻤﺔ ‪. Testing The Designed Circuit :‬‬

‫‪١‬‬


‫‪ -١‬ﻣﻨﮭﺠﯿﺔ ﻧﻤﻮذﺟﯿﺔ ﻟﻨﻈﺎم ‪Typical CAD Flow : CAD‬‬ ‫إن ﺑ ﺮاﻣﺞ اﻟﺘﺼ ﻤﯿﻢ ﺑﺎﺳ ﺘﺨﺪام اﻟﺤﺎﺳ ﺐ ‪ Computer Aided Design Software‬ﺗﺴ ﮭﻞ ﻋﻤﻠﯿ ﺔ ﺗﻨﺠﯿ ﺰ اﻟ ﺪارات‬ ‫اﻟﻤﻨﻄﻘﯿ ﺔ اﻟﻤﻄﻠﻮﺑ ﺔ ﺑﺎﺳ ﺘﺨﺪام أﺟﮭ ﺰة اﻟﻤﻨﻄ ﻖ اﻟﻘﺎﺑﻠ ﺔ ﻟﻠﺒﺮﻣﺠ ﺔ ‪ Programmable Logic Devices‬ﻛﺸ ﺮاﺋﺢ‬ ‫ﻣﺼﻔﻮﻓﺎت اﻟﺒﻮاﺑﺎت اﻟﻘﺎﺑﻠ ﺔ ﻟﻠﺒﺮﻣﺠ ﺔ ﻓ ﻲ اﻟﺤﻘ ﻞ أو ‪ FPGAs‬اﺧﺘﺼ ﺎراً ‪ .‬ﯾﺒ ﯿﻦ اﻟﺸ ﻜﻞ )‪ (١‬ﻣﺨﻄﻄ ﺎً ﺗ ﺪﻓﻘﯿﺎً ﻧﻤﻮذﺟﯿ ﺎً‬ ‫ﻟﻌﻤﻠﯿﺔ ﺗﻨﺠﯿﺰ دارة رﻗﻤﯿﺔ ﻣﺎ ﺑﻮاﺳﻄﺔ ﻧﻈﺎم ‪ CAD‬وﺑﺎﻻﻋﺘﻤﺎد ﻋﻠﻰ ﺷﺮﯾﺤﺔ ‪. FPGA‬‬

‫اﻟﺸﻜﻞ )‪ : (١‬ﻣﺨﻄﻂ ﺗﺪﻓﻘﻲ ﻟﻤﺮاﺣﻞ اﻟﺘﺼﻤﯿﻢ ﺑﺎﺳﺘﺨﺪام ﻧﻈﺎم ‪. CAD‬‬ ‫ﻛﻤﺎ ھﻮ واﺿﺢ ﻓﻲ اﻟﺸﻜﻞ )‪ (١‬ﻓﺈن اﻟﻤﺨﻄﻂ اﻟﺘﺪﻓﻘﻲ ﯾﺘﻜﻮن ﻣﻦ اﻟﻤﺮاﺣﻞ اﻟﺘﺎﻟﯿﺔ ‪:‬‬ ‫ إدﺧ ﺎل اﻟﺘﺼ ﻤﯿﻢ ) ‪ : ( Design Entry‬ﻓ ﻲ ھ ﺬه اﻟﻤﺮﺣﻠ ﺔ ﯾ ﺘﻢ ﺗﺤﺪﯾ ﺪ ﺧﺼ ﺎﺋﺺ اﻟ ﺪارة ﻣ ﻦ ﺧ ﻼل ﻣﺨﻄ ﻂ‬‫رﺳﻮﻣﻲ ﻟﻠﺪارة ‪ Schematic Diagram‬أو ﺑﺎﺳﺘﺨﺪام ﻟﻐﺔ ﺗﻮﺻﯿﻒ ﻋﺘﺎدي ‪Hardware Description‬‬ ‫‪ Language‬ﻛﻠﻐﺔ ‪ VHDL‬ﻋﻠﻰ ﺳﺒﯿﻞ اﻟﻤﺜﺎل ‪.‬‬ ‫ اﻟﺘﺮﻛﯿﺐ ) ‪ : ( Synthesis‬ﯾﺘﻢ ﻓﻲ ھ ﺬه اﻟﻤﺮﺣﻠ ﺔ ﺗﺮﻛﯿ ﺐ اﻟ ﺪارة اﻟﺘ ﻲ ﺗ ﻢ إدﺧ ﺎل اﻟﺘﺼ ﻤﯿﻢ اﻟﺨ ﺎص ﺑﮭ ﺎ ﻓ ﻲ‬‫اﻟﻤﺮﺣﻠﺔ اﻟﺴﺎﺑﻘﺔ اﻋﺘﻤﺎداً ﻋﻠ ﻰ اﻟﻌﻨﺎﺻ ﺮ اﻟﻤﻨﻄﻘﯿ ﺔ ‪ ( LEs ) Logic Elements‬اﻟﻤﻮﺟ ﻮدة داﺧ ﻞ ﺷ ﺮﯾﺤﺔ‬ ‫اﻟـ ‪. FPGA‬‬ ‫ اﻟﻤﺤﺎﻛﺎة اﻟﻮﻇﺎﺋﻔﯿﺔ ) ‪ : ( Functional Simulation‬ﯾﺘﻢ ھﻨﺎ اﺧﺘﺒ ﺎر اﻟ ﺪارة اﻟﻤﺮﻛﺒ ﺔ ﻓ ﻲ اﻟﻤﺮﺣﻠ ﺔ اﻟﺴ ﺎﺑﻘﺔ‬‫ﻟﻠﺘﺤﻘﻖ ﻣﻦ ﺻ ﺤﺔ أداﺋﮭ ﺎ ﻟﻮﻇﺎﺋﻔﮭ ﺎ وﻟﻜ ﻦ ھ ﺬه اﻟﻤﺤﺎﻛ ﺎة ﻻ ﺗﺄﺧ ﺬ ﺑﻌ ﯿﻦ اﻻﻋﺘﺒ ﺎر اﻟﺘ ﺄﺧﯿﺮات اﻟﺰﻣﻨﯿ ﺔ اﻟﻔﻌﻠﯿ ﺔ‬ ‫اﻟﻨﺎﺗﺠﺔ ﻋﻦ أزﻣﻨﺔ اﻻﺳﺘﺠﺎﺑﺔ ﻟﻠﻌﻨﺎﺻﺮ اﻟﻤﻨﻄﻘﯿﺔ اﻟﻤﻜﻮﻧﺔ ﻟﻠﺪارة ‪.‬‬ ‫‪٢‬‬


‫‪-‬‬

‫‪-‬‬

‫‬‫‪-‬‬

‫ﺿ ﻊ اﻟﺨ ﺎص ﺑﻨﻈ ﺎم اﻟ ـ ‪ CAD‬ﻓ ﻲ ھ ﺬه اﻟﻤﺮﺣﻠ ﺔ ﺑﺘﺤﺪﯾ ﺪ أﻣ ﺎﻛﻦ ﺗﻮﺿ ﻊ‬ ‫اﻟﺘﻮﺿﯿﻊ ) ‪ : ( Fitting‬ﯾﻘﻮم اﻟﻤﻮ ّ‬ ‫اﻟﻌﻨﺎﺻ ﺮ اﻟﻤﻨﻄﻘﯿ ﺔ ‪ LEs‬اﻟﻤﺤ ﺪدة ﻓ ﻲ ﻻﺋﺤ ﺔ اﻟﺘﻮﺻ ﯿﻞ ‪ Netlist‬أي ﻛﯿﻔﯿ ﺔ اﺳ ﺘﺨﺪام اﻟﻌﻨﺎﺻ ﺮ اﻟﻤﻨﻄﻘﯿ ﺔ‬ ‫اﻟﻔﻌﻠﯿﺔ ﻓﻲ ﺷﺮﯾﺤﺔ ‪ FPGA‬اﻟﮭﺪف ‪ .‬ﻓﻲ ھﺬه اﻟﻤﺮﺣﻠﺔ أﯾﻀﺎً ﯾﺘﻢ اﺧﺘﯿﺎر أﺳﻼك اﻟﺘﻮﺟﯿ ﮫ ‪Routing Wires‬‬ ‫ﺿﻤﻦ اﻟﺸﺮﯾﺤﺔ ﻣﻦ أﺟﻞ ﺗﺤﻘﯿﻖ اﻟﻮﺻﻼت اﻟﻤﻄﻠﻮﺑﺔ ﺑﯿﻦ اﻟﻌﻨﺎﺻ ﺮ اﻟﻤﻨﻄﻘﯿ ﺔ اﻟﻔﻌﻠﯿ ﺔ اﻟﺘ ﻲ ﺗ ﻢ اﺧﺘﯿﺎرھ ﺎ ﻣ ﻦ‬ ‫ﻗﺒﻞ اﻟﻤﻮﺿّﻊ ‪.‬‬ ‫اﻟﺘﺤﻠﯿ ﻞ اﻟﺰﻣﻨ ﻲ ) ‪ : ( Timing Analysis‬ﻓ ﻲ ھ ﺬه اﻟﻤﺮﺣﻠ ﺔ ﯾ ﺘﻢ ﺗﺤﻠﯿ ﻞ أزﻣﻨ ﺔ اﻟﺘ ﺄﺧﯿﺮ اﻟﻨﺎﺟﻤ ﺔ ﻋ ﻦ‬ ‫ﻋﻤﻠﯿﺎت اﻧﺘﺸ ﺎر اﻹﺷ ﺎرات ‪ Propagation Delays‬ﻋﺒ ﺮ اﻟﻤﺴ ﺎرات اﻟﻤﺨﺘﻠﻔ ﺔ ﻓ ﻲ اﻟ ﺪارة اﻟﻔﻌﻠﯿ ﺔ اﻟﻨﺎﺟﻤ ﺔ‬ ‫ﻋ ﻦ اﻟﻤﺮﺣﻠ ﺔ اﻟﺴ ﺎﺑﻘﺔ ﺑﮭ ﺪف إﻋﻄ ﺎء دﻻﻻت ﻋ ﻦ اﻷداء اﻟﻤﺘﻮﻗ ﻊ ) اﻟﻤﻨﺘﻈ ﺮ ( ﻟﻠ ﺪارة ‪Expected‬‬ ‫‪. Performance of the Circuit‬‬ ‫اﻟﻤﺤﺎﻛﺎة اﻟﺰﻣﻨﯿﺔ ) ‪ : ( Timing Simulation‬اﻟ ﺪارة اﻟﻔﻌﻠﯿ ﺔ اﻟﻨﺎﺟﻤ ﺔ ﻋ ﻦ ﻣﺮﺣﻠ ﺔ اﻟﺘﻮﺿ ﯿﻊ ‪ Fitting‬ﯾ ﺘﻢ‬ ‫اﺧﺘﺒﺎرھﺎ ھﻨﺎ ﻣﻦ أﺟﻞ اﻟﺘﺤﻘﻖ ﻣﻦ ﺻﺤﺔ ﻋﻤﻠﮭﺎ و أداﺋﮭﺎ اﻟﺰﻣﻨﻲ ‪.‬‬ ‫اﻟﺒﺮﻣﺠﺔ واﻟﻀ ﺒﻂ ) ‪ : ( Programming And Configuration‬ﻓ ﻲ ھ ﺬه اﻟﻤﺮﺣﻠ ﺔ اﻷﺧﯿ ﺮة ﻓ ﺈن اﻟ ﺪارة‬ ‫اﻟﻤﺼ ﻤﻤﺔ ﯾ ﺘﻢ ﺗﻨﺠﯿﺰھ ﺎ ﻓ ﻲ ﺷ ﺮﯾﺤﺔ ‪ FPGA‬ﻓﻌﻠﯿ ﺔ وذﻟ ﻚ ﻣ ﻦ ﺧ ﻼل ﺑﺮﻣﺠ ﺔ ﻣﻔ ﺎﺗﯿﺢ اﻟﻀ ﺒﻂ‬ ‫‪ Configuration Switches‬اﻟﺘ ﻲ ﺗﻀ ﺒﻂ إﻋ ﺪادات اﻟﻌﻨﺎﺻ ﺮ اﻟﻤﻨﻄﻘﯿ ﺔ ‪ LEs‬وﺗﻘ ﻮم ﺑﺈﻧﺸ ﺎء وﺻ ﻼت‬ ‫اﻻرﺗﺒﺎط اﻟﻼزﻣﺔ ‪. Required Wiring Connections‬‬

‫ﻓﯿﻤﺎ ﯾﻠﻲ ‪ ،‬ﺳﻨﻘﻮم ﺑﻌﺮض اﻟﻤﻤﯿﺰات اﻟﺮﺋﯿﺴﯿﺔ ﻟﻠﺒﺮﻣﺠﯿﺔ ‪ Quartus II‬وذﻟﻚ ﻣﻦ ﺧ ﻼل ﺗﻮﺿ ﯿﺢ ﻛﯿﻔﯿ ﺔ اﺳ ﺘﺨﺪام ھ ﺬه‬ ‫اﻟﺒﺮﻣﺠﯿﺔ ﻣﻦ أﺟﻞ ﺗﺼﻤﯿﻢ وﺗﻨﺠﯿﺰ دارة ﻣﻌﯿﻨﺔ ﻣﺎ اﻧﻄﻼﻗﺎً ﻣﻦ ﻟﻐﺔ اﻟﺘﻮﺻﯿﻒ اﻟﻌﺘ ﺎدي ‪ . VHDL‬ﺳ ﻮف ﻧﻌﺘﻤ ﺪ ﻋﻠ ﻰ‬ ‫اﺳ ﺘﺨﺪام واﺟﮭ ﺔ اﻟﻤﺴ ﺘﺨﺪم اﻟﺮﺳ ﻮﻣﯿﺔ ‪ ) Graphical User Interface‬أو ‪ GUI‬اﺧﺘﺼ ﺎراً ( ﻟﺘﻨﻔﯿ ﺬ اﻟﺘﻌﻠﯿﻤ ﺎت‬ ‫واﻷواﻣﺮ ﺿﻤﻦ اﻟﺒﺮﻣﺠﯿﺔ ‪ . Quartus II‬ﻓﻲ ﻧﮭﺎﯾﺔ اﻟﺠﻠﺴﺔ ﺳﻮف ﻧﻜﻮن ﻗﺪ ﻏﻄﯿﻨﺎ اﻟﻤﻮاﺿﯿﻊ اﻟﺘﺎﻟﯿﺔ ﺑﺎﻟﺘﻔﺼﯿﻞ ‪:‬‬ ‫‬‫‬‫‬‫‬‫‬‫‬‫‪-‬‬

‫إﻧﺸﺎء ﻣﺸﺮوع ‪. Creating a Project -‬‬ ‫إدﺧﺎل ﺗﺼﻤﯿﻢ ﻣﺎ ﺑﺎﺳﺘﺨﺪام ﻛﻮد ‪. Design Entry Using VHDL Code - VHDL‬‬ ‫ﺻ ﻔﺔ ﺑﻮاﺳ ﻄﺔ ﻛ ﻮد ‪Synthesis the Circuit Specified in VHDL – VHDL‬‬ ‫ﺗﺮﻛﯿ ﺐ دارة ﻣﻮ ّ‬ ‫‪. Code‬‬ ‫ﺗﻮﺿ ﯿﻊ دارة ﻣﺮﻛّﺒ ﺔ ﻓ ﻲ ﺷ ﺮﯾﺤﺔ ‪ FPGA‬ﻣ ﻦ ﺷ ﺮﻛﺔ ‪Fitting a Synthesized Circuit - Altera‬‬ ‫‪. Into an Altera FPGA‬‬ ‫إﺳﻨﺎد ﻣ ﺪاﺧﻞ اﻟ ﺪارة وﻣﺨﺎرﺟﮭ ﺎ إﻟ ﻰ أﻗﻄ ﺎب ﻣﺤ ﺪدة ﻟﺸ ﺮﯾﺤﺔ اﻟ ـ ‪Assigning The Circuit - FPGA‬‬ ‫‪. Inputs And Outputs to Specific Pins on The FPGA‬‬ ‫ﻣﺤﺎﻛﺎة اﻟﺪارة اﻟﻤﺼﻤﻤﺔ ‪. Simulating The Designed Circuit -‬‬ ‫ﺑﺮﻣﺠ ﺔ وﺿ ﺒﻂ ﺷ ﺮﯾﺤﺔ اﻟ ـ ‪ FPGA‬اﻟﻤﻮﺟ ﻮدة ﻋﻠ ﻰ اﻟﺒ ﻮرد ‪Programming And - DE2‬‬ ‫‪. Configuring The FPGA Chip on Altera's DE2 Board‬‬

‫‪ -٢‬ﺗﻤﮭﯿﺪ ‪Getting Started :‬‬ ‫إن أﯾﺔ دارة ﻣﻨﻄﻘﯿﺔ أو دارة ﺟﺰﺋﯿﺔ ‪ Subcircuit‬ﯾﺮاد ﺗﺼﻤﯿﻤﮭﺎ ﺑﺎﺳﺘﺨﺪام اﻟﺒﺮﻣﺠﯿ ﺔ ‪ Quartus II‬ﺗ ﺪﻋﻰ ﻣﺸ ﺮوﻋًﺎ‬ ‫‪ . Project‬إن اﻟﺒﺮﻣﺠﯿﺔ ﺗﻌﻤﻞ ﻓﻲ وﻗﺖ ﻣﺎ ﻋﻠﻰ ﻣﺸﺮوع واﺣﺪ وﺗﺤﻔﻆ ﻛﺎﻓﺔ اﻟﻤﻌﻠﻮﻣﺎت اﻟﻤﺘﻌﻠﻘﺔ ﺑﮭ ﺬا اﻟﻤﺸ ﺮوع ﻓ ﻲ‬ ‫ﻣﺠﻠ ﺪ وﺣﯿ ﺪ ) ‪ Single Directory ( or Folder‬ﻓ ﻲ ﻧﻈ ﺎم اﻟﻤﻠﻔ ﺎت ‪ . File System‬ﻟﺒ ﺪء ﺗﺼ ﻤﯿﻢ ﺟﺪﯾ ﺪ ﻟ ﺪارة‬ ‫ﻣﻨﻄﻘﯿﺔ ﻣﺎ ﻓﺈن اﻟﺨﻄﻮة اﻷوﻟﻰ ھﻲ إﻧﺸﺎء ﻣﺠﻠﺪ ﺧﺎص ﺑﮭﺬا اﻟﻤﺸﺮوع ﻟﺤﻔﻆ ﻣﻠﻔﺎﺗﮫ داﺧﻠ ﮫ ‪ .‬ﻟﺘﺨ ﺰﯾﻦ ﻣﻠﻔ ﺎت اﻟﺘﺼ ﻤﯿﻢ‬ ‫ﻓ ﻲ ھ ﺬه اﻟﺠﻠﺴ ﺔ ﺳ ﻮف ﻧﻨﺸ ﺊ ﻣﺠﻠ ﺪاً ﺟﺪﯾ ﺪاً اﺳ ﻤﮫ ‪ MyFirstProject‬ﻋﻠ ﻰ ﺳ ﺒﯿﻞ اﻟﻤﺜ ﺎل ﺿ ﻤﻦ اﻟﺴ ﻮاﻗﺔ ‪ D‬ﻣ ﻦ‬ ‫اﻟﻘﺮص اﻟﺼﻠﺐ وﺑﺎﻟﺘﺎﻟﻲ ﺳﯿﻜﻮن ﻣﺴﺎر ﻣﺠﻠﺪ اﻟﻤﺸﺮوع ھﻮ ‪. D:\MyFirstProject :‬‬ ‫اﻟﻤﺜ ﺎل اﻟﺘﻄﺒﯿﻘ ﻲ اﻟ ﺬي ﺳﻨﺴ ﺘﺨﺪﻣﮫ ﺧ ﻼل ﻣﺮاﺣ ﻞ اﻟﺘﺼ ﻤﯿﻢ ھ ﻮ دارة ﺑﺴ ﯿﻄﺔ ﻟﻠ ﺘﺤﻜﻢ ﺑﺈﺿ ﺎءة ﻣﺼ ﺒﺎح ﻋ ﻦ ﻃﺮﯾ ﻖ‬ ‫ﻣﻔﺘﺎﺣﯿﻦ اﺛﻨﯿﻦ ‪ ) Two-Way Light Controller Circuit‬أو ﻣﺎ ﯾﻌﺮف اﺧﺘﺼﺎراً ﺑﺎﺳﻢ ‪. ( TWLC‬‬ ‫ﻧﻘﻮم ﺑﺘﺸﻐﯿﻞ اﻟﺒﺮﻣﺠﯿﺔ ‪ Quartus II‬ﻣﻦ ﺧﻼل اﻟﻨﻘﺮ ﻋﻠ ﻰ زر ‪ Start‬ﻓ ﻲ ﺷ ﺮﯾﻂ اﻟﻤﮭ ﺎم وﻣ ﻦ ﺛ ﻢ اﺧﺘﯿ ﺎر اﻟﻤﺴ ﺎر ‪:‬‬ ‫‪All Programs - Altera - Quartus II 9.1 SP1 Web Edition - Quartus II 9.1 SP1 Web‬‬ ‫‪٣‬‬


‫‪ Edition‬ﻋﻨ ﺪھﺎ ﺳ ﻮف ﺗُﻘﻠِ ﻊ اﻟﺒﺮﻣﺠﯿ ﺔ ) ﺗﺒ ﺪأ اﻟﻌﻤ ﻞ ( وﺗﻈﮭ ﺮ ﻋﻨ ﺪھﺎ اﻟﻨﺎﻓ ﺬة اﻟﺮﺋﯿﺴ ﯿﺔ ﻟﻠﺒﺮﻣﺠﯿ ﺔ ‪Quartus‬‬ ‫اﻟﻤﻮﺿﺤﺔ ﻓﻲ اﻟﺸﻜﻞ )‪. (٢‬‬

‫اﻟﺸﻜﻞ )‪ : (٢‬اﻟﻨﺎﻓﺬة اﻟﺮﺋﯿﺴﯿﺔ ﻟﻠﺒﺮﻣﺠﯿﺔ ‪ ) Quartus II‬اﻹﺻﺪار ‪. ( 9.1 SP1‬‬ ‫ﺗﺤﺘﻮي اﻟﻨﺎﻓﺬة اﻟﺮﺋﯿﺴﯿﺔ ﻋﺪة ﻧﻮاﻓﺬ ﺿﻤﻨﯿﺔ ) واﻟﺘﻲ ﯾﻤﻜﻦ إﺧﻔﺎؤھﺎ أو إﻇﮭﺎرھﺎ ﻣﻦ ﺧﻼل اﻟﺬھﺎب إﻟﻰ اﻟﻘﺎﺋﻤ ﺔ ‪View‬‬ ‫ﻓ ﻲ ﺷ ﺮﯾﻂ اﻟﻘ ﻮاﺋﻢ وﻣ ﻦ ﺛ ﻢ ‪ . ( Utility Windows‬ﺗﺘ ﯿﺢ ھ ﺬه اﻟﻨﻮاﻓ ﺬ اﻟﻀ ﻤﻨﯿﺔ اﻟﻮﺻ ﻮل إﻟ ﻰ ﻣﺰاﯾ ﺎ و إﻣﻜﺎﻧﯿ ﺎت‬ ‫اﻟﺒﺮﻣﺠﯿﺔ ‪ Quartus II‬اﻋﺘﻤﺎداً ﻋﻠﻰ اﻟﺘﺤﺪﯾﺪ واﻟﻨﻘﺮ ﺑﺸﻜﻞ ﻣﻨﻔﺮد أو ﻣﺰدوج ﻋﻠﻰ اﻟﺰر اﻷﯾﺴﺮ ) أو اﻷﯾﻤﻦ ﻟﻠﻔ ﺄرة (‬ ‫إن أﻏﻠﺐ اﻷواﻣﺮ واﻟﺘﻌﻠﯿﻤﺎت ‪ Commands‬اﻟﻤﺘﺎﺣ ﺔ ﻓ ﻲ اﻟﺒﺮﻣﺠﯿ ﺔ ‪ Quartus II‬ﯾﻤﻜ ﻦ اﻟﻮﺻ ﻮل إﻟﯿﮭ ﺎ ﻣ ﻦ ﺧ ﻼل‬ ‫ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻟﻘﻮاﺋﻢ اﻟﻤﺘﻮﺿﻌﺔ ﻣﺒﺎﺷﺮةً ﺗﺤﺖ ﺷﺮﯾﻂ اﻟﻌﻨﻮان ﻟﻠﻨﺎﻓﺬة اﻟﺮﺋﯿﺴﯿﺔ ‪ .‬ﻋﻠﻰ ﺳ ﺒﯿﻞ اﻟﻤﺜ ﺎل ‪ ،‬ﻓ ﻲ اﻟﺸ ﻜﻞ )‪(٢‬‬ ‫اﻟﻨﻘﺮ ﺑﺎﻟﺰر اﻷﯾﺴﺮ ﻋﻠﻰ اﻟﻘﺎﺋﻤﺔ اﻟﻤﺴﻤﺎة ‪ File‬ﯾﻔﺘﺢ اﻟﻘﺎﺋﻤﺔ اﻟﻤﺒﯿﻨﺔ ﻓﻲ اﻟﺸﻜﻞ )‪، (٣‬‬

‫اﻟﺸﻜﻞ )‪ : (٣‬ﻣﺜﺎل ﻋﻠﻰ اﻟﻘﺎﺋﻤﺔ ‪. File‬‬ ‫‪٤‬‬


‫إن اﻟﻨﻘﺮ ﻋﻠﻰ اﻷﻣﺮ ‪ Exit‬ﻣﻦ ھﺬه اﻟﻘﺎﺋﻤ ﺔ ﺑﻮاﺳ ﻄﺔ اﻟ ﺰر اﻷﯾﺴ ﺮ ﻟﻠﻔ ﺄرة ﯾﻜ ﺎﻓﺊ ﺗﻤﺎﻣ ﺎً اﻟﻀ ﻐﻂ ﺑﺸ ﻜﻞ ﻣﺘ ﺰاﻣﻦ ﻋﻠ ﻰ‬ ‫اﻟﻤﻔﺘﺎﺣﯿﻦ ‪ Alt‬و ‪ F4‬ﺑﺤﯿﺚ أن أﯾﺎً ﻣﻦ اﻟﺨﯿﺎرﯾﻦ ﺳ ﯿﺆدي إﻟ ﻰ إﯾﻘ ﺎف ﺗﺸ ﻐﯿﻞ اﻟﺒﺮﻣﺠﯿ ﺔ ‪ ) Quartus II‬أي اﻟﺨ ﺮوج‬ ‫ﻣﻦ اﻟﺒﺮﻧﺎﻣﺞ ﺑﺸﻜﻞ ﻧﮭﺎﺋﻲ ( !!!‬ ‫ﺑﺸ ﻜﻞ ﻋ ﺎم ‪ ،‬ﻋﻨ ﺪ اﺳ ﺘﺨﺪام اﻟﻔ ﺄرة ﻟﺘﺤﺪﯾ ﺪ ﺷ ﻲء ﻣ ﺎ ﻓ ﺈن اﻟ ﺰر اﻷﯾﺴ ﺮ ﻏﺎﻟﺒ ﺎً ھ ﻮ اﻟﻤﺴ ﺘﺨﺪم وﺑﺎﻟﺘ ﺎﻟﻲ ﻓﺈﻧﻨ ﺎ ﻟ ﻦ ﻧﺤ ﺪد‬ ‫ﺑﺎﻟﻀﺮورة أي زر ﻣﻦ اﻟﻔﺄرة ﺳﻮف ﻧﻀﻐﻂ ‪ .‬ﻓﻲ ﺑﻀﻌﺔ ﺣﺎﻻت وﻋﻨﺪﻣﺎ ﯾﻜﻮن ﻣﻦ اﻟﻀﺮوري اﺳﺘﺨﺪام اﻟﺰر اﻷﯾﻤﻦ‬ ‫ﻟﻠﻔﺄرة ﻓﺈﻧﻨﺎ ﺳﻨﻮﺿﺢ ذﻟﻚ ﺑﺸﻜﻞ ﺻﺮﯾﺢ وواﺿﺢ ‪.‬‬ ‫ﻣﻦ أﺟﻞ ﺑﻌﺾ اﻷواﻣﺮ ‪ /‬اﻟﺘﻌﻠﯿﻤﺎت ﯾﻜﻮن ﻣﻦ اﻟﻀﺮوري اﻟﻮﻟﻮج إﻟﻰ ﻗﺎﺋﻤﺘﯿﻦ أو أﻛﺜﺮ ﻋﻠ ﻰ اﻟﺘﺘ ﺎﺑﻊ ) ﻗﺎﺋﻤ ﺔ رﺋﯿﺴ ﯿﺔ‬ ‫وﻣﻦ ﺛﻢ ﺿﻤﻨﮭﺎ ﻗﺎﺋﻤﺔ ﻓﺮﻋﯿﺔ أﺧﺮى ( ‪ .‬ﻓﻲ ﺣﺎﻟﺔ ﻛﮭ ﺬه ﺳ ﻮف ﻧﺴ ﺘﺨﺪم اﻻﺻ ﻄﻼح ‪Menu1 > Menu2 > Item‬‬ ‫ﻟﺘﻮﺿ ﯿﺢ أن ﻋﻠ ﻰ اﻟﻤﺴ ﺘﺨﺪم أن ﯾﻨﻘ ﺮ أوﻻً ﺑﺎﺳ ﺘﺨﺪام اﻟ ﺰر اﻷﯾﺴ ﺮ ﻟﻠﻔ ﺄرة ﻋﻠ ﻰ اﻟﻘﺎﺋﻤ ﺔ اﻟﻤﺴ ﻤﺎة ‪ Menu1‬وﻣ ﻦ ﺛ ﻢ‬ ‫وداﺧﻞ ھﺬه اﻟﻘﺎﺋﻤﺔ ﻋﻠﯿﮫ أن ﯾﻨﻘﺮ ﻋﻠﻰ اﻟﻘﺎﺋﻤﺔ اﻟﻔﺮﻋﯿﺔ اﻟﻤﺴﻤﺎة ‪ Menu2‬وأﺧﯿﺮاً وﺿ ﻤﻦ اﻟﻘﺎﺋﻤ ﺔ اﻟﻔﺮﻋﯿ ﺔ ‪Menu2‬‬ ‫ﻋﻠﯿﮫ أن ﯾﻨﻘ ﺮ ﻋﻠ ﻰ اﻟﺒﻨ ﺪ اﻟﻤﺴ ﻤﻰ ‪ Item‬وذﻟ ﻚ ﻣ ﻦ أﺟ ﻞ ﻃﻠ ﺐ ﺗﻨﻔﯿ ﺬ اﻟﺘﻌﻠﯿﻤ ﺔ اﻟﻤﺮﻏﻮﺑ ﺔ ‪ .‬ﻋﻠ ﻰ ﺳ ﺒﯿﻞ اﻟﻤﺜ ﺎل وﻛﻤ ﺎ‬ ‫ﻧﻮھﻨﺎ ﻗﺒﻞ ﻗﻠﯿﻞ ﻓﺈن اﺧﺘﯿﺎر ‪ File > Exit‬ﺑﻮاﺳﻄﺔ اﻟﻔﺄرة ﯾﺆدي إﻟﻰ اﻟﺨﺮوج ﻣﻦ اﻟﺒﺮﻣﺠﯿﺔ ‪. Quartus II‬‬ ‫إن ﻋ ﺪة ﺗﻌﻠﯿﻤ ﺎت ﯾﻤﻜ ﻦ ﻃﻠ ﺐ ﺗﻨﻔﯿ ﺬھﺎ ﻣ ﻦ ﺧ ﻼل اﻟﻨﻘ ﺮ ﺑﻮاﺳ ﻄﺔ اﻟ ﺰر اﻷﯾﺴ ﺮ ﻟﻠﻔ ﺄرة ﻋﻠ ﻰ أﯾﻘﻮﻧ ﺎت ﺧﺎﺻ ﺔ ﺑﮭ ﺬه‬ ‫اﻟﺘﻌﻠﯿﻤﺎت وﻣﺘﻮﺿﻌﺔ ﻓﻲ أﺣﺪ أﺷﺮﻃﺔ اﻷدوات ‪ .‬ﻟﺮؤﯾﺔ وﻣﻌﺮﻓﺔ اﻟﺘﻌﻠﯿﻤﺔ اﻟﻤﻘﺮوﻧﺔ ﺑﺄﯾﻘﻮﻧ ﺔ ﻣ ﺎ ﯾﻤﻜ ﻦ ﺗﻮﺿ ﯿﻊ ﻣﺆﺷ ﺮ‬ ‫اﻟﻔﺄرة ‪ Mouse Cursor‬ﻋﻠﻰ اﻷﯾﻘﻮﻧﺔ واﻻﻧﺘﻈ ﺎر ﻟﻠﺤﻈ ﺔ ﻟﯿﻈﮭ ﺮ ﻋﻨ ﺪھﺎ ﺗﻠﻤ ﯿﺢ ﻋ ﻦ اﻷداة أو وﻇﯿﻔ ﺔ اﻷﯾﻘﻮﻧ ﺔ ) ﻣ ﺎ‬ ‫ﯾﻌﺮف ﻋﺎدةً ﺑﺎﺳﻢ ‪. ( Tooltip‬‬ ‫‪ -١-٢‬اﻟﻤﺴﺎﻋﺪة ﻋﻦ ﻃﺮﯾﻖ اﻹﻧﺘﺮﻧﯿﺖ ﺿﻤﻦ اﻟﺒﺮﻣﺠﯿﺔ ‪Quartus II Online Help : Quartus II‬‬ ‫ﺗﻘﺪم اﻟﺒﺮﻣﺠﯿﺔ ‪ Quartus II‬وﺛﺎﺋﻖ وﻣﺮاﺟ ﻊ ﻣﻔﺼ ﻠﺔ ﻋ ﻦ ﻃﺮﯾ ﻖ ﺷ ﺒﻜﺔ اﻹﻧﺘﺮﻧﯿ ﺖ ‪Comprehensive Online‬‬ ‫‪ . Documentation‬ھﺬه اﻟﻮﺛﺎﺋﻖ ﺗﺘﻀﻤﻦ اﻹﺟﺎﺑﺔ ﻋﻠﻰ ﻋﺪد ﻛﺒﯿﺮ ﻣﻦ اﻷﺳﺌﻠﺔ اﻟﺘﻲ ﯾﻤﻜﻦ أن ﺗﺘﺒﺎدر إﻟﻰ اﻟﺬھﻦ ﻋﻨ ﺪ‬ ‫اﺳﺘﺨﺪام اﻟﺒﺮﻣﺠﯿﺔ ‪ . Quartus II‬ﯾﻤﻜﻦ اﻟﻮﺻﻮل إﻟﻰ ھ ﺬه اﻟﻮﺛ ﺎﺋﻖ ﻣ ﻦ ﺧ ﻼل اﻟﻘﺎﺋﻤ ﺔ ‪ . Help‬ﻟﺘﻜ ﻮﯾﻦ ﻓﻜ ﺮة ﻋﺎﻣ ﺔ‬ ‫ﻋﻦ ﻣﺪى اﺗﺴﺎع وﻏﺰارة اﻟﻤﻌﻠﻮﻣﺎت اﻟﺘﻲ ﯾﻤﻜﻦ اﻟﺮﺟﻮع إﻟﯿﮭﺎ ﻋﻦ ﻃﺮﯾﻖ ھﺬه اﻟﻮﺛﺎﺋﻖ ﻣﻦ اﻟﻤﻔﯿﺪ ﻟﻠﻄﺎﻟﺐ اﺳﺘﻌﺮاض‬ ‫ھ ﺬه اﻟﻮﺛ ﺎﺋﻖ ﻋ ﻦ ﻃﺮﯾ ﻖ اﻟﻘﺎﺋﻤ ﺔ ‪ . Help‬ﻋﻠ ﻰ ﺳ ﺒﯿﻞ اﻟﻤﺜ ﺎل ‪ ،‬ﺑﺎﺧﺘﯿ ﺎر ‪ Help > How to Use Help‬ﯾﻤﻜ ﻦ‬ ‫اﻻﻃﻼع ﻋﻠﻰ ﻧﻮع اﻟﻤﺴﺎﻋﺪة واﻟﺪﻋﻢ اﻟﻤﻘﺪﻣﺎن ﻣﻦ ﺧﻼل اﻟﻘﺎﺋﻤﺔ ‪. Help‬‬ ‫ﯾﻤﻜﻦ ﻟﻠﻤﺴﺘﺨﺪم ﺑﺎﻟﻄﺒﻊ اﻟﺒﺤﺚ ﺑﺴﺮﻋﺔ ﺿﻤﻦ ﻣﻮﺿﻮﻋﺎت اﻟﻤﺴﺎﻋﺪة ‪ Help‬ﺑﺎﺧﺘﯿﺎر ‪ Help > Search‬اﻷﻣﺮ اﻟ ﺬي‬ ‫ﯾﺆدي إﻟﻰ ﻇﮭﻮر ﻧﺎﻓﺬة ﻣﺴﺘﻌﺮض اﻹﻧﺘﺮﻧﯿﺖ اﻻﻓﺘﺮاﺿﻲ ‪ Default Internet Explorer‬وﺑﺪاﺧﻠﮭﺎ أداة ﺑﺤﺚ ﻋ ﻦ‬ ‫اﻟﻜﻠﻤﺎت اﻟﻤﻔﺘﺎﺣﯿﺔ ‪ Key Words‬اﻟﺘﻲ ﯾﻤﻜﻦ إدﺧﺎل ﻛﻠﻤ ﺔ ﻣ ﺎ ﻣﻨﮭ ﺎ وﻣ ﻦ ﺛ ﻢ اﻟﻨﻘ ﺮ ﻋﻠ ﻰ اﻟ ﺰر ‪ Go‬أو اﻟﻀ ﻐﻂ ﻋﻠ ﻰ‬ ‫اﻟﻤﻔﺘﺎح ‪ Enter‬ﻟﻠﺤﺼﻮل ﻋﻠﻰ ﻛﺎﻓﺔ اﻟﻤﻮﺿﻮﻋﺎت ذات اﻟﺼﻠﺔ ﺑﺎﻟﻜﻠﻤﺔ اﻟﻤﻔﺘﺎﺣﯿﺔ اﻟﺘﻲ ﺗﻢ إدﺧﺎﻟﮭﺎ ‪.‬‬ ‫ھﻨﺎك ﻃﺮﯾﻘﺔ أﺧﺮى ﻣﺰودة ﻟﻠﺤﺼﻮل ﻋﻠﻰ اﻟﻤﺴﺎﻋﺪة ﻓﻲ اﻟﺒﺮﻣﺠﯿﺔ ‪ Quartus II‬وھﻲ اﻟﻤﺴﺎﻋﺪة اﻟﻤﺘﺤﺴﺴﺔ ﻟﻠﺴ ﯿﺎق‬ ‫‪ Context-Sensitive Help‬وذﻟ ﻚ ﻣ ﻦ أﺟ ﻞ اﻟﻌﺜ ﻮر ﺑﺴ ﺮﻋﺔ ﻋﻠ ﻰ ﻣﻌﻠﻮﻣ ﺎت ﺗﺘﻌﻠ ﻖ ﺑﻤﻮﺿ ﻮﻋﺎت ﻣﻌﯿﻨ ﺔ ‪ .‬ﻋﻨ ﺪ‬ ‫اﺳﺘﺨﺪام أﻏﻠﺐ اﻟﺘﻄﺒﯿﻘﺎت ﻓﺈن اﻟﻀﻐﻂ ﻋﻠﻰ اﻟﻤﻔﺘﺎح اﻟﻮﻇﯿﻔﻲ ‪ F1‬ﻋﻠ ﻰ ﻟﻮﺣ ﺔ ﻣﻔ ﺎﺗﯿﺢ اﻟﺤﺎﺳ ﺐ ﯾﻔ ﺘﺢ ﻧﺎﻓ ﺬة اﻟﻤﺴ ﺎﻋﺪة‬ ‫اﻟﺘﻲ ﺗﻌﺮض اﻟﺘﻌﻠﯿﻤﺎت اﻟﻤﺘﺎﺣﺔ ﺿﻤﻦ ھﺬا اﻟﺘﻄﺒﯿﻖ ‪.‬‬ ‫‪ -٣‬ﺑﺪء ﻣﺸﺮوع ﺟﺪﯾﺪ ‪Starting a New Project :‬‬ ‫ﻟﻠﺒﺪء ﺑﺎﻟﻌﻤ ﻞ ﻋﻠ ﻰ ﺗﺼ ﻤﯿﻢ ﺟﺪﯾ ﺪ ﯾﺘﻮﺟ ﺐ ﻋﻠﯿﻨ ﺎ أوﻻً ﺗﺤﺪﯾ ﺪ ﻣﺸ ﺮوع ﺗﺼ ﻤﯿﻢ ﺟﺪﯾ ﺪ ‪ . New Design Project‬إن‬ ‫اﻟﺒﺮﻣﺠﯿﺔ ‪ Quartus II‬ﺗﺠﻌﻞ ﻣﮭﻤﺔ اﻟﻤﺼﻤﻢ ﺳﮭﻠﺔ ﺑﺘﻘﺪﯾﻢ اﻟﺪﻋﻢ ﻋﻠﻰ ﺷﻜﻞ ﻣﻌﺎﻟﺞ ‪ . Wizard‬ﯾﻤﻜﻨﻨﺎ إﻧﺸﺎء ﻣﺸﺮوع‬ ‫ﺟﺪﯾﺪ ﻛﻤﺎ ﯾﻠﻲ ‪:‬‬ ‫‪ -١‬ﻧﺨﺘ ﺎر … ‪ File > New Project Wizard‬ﻟﻠﺤﺼ ﻮل ﻋﻠ ﻰ اﻟﻨﺎﻓ ﺬة اﻟﻤﻮﺿ ﺤﺔ ﻓ ﻲ اﻟﺸ ﻜﻞ )‪ (٤‬اﻟﺘ ﻲ ﺗﻮﺿ ﺢ‬ ‫إﻣﻜﺎﻧﯿﺎت ھﺬا اﻟﻤﻌﺎﻟﺞ ‪ .‬ﺑﺈﻣﻜﺎﻧﻨﺎ ﺗﺠ ﺎوز ھ ﺬه اﻟﻨﺎﻓ ﺬة ﻓ ﻲ اﻟﻤﺸ ﺎرﯾﻊ اﻟﻼﺣﻘ ﺔ اﻷﺧ ﺮى ﻣ ﻦ ﺧ ﻼل وﺿ ﻊ إﺷ ﺎرة √ ﻓ ﻲ‬ ‫اﻟﺼ ﻨﺪوق اﻟﺼ ﻐﯿﺮ اﻟﻔ ﺎرغ ﺑﺠﺎﻧ ﺐ اﻟﻌﺒ ﺎرة ‪ . Don't show me this introduction again :‬ﻧﻨﻘ ﺮ اﻵن ﻋﻠ ﻰ‬ ‫اﻟﺰر ‪ Next‬ﻟﻼﻧﺘﻘﺎل إﻟﻰ اﻟﻨﺎﻓﺬة اﻟﻤﻮﺿﺤﺔ ﻓﻲ اﻟﺸﻜﻞ )‪. (٥‬‬ ‫‪٥‬‬


‫اﻟﺸﻜﻞ )‪ : (٤‬اﻟﻤﮭﺎم اﻟﻤﻨﺠﺰة ﺑﻮاﺳﻄﺔ ﻣﻌﺎﻟﺞ ﻣﺸﺮوع ﺟﺪﯾﺪ ‪.‬‬

‫اﻟﺸﻜﻞ )‪ : (٥‬إﻧﺸﺎء ﻣﺸﺮوع ﺟﺪﯾﺪ ‪.‬‬ ‫‪ -٢‬ﻛﻤﺎ ھﻮ واﺿﺢ ﻓﻲ اﻟﺸﻜﻞ )‪ (٥‬ﺳﻮف ﻧﻘﻮم ﺑﻀﺒﻂ ﻣﺠﻠﺪ اﻟﻌﻤﻞ ﻟﻠﻤﺸﺮوع ‪ Working Directory‬وﻓﻖ اﻟﻤﺴ ﺎر‬ ‫اﻟﺘﺎﻟﻲ ‪ D:\introtutorial :‬أي ﺳ ﯿﻜﻮن اﻟﻤﺠﻠ ﺪ ‪ introtutorial‬ﺿ ﻤﻦ اﻟﺴ ﻮاﻗﺔ ‪ D‬ﻣ ﻦ اﻟﻘ ﺮص اﻟﺼ ﻠﺐ ھ ﻮ ﻣﺠﻠ ﺪ‬ ‫اﻟﻤﺸﺮوع ‪ .‬ﯾﻤﻜﻨﻨﺎ ﺑﺎﻟﻄﺒﻊ اﺧﺘﯿﺎر اﺳﻢ آﺧﺮ ﻟﻤﺠﻠﺪ اﻟﻤﺸﺮوع أو ﻣﺴﺎر آﺧﺮ ﻟﻤﺠﻠﺪ اﻟﻌﻤﻞ دون أﯾﺔ ﻗﯿﻮد ‪ .‬إن اﻟﻤﺸﺮوع‬ ‫ﯾﺠﺐ أن ﯾﻤﺘﻠﻚ اﺳﻤﺎً واﻟﺬي ﯾﻜﻮن ﻋﺎدةً ﻣﻄﺎﺑﻘﺎً ﻻﺳﻢ ﻛﯿﺎن اﻟﺘﺼ ﻤﯿﻢ ذي اﻟﻤﺴ ﺘﻮى اﻷﻋﻠ ﻰ ‪Top-Level Design‬‬ ‫‪ Entity‬اﻟﺬي ﺳﻮف ﯾ ﺘﻢ إﺿ ﺎﻓﺘﮫ إﻟ ﻰ اﻟﻤﺸ ﺮوع ‪ .‬ﺳ ﻨﺨﺘﺎر اﻻﺳ ﻢ ‪ light‬ﻛﺎﺳ ﻢ ﻟﻠﻤﺸ ﺮوع وﻟﻜﯿ ﺎن اﻟﻤﺴ ﺘﻮى اﻷﻋﻠ ﻰ‬ ‫‪ Top-Level Entity‬ﻛﻤﺎ ھﻮ ﻣﺒﯿﻦ ﻓﻲ اﻟﺸﻜﻞ )‪. (٥‬‬ ‫ﻧﻀ ﻐﻂ اﻵن ﻋﻠ ﻰ اﻟ ﺰر > ‪ . Next‬ﺑﻤ ﺎ أﻧﻨ ﺎ ﻟ ﻢ ﻧﺨﻠ ﻖ ﺑﻌ ﺪ اﻟﻤﺠﻠ ﺪ ‪ introtutorial‬ﻓ ﺈن اﻟﺒﺮﻣﺠﯿ ﺔ ‪Quartus II‬‬ ‫ﺳﺘﻈﮭﺮ اﻟﺼﻨﺪوق اﻟﻤﻨﺒﺜﻖ ‪ Pop-Up Box‬اﻟﻤﺒﯿﻦ ﻓﻲ اﻟﺸﻜﻞ )‪ (٦‬واﻟﺬي ﯾﻄﻠﺐ ﺗﺄﻛﯿﺪ رﻏﺒﺘﻨ ﺎ ﻓ ﻲ ﺧﻠ ﻖ ھ ﺬا اﻟﻤﺠﻠ ﺪ‬ ‫اﻟﻤﻄﻠﻮب ‪ .‬ﻧﻀﻐﻂ ﻋﻠﻰ اﻟﺰر ‪ Yes‬اﻷﻣﺮ اﻟﺬي ﯾﻘﻮدﻧﺎ إﻟﻰ اﻟﻨﺎﻓﺬة اﻟﻤﺒﯿﻨﺔ ﻓﻲ اﻟﺸﻜﻞ )‪. (٧‬‬ ‫‪٦‬‬


‫اﻟﺸﻜﻞ )‪ : (٦‬ﺗﺴﺘﻄﯿﻊ اﻟﺒﺮﻣﺠﯿﺔ ‪ Quartus II‬إﻧﺸﺎء ﻣﺠﻠﺪ ﺟﺪﯾﺪ ﻣﻦ أﺟﻞ اﻟﻤﺸﺮوع ‪.‬‬

‫اﻟﺸﻜﻞ )‪ : (٧‬ﺑﺈﻣﻜﺎن اﻟﻤﻌﺎﻟﺞ أن ﯾﻘﻮم ﺑﺈﺿﺎﻓﺔ ﻣﻠﻔﺎت ﺗﺼﻤﯿﻢ ﻣﺤﺪدة ﻣﻦ ﻗﺒﻞ اﻟﻤﺴﺘﺨﺪم ‪.‬‬ ‫‪ -٣‬ﯾﺴ ﮭﻞ ﻣﻌ ﺎﻟﺞ إﻧﺸ ﺎء ﻣﺸ ﺮوع ﺗﺼ ﻤﯿﻢ ﺟﺪﯾ ﺪ ﻣﮭﻤ ﺔ ﺗﺤﺪﯾ ﺪ اﻟﻤﻠﻔ ﺎت اﻟﻤﻮﺟ ﻮدة ﺳ ﻠﻔﺎً واﻟﺘ ﻲ ﯾ ﺮاد إﺿ ﺎﻓﺘﮭﺎ إﻟ ﻰ‬ ‫اﻟﻤﺸﺮوع ‪ .‬ﻓﻲ ﺣﺎﻟﺘﻨﺎ ھﺬه و ﺑﺎﻋﺘﺒﺎر أﻧﮫ ﻻ ﺗﻮﺟﺪ ﻟ ﺪﯾﻨﺎ أﯾ ﺔ ﻣﻠﻔ ﺎت ﻣﻮﺟ ﻮدة ﺳ ﻠﻔﺎً ﻓﺈﻧﻨ ﺎ ﺳ ﻨﺘﺎﺑﻊ اﻟﻌﻤ ﻞ ﺑﺎﻟﻀ ﻐﻂ ﻋﻠ ﻰ‬ ‫اﻟﺰر > ‪ Next‬اﻷﻣﺮ اﻟﺬي ﯾﻘﻮدﻧﺎ إﻟﻰ اﻟﻨﺎﻓﺬة اﻟﻤﺒﯿﻨﺔ ﻓﻲ اﻟﺸﻜﻞ )‪. (٨‬‬

‫اﻟﺸﻜﻞ )‪ : (٨‬اﺧﺘﯿﺎر ﻋﺎﺋﻠﺔ ﺟﮭﺎز اﻟـ ‪ FPGA‬واﻟﺠﮭﺎز اﻟﻤﻄﻠﻮب وھﻮ ‪. EP2C35F672C6‬‬ ‫‪٧‬‬


‫‪ -٤‬ﯾﺘﻮﺟﺐ ﻋﻠﯿﻨ ﺎ اﻵن ﺗﺤﺪﯾ ﺪ ﻧ ﻮع ﺟﮭ ﺎز اﻟ ـ ‪ FPGA‬اﻟ ﺬي ﺳ ﻮف ﺗﻨﺠ ﺰ اﻟ ﺪارة اﻟﻤﻄﻠ ﻮب ﺗﺼ ﻤﯿﻤﮭﺎ داﺧﻠ ﮫ ‪ .‬ﻟ ﺬﻟﻚ‬ ‫ﻧﺨﺘ ﺎر أوﻻً اﻟﻌﺎﺋﻠ ﺔ ‪ Cyclone™ II‬ﻷﻧﮭ ﺎ ﺗﻤﺜ ﻞ ﻋﺎﺋﻠ ﺔ اﻟﺠﮭ ﺎز اﻟﻤﺮﻛ ﺐ ﻋﻠ ﻰ اﻟﺒ ﻮرد ‪ ) DE2‬ﻣ ﻦ ﺧ ﻼل اﻟﻘﺎﺋﻤ ﺔ‬ ‫اﻟﻤﻨﺴﺪﻟﺔ ‪ . ( Family‬ﻣﻦ ﺛﻢ ﯾﻤﻜﻨﻨﺎ أن ﻧﺠﻌﻞ اﻟﺒﺮﻣﺠﯿﺔ ‪ Quartus II‬ﺗﺨﺘﺎر ﺟﮭﺎزاً ﻣﺤﺪداً ﺿﻤﻦ ھﺬه اﻟﻌﺎﺋﻠ ﺔ أو أن‬ ‫ﻧﻘ ﻮم ﻧﺤ ﻦ ﺑﺄﻧﻔﺴ ﻨﺎ ﺑﺎﺧﺘﯿ ﺎر اﻟﺠﮭ ﺎز اﻟﻤﻄﻠ ﻮب ﺑﺄﻧﻔﺴ ﻨﺎ ﺑﺸ ﻜﻞ ﺻ ﺮﯾﺢ ‪ .‬ﻓ ﻲ ﺣﺎﻟﺘﻨ ﺎ ھ ﺬه ﺑ ﺎﻟﻄﺒﻊ ﯾﺠ ﺐ اﺧﺘﯿ ﺎر اﻟﺠﮭ ﺎز‬ ‫اﻟﻤﺮﻛ ﺐ ﻋﻠ ﻰ اﻟﺒ ﻮرد ‪ ) DE2‬وھ ﻮ اﻟﺠﮭ ﺎز ذي اﻻﺳ ﻢ ‪ ( EP2C35F672C6‬ﻟﯿﻜ ﻮن اﻟﺠﮭ ﺎز اﻟﮭ ﺪف ‪Target‬‬ ‫‪ . Device‬ﻟ ﺬﻟﻚ ﻣ ﻦ اﻟﻘﺎﺋﻤ ﺔ ‪ Available Devices‬ﻧﺨﺘ ﺎر اﻟﺠﮭ ﺎز ‪ EP2C35F672C6‬ﺑ ﺎﻟﻨﻘﺮ ﻋﻠﯿ ﮫ وﻣ ﻦ ﺛ ﻢ‬ ‫ﻧﻀﻐﻂ ﻋﻠﻰ اﻟﺰر > ‪ Next‬اﻷﻣﺮ اﻟﺬي ﯾﻘﻮدﻧﺎ إﻟﻰ اﻟﻨﺎﻓﺬة اﻟﻤﺒﯿﻨﺔ ﻓﻲ اﻟﺸﻜﻞ )‪. (٩‬‬

‫اﻟﺸﻜﻞ )‪ : (٩‬أدوات ) ‪ EDA ( Electronic Design Automation‬أﺧﺮى ﯾﻤﻜﻦ ﺗﺤﺪﯾﺪھﺎ ‪.‬‬ ‫‪ -٥‬ﺑﺈﻣﻜ ﺎن اﻟﻤﺴ ﺘﺨﺪم ھﻨ ﺎ ﺗﺤﺪﯾ ﺪ أدوات ‪ EDA‬أﺧ ﺮى ) ‪ . ( Third-Party Tools‬ھ ﺬا اﻟﻤﺼ ﻄﻠﺢ ھ ﻮ ﺗﻌﺒﯿ ﺮ‬ ‫ﻣﺨﺘﺼ ﺮ ﺷ ﺎﺋﻊ ﻟﺒﺮﻣﺠﯿ ﺎت اﻟﺘﺼ ﻤﯿﻢ ﺑﺎﺳ ﺘﺨﺪام اﻟﺤﺎﺳ ﺐ ‪ CAD Software‬ﻣ ﻦ أﺟ ﻞ اﻟ ﺪارات اﻻﻟﻜﺘﺮوﻧﯿ ﺔ‬ ‫‪ Electronic Circuits‬إذ ﯾﻄﻠ ﻖ ﻋﻠ ﻰ ھ ﺬه اﻟﺒﺮﻣﺠﯿ ﺎت اﺳ ﻢ ‪ . EDA Tools‬واﻻﺧﺘﺼ ﺎر ‪ EDA‬ﻧﻔﺴ ﮫ ﯾﻌﻨ ﻲ‬ ‫أﺗﻤﺘﺔ اﻟﺘﺼﻤﯿﻢ اﻻﻟﻜﺘﺮوﻧﻲ ‪ . Electronic Design Automation‬ھﺬا اﻟﻤﺼﻄﻠﺢ ﻣﺴ ﺘﺨﺪم ﻓ ﻲ رﺳ ﺎﺋﻞ اﻟﺒﺮﻣﺠﯿ ﺔ‬ ‫‪ Quartus II‬واﻟﺘﻲ ﺗﺸﯿﺮ إﻟﻰ أدوات ﺑﺮﻣﺠﯿﺔ ﻣﻄﻮرة ﻣﻦ ﻗﺒﻞ ﺷﺮﻛﺎت أﺧﺮى ) أو ﻣﺎ ﯾﺴ ﻤﻰ أدوات ﻃ ﺮف ﺛﺎﻟ ﺚ ‪/‬‬ ‫ﺴ ﻮﱠﻗﺔ ﻣ ﻦ ﻗﺒ ﻞ ﺷ ﺮﻛﺎت أﺧ ﺮى ﻏﯿ ﺮ ﺷ ﺮﻛﺔ‬ ‫آﺧﺮ ‪ ( Third-Party Tools‬واﻟﺘﻲ ﺗﻤﺜ ﻞ أدوات ﺑﺮﻣﺠﯿ ﺔ ﻣﻄ ﻮرة وﻣُ َ‬ ‫‪ . Altera‬ﺑﻤ ﺎ أﻧﻨ ﺎ ﺳ ﻨﻌﺘﻤﺪ ﻓﻘ ﻂ ﻋﻠ ﻰ أدوات اﻟﺒﺮﻣﺠﯿ ﺔ ‪ Quartus II‬ﻓﺈﻧﻨ ﺎ ﻟ ﻦ ﻧﻘ ﻮم ﺑﺎﺧﺘﯿ ﺎر أي أدوات ﺧﺎرﺟﯿ ﺔ‬ ‫أﺧﺮى ‪ .‬اﻵن ﯾﻜﻔﻲ اﻟﻀﻐﻂ ﺑﺒﺴﺎﻃﺔ ﻋﻠﻰ اﻟﺰر > ‪. Next‬‬ ‫‪ -٦‬اﻟﺸﻜﻞ )‪ (١٠‬ﯾﺒﯿﻦ اﻟﻨﺎﻓﺬة اﻟﺘﻲ ﺗﻌﺮض ﺧﻼﺻﺔ اﻹﻋﺪادات اﻟﺘ ﻲ ﻗﻤﻨ ﺎ ﺑﮭ ﺎ ﻓ ﻲ اﻟﺨﻄ ﻮات اﻟﺴ ﺎﺑﻘﺔ ‪ .‬ﻧﻀ ﻐﻂ ﺣﺎﻟﯿ ًﺎ‬ ‫ﻋﻠ ﻰ اﻟ ﺰر ‪ Finish‬ﻣﻤ ﺎ ﯾﻌﯿ ﺪﻧﺎ إﻟ ﻰ اﻟﻨﺎﻓ ﺬة اﻟﺮﺋﯿﺴ ﯿﺔ ﻟﻠﺒﺮﻣﺠﯿ ﺔ ‪ Quartus II‬ﻣ ﻊ ﻣﻼﺣﻈ ﺔ أن اﻟﻤﺸ ﺮوع اﻟﺠﺪﯾ ﺪ‬ ‫اﻟﺤ ﺎﻟﻲ اﻟ ﺬي ﺗ ﻢ إﻧﺸ ﺎؤه واﻟ ﺬي ﯾﺤﻤ ﻞ اﻻﺳ ﻢ ‪ light‬ھ ﻮ اﻟﻤﺸ ﺮوع اﻟ ﺬي ﺗﻌﻤ ﻞ ﻋﻠﯿ ﮫ ﺣﺎﻟﯿ ﺎً اﻟﺒﺮﻣﺠﯿ ﺔ ‪Quartus II‬‬ ‫وﯾﻤﻜﻦ اﻟﺘﺄﻛﺪ ﻣﻦ ذﻟﻚ ﺑﻤﻼﺣﻈﺔ ﻣﺴ ﺎر اﻟﻤﺸ ﺮوع ‪ ) light‬وھ ﻮ اﻟﻤﺴ ﺎر ‪ ( D:\introtutorial\light‬ﺿ ﻤﻦ ﺷ ﺮﯾﻂ‬ ‫اﻟﻌﻨﻮان ﻓﻲ اﻟﻨﺎﻓﺬة اﻟﻤﻮﺿﺤﺔ ﻓﻲ اﻟﺸﻜﻞ )‪. (١١‬‬

‫‪٨‬‬


‫اﻟﺸﻜﻞ )‪ : (١٠‬ﺧﻼﺻﺔ ﻋﻦ إﻋﺪادات اﻟﻤﺸﺮوع ‪.‬‬

‫اﻟﺸﻜﻞ )‪ : (١١‬اﻟﻨﺎﻓﺬة اﻟﺮﺋﯿﺴﯿﺔ ﻟﻠﺒﺮﻣﺠﯿﺔ ‪ Quartus II‬ﻣﻊ اﻟﻤﺸﺮوع اﻟﺠﺪﯾﺪ ‪ light‬اﻟﺬي ﺗﻢ إﻧﺸﺎؤه ‪.‬‬ ‫‪٩‬‬


‫‪ -٤‬إدﺧﺎل اﻟﺘﺼﻤﯿﻢ ﺑﺎﺳﺘﺨﺪام ﻛﻮد ‪Design Entry Using VHDL Code : VHDL‬‬ ‫ﻛﻤﺜﺎل ﺗﺼ ﻤﯿﻤﻲ ‪ ،‬ﺳ ﻮف ﻧﺴ ﺘﺨﺪم دارة اﻟﻤ ﺘﺤﻜﻢ ﺑﺈﺿ ﺎءة ﻣﺼ ﺒﺎح ﻋ ﻦ ﻃﺮﯾ ﻖ ﻣﻔﺘ ﺎﺣﯿﻦ اﻟﻤﺒﯿﻨ ﺔ ﻓ ﻲ اﻟﺸ ﻜﻞ )‪. (١٢‬‬ ‫ﯾﻤﻜﻨﻨﺎ اﺳﺘﺨﺪام ھﺬه اﻟﺪارة ﻟﻠﺘﺤﻜﻢ ﺑﺈﺿﺎءة ﻣﺼﺒﺎح وﺣﯿﺪ اﻧﻄﻼﻗﺎً ﻣ ﻦ أي ﻣ ﻦ اﻟﻤﻔﺘ ﺎﺣﯿﻦ ‪ x1‬و ‪ x2‬ﺣﯿ ﺚ أن اﻟﻤﻔﺘ ﺎح‬ ‫اﻟﻤﻐﻠﻖ ﯾﻮاﻓﻖ اﻟﻘﯿﻤﺔ اﻟﻤﻨﻄﻘﯿ ﺔ '‪ . '1‬ﺟ ﺪول اﻟﺤﻘﯿﻘ ﺔ ﻟﮭ ﺬه اﻟ ﺪارة ﻣﺒ ﯿﻦ أﯾﻀ ﺎً ﻓ ﻲ اﻟﺸ ﻜﻞ )‪ . (١٢‬ﻧﻼﺣ ﻆ ھﻨ ﺎ أن ھ ﺬه‬ ‫اﻟﺤﺎﻟ ﺔ ﺗﻄ ﺎﺑﻖ ﺗﻤﺎﻣ ﺎً ﺗ ﺎﺑﻊ اﻟﺠﻤ ﻊ اﻟﻤﻘﺼ ﻮر ‪ Exclusive-OR Function‬ﻟﻠﻤ ﺪﺧﻠﯿﻦ ‪ x1‬و ‪ x2‬وﻟﻜﻨﻨ ﺎ ﺳ ﻨﻘﻮم‬ ‫ﺑﺘﻌﺮﯾﻔﮫ ﺑﺎﺳﺘﺨﺪام اﻟﺒﻮاﺑﺎت اﻟﻤﻨﻄﻘﯿﺔ اﻟﻤﻮﺿﺤﺔ ﻓﻲ اﻟﺸﻜﻞ )‪. (١٢‬‬

‫اﻟﺸﻜﻞ )‪ : (١٢‬دارة اﻟﺘﺤﻜﻢ ﺑﺈﺿﺎءة ﻣﺼﺒﺎح ﻋﻦ ﻃﺮﯾﻖ ﻣﻔﺘﺎﺣﯿﻦ ‪.‬‬ ‫إن اﻟﺪارة اﻟﻤﻄﻠﻮﺑﺔ ﻗﺪ ﺗﻢ ﺗﻮﺻﯿﻔﮭﺎ ﺑﻮاﺳﻄﺔ ﻛﻮد ‪ VHDL‬اﻟﻤﺒﯿﻦ ﻓﻲ اﻟﺸﻜﻞ )‪ . (١٣‬ﻧﻼﺣ ﻆ ھﻨ ﺎ أن اﻟﻜﯿ ﺎن ‪Entity‬‬ ‫ﻓﻲ ﻛﻮد ‪ VHDL‬ﻗﺪ أﻋﻄﻲ اﺳﻢ ‪ light‬ﻟﯿﻄﺎﺑﻖ اﻻﺳﻢ اﻟﻤﻌﻄﻰ ﻓﻲ اﻟﺸﻜﻞ )‪ (٥‬واﻟﺬي ﻛﺎن ﻗﺪ ﺗﻢ اﺧﺘﯿ ﺎره ﻋﻨ ﺪ إﻧﺸ ﺎء‬ ‫اﻟﻤﺸﺮوع ‪ .‬ﯾﻤﻜﻦ ﺗﻨﻀﯿﺪ ) ﻛﺘﺎﺑﺔ ( ھﺬا اﻟﻜﻮد ﺿﻤﻦ ﻣﻠﻒ ‪ File‬ﺑﺎﺳﺘﺨﺪام أي ﻣﺤ ﺮر ﻧﺼ ﻮص ‪ Text Editor‬ﻗ ﺎدر‬ ‫ﻋﻠﻰ ﺗﺨﺰﯾﻦ ﻣﻠﻔﺎت ‪ ، ASCII‬أو ﺑﺎﺳﺘﺨﺪام ﻣﺤﺮر اﻟﻨﺼﻮص اﻟﻤﻀﻤﻦ ﻓﻲ اﻟﺒﺮﻣﺠﯿﺔ ‪. Quartus II‬‬ ‫ﻧﺬﻛّﺮ ھﻨﺎ ﺑﻀﺮورة ﺗﺴﻤﯿﺔ اﻟﻤﻠﻒ ﺑﻨﻔﺲ اﺳﻢ ﻛﯿ ﺎن اﻟﻤﺴ ﺘﻮى اﻷﻋﻠ ﻰ ‪ Top-Level Entity‬ﻓ ﻲ ﻛ ﻮد ‪ . VHDL‬إن‬ ‫اﻣﺘﺪاد اﻟﻤﻠﻒ اﻟ ﺬي ﯾﺘﻀ ﻤﻦ ﻛ ﻮد ‪ VHDL‬ھ ﻮ ) ‪ ( .vhd‬اﻟ ﺬي ﯾ ﺪل ﻋﻠ ﻰ أن اﻟﻤﻠ ﻒ ﯾﺤﺘ ﻮي ﺷ ﯿﻔﺮةً ﺑﻠﻐ ﺔ ‪VHDL‬‬ ‫وﺑﺎﻟﺘﺎﻟﻲ ﻓﺈﻧﻨﺎ ﺳﻨﺴﺘﺨﺪم ھﻨﺎ اﻻﺳﻢ ‪ light.vhd‬ﻟﺘﺴﻤﯿﺔ ﻣﻠﻔﻨﺎ اﻟﻤﻄﻠﻮب ‪.‬‬ ‫‪------------------------------------------------------------------------------‬‬‫; ‪LIBRARY ieee‬‬ ‫; ‪USE ieee.std_logic_1164.all‬‬ ‫‪------------------------------------------------------------------------------‬‬‫‪ENTITY light IS‬‬ ‫; ‪PORT ( x1, x2 : IN STD_LOGIC‬‬ ‫; ) ‪f : OUT STD_LOGIC‬‬ ‫; ‪END light‬‬ ‫‪------------------------------------------------------------------------------‬‬‫‪ARCHITECTURE LogicFunction OF light IS‬‬ ‫‪BEGIN‬‬ ‫;) ‪f <= ( x1 AND NOT x2 ) OR ( NOT x1 AND x2‬‬ ‫; ‪END LogicFunction‬‬ ‫‪------------------------------------------------------------------------------‬‬‫اﻟﺸﻜﻞ )‪ : (١٣‬ﻛﻮد ‪ VHDL‬ﻟﻠﺪارة اﻟﻤﺒﯿﻨﺔ ﻓﻲ اﻟﺸﻜﻞ )‪. (١٢‬‬ ‫‪ -١-٣‬اﺳﺘﺨﺪام ﻣﺤﺮر اﻟﻨﺼﻮص ﻓﻲ اﻟﺒﺮﻣﺠﯿﺔ ‪Using The Quartus II Text Editor : Quartus II‬‬ ‫ﻓﻲ ھﺬه اﻟﻔﻘﺮة ﺳﻨﻌﺮض ﻛﯿﻔﯿﺔ اﺳﺘﺨﺪام ﻣﺤﺮر اﻟﻨﺼ ﻮص ﻓ ﻲ اﻟﺒﺮﻣﺠﯿ ﺔ ‪ Quartus II‬ﻹﻧﺸ ﺎء اﻟﻤﻠ ﻒ ‪. light.vhd‬‬ ‫ﻣ ﻦ ﻗﺎﺋﻤ ﺔ ‪ File‬ﻧﺨﺘ ﺎر اﻷﻣ ﺮ …‪ New‬ﻟﻠﺤﺼ ﻮل ﻋﻠ ﻰ اﻟﻨﺎﻓ ﺬة اﻟﻤﺒﯿﻨ ﺔ ﻓ ﻲ اﻟﺸ ﻜﻞ )‪ (١٤‬وﻣ ﻦ ﺛ ﻢ ﻧﺨﺘ ﺎر اﻟﺨﯿ ﺎر‬ ‫‪ VHDL File‬وﻧﻨﻘﺮ ﻋﻠﻰ اﻟﺰر ‪ . OK‬ﻋﻨﺪھﺎ ﺳﻮف ﺗُﻔﺘَﺢ ﻧﺎﻓﺬة ﻣﺤﺮر اﻟﻨﺼﻮص ‪.‬‬ ‫‪١٠‬‬


‫اﻟﺸﻜﻞ )‪ : (١٤‬اﻟﻨﺎﻓﺬة اﻟﺘﻲ ﺗﺴﻤﺢ ﺑﺎﺧﺘﯿﺎر ﻧﻮع اﻟﻤﻠﻒ اﻟﺠﺪﯾﺪ اﻟﻤﺮاد إﻧﺸﺎؤه ‪.‬‬ ‫ﺗﺘﻤﺜﻞ اﻟﺨﻄﻮة اﻷوﻟﻰ ﻓﻲ ﺗﺤﺪﯾﺪ اﺳﻢ اﻟﻤﻠﻒ اﻟﺬي ﺳﻮف ﯾﺘﻢ إﻧﺸﺎؤه ‪ .‬ﻟﮭﺬا ﻧﺨﺘﺎر اﻟﻘﺎﺋﻤ ﺔ ‪ File‬وﻣ ﻦ ﺛ ﻢ ﻧﺨﺘ ﺎر اﻷﻣ ﺮ‬ ‫…‪ Save As‬ﻟﻔﺘﺢ اﻟﺼﻨﺪوق اﻟﻤﻨﺒﺜﻖ ‪ Pop-Up Box‬اﻟﻤﺒﯿﻦ ﻓﻲ اﻟﺸﻜﻞ )‪. (١٥‬‬

‫اﻟﺸﻜﻞ )‪ : (١٥‬اﻟﺼﻨﺪوق اﻟﻤﻨﺒﺜﻖ اﻟﺬي ﯾﺴﻤﺢ ﺑﺈﻋﻄﺎء اﺳﻢ اﻟﻤﻠﻒ اﻟﺠﺪﯾﺪ ‪.‬‬ ‫ﻓ ﻲ ھ ﺬا اﻟﺼ ﻨﺪوق وﺿ ﻤﻦ اﻟﻘﺎﺋﻤ ﺔ اﻟﻤﻨﺴ ﺪﻟﺔ ‪ Save as type‬ﯾﺠ ﺐ اﻟﺘﺄﻛ ﺪ ﻣ ﻦ اﺧﺘﯿ ﺎر ‪ VHDL File‬وﺿ ﻤﻦ‬ ‫ﺻﻨﺪوق اﻟﻨﺺ ‪ File name‬ﯾﺠﺐ اﻟﺘﺄﻛﺪ ﻣﻦ ﻛﺘﺎﺑﺔ اﻻﺳﻢ ‪ . light‬أﺧﯿ ﺮاً ﯾﺠ ﺐ اﻻﻧﺘﺒ ﺎه إﻟ ﻰ ﺿ ﺮورة وﺿ ﻊ ﻋﻼﻣ ﺔ‬ ‫√ ﻓﻲ اﻟﻤﺮﺑﻊ اﻟﺼﻐﯿﺮ اﻟﻤﺠﺎور ﻟﻌﺒﺎرة ‪ . Add file ti current project‬ﻧﻨﻘﺮ اﻵن ﻋﻠﻰ اﻟﺰر ‪ Save‬اﻷﻣ ﺮ اﻟ ﺬي‬ ‫ﺳﯿﺆدي إﻟﻰ إﻧﺸ ﺎء اﻟﻤﻠ ﻒ ‪ light.vhd‬داﺧ ﻞ اﻟﻤﺠﻠ ﺪ ‪ introtutorial‬ﻓ ﻲ اﻟﺴ ﻮاﻗﺔ ‪ D‬ﻣ ﻦ اﻟﻘ ﺮص اﻟﺼ ﻠﺐ وﻇﮭ ﻮر‬ ‫ﻧﺎﻓﺬة ﻣﺤﺮر اﻟﻨﺼﻮص اﻟﻤﺒﯿﻨﺔ ﻓﻲ اﻟﺸﻜﻞ )‪. (١٦‬‬

‫اﻟﺸﻜﻞ )‪ : (١٦‬ﻧﺎﻓﺬة ﻣﺤﺮر اﻟﻨﺼﻮص ﻓﻲ اﻟﺒﺮﻣﺠﯿﺔ ‪. Quartus II‬‬ ‫‪١١‬‬


‫ﻛﺒﱢﺮ ‪ Maximize‬ﻧﺎﻓﺬة ﻣﺤﺮر اﻟﻨﺼﻮص ﺛﻢ ﻗﻢ ﺑﺈدﺧ ﺎل ﻛ ﻮد ‪ VHDL‬اﻟﻤﺒ ﯿﻦ ﻓ ﻲ اﻟﺸ ﻜﻞ )‪ (١٣‬ﺿ ﻤﻦ ھ ﺬه اﻟﻨﺎﻓ ﺬة‬ ‫ﺳﻮاءً ﺑﺘﻨﻀﯿﺪ اﻟﻜﻮد أو ﻣﻦ ﺧﻼل ﻧﺴﺨﮫ وﻟﺼ ﻘﮫ ‪ . Copy and Paste‬ﻗ ﻢ ﺑﻌ ﺪ اﻻﻧﺘﮭ ﺎء ﻣ ﻦ إدﺧ ﺎل اﻟﻜ ﻮد ﺑﺘﺨﺰﯾﻨ ﮫ‬ ‫ﻣﻦ ﺧﻼل اﻟﻘﺎﺋﻤﺔ ‪ File > Save‬أو ﺑﺎﻟﻀﻐﻂ ﻋﻠﻰ اﻻﺧﺘﺼﺎر اﻟﻤﻔﺘﺎﺣﻲ ‪. Ctrl-s‬‬ ‫إن أﻏﻠﺐ اﻷواﻣﺮ اﻟﻤﺘﺎﺣﺔ ﻓﻲ ﻣﺤﺮر اﻟﻨﺼﻮص ﻻ ﺗﺤﺘﺎج إﻟﻰ ﺷﺮح ﻟﺒﺴﺎﻃﺘﮭﺎ ‪ .‬ﯾﺘﻢ إدﺧﺎل اﻟ ﻨﺺ ﻋﻨ ﺪ ﻧﻘﻄ ﺔ اﻟﺤﺸ ﺮ‬ ‫‪ Insertion Point‬اﻟﺘ ﻲ ﺗﻜ ﻮن ﻣﺤ ﺪّدةً ﺑﺨ ﻂ ﺷ ﺎﻗﻮﻟﻲ رﻓﯿ ﻊ ‪ .‬ﯾﻤﻜ ﻦ ﺗﺤﺮﯾ ﻚ ﻧﻘﻄ ﺔ اﻟﺤﺸ ﺮ ) ﺗﻐﯿﯿ ﺮ ﻣﻮﺿ ﻌﮭﺎ ( إﻣ ﺎ‬ ‫ﺑﺎﺳﺘﺨﺪام ﻣﻔﺎﺗﯿﺢ اﻷﺳﮭﻢ ﻋﻠﻰ ﻟﻮﺣﺔ اﻟﻤﻔﺎﺗﯿﺢ أو ﺑﺎﺳﺘﺨﺪام اﻟﻔﺄرة ‪.‬‬ ‫ھﻨﺎك ﻣﯿﺰﺗﺎن ﻟﻤﺤﺮر اﻟﻨﺼﻮص ﻣﻼﺋﻤﺘﺎن ﺑﺸﻜﻞ ﺧﺎص ﻟﺘﻨﻀﯿﺪ ﻛﻮد ‪: VHDL‬‬ ‫ اﻷوﻟﻰ ‪ :‬أن اﻟﻤﺤﺮر ﯾﻤﻜﻨﮫ ﻋﺮض اﻷﻧﻮاع اﻟﻤﺨﺘﻠﻔﺔ ﻟﺘﻌﻠﯿﻤﺎت ‪ VHDL‬ﺑﺄﻟﻮان ﻣﺨﺘﻠﻔ ﺔ وھ ﺬه اﻟﻤﯿ ﺰة ھ ﻲ‬‫اﻟﺨﯿﺎر اﻻﻓﺘﺮاﺿﻲ ) اﻟﺘﻠﻘﺎﺋﻲ ( ‪. Default Choice‬‬ ‫ اﻟﺜﺎﻧﯿﺔ ‪ :‬أن اﻟﻤﺤﺮر ﯾﻤﻜﻨﮫ ﺑﺸﻜﻞ آﻟﻲ أن ﯾﺴﻤﺢ ﻋﻨﺪ اﻻﻧﺘﻘﺎل إﻟﻰ ﺳﻄﺮ ﺟﺪﯾﺪ ﺑﺎﻟﺤﻔﺎظ ﻋﻠﻰ اﻟﻤﺴﺎﻓﺔ اﻟﺒﺎدﺋ ﺔ‬‫اﻟﻤﻌﺘﻤﺪة ﻓﻲ اﻟﺴﻄﺮ اﻟﺴﺎﺑﻖ ﺑﺤﯿﺚ أن اﻟﺴﻄﺮ اﻟﺠﺪﯾﺪ ﯾﻄﺎﺑﻖ ﻣﻦ ﺣﯿﺚ ﻣﻮﺿﻊ ﺑﺪاﯾﺘﮫ اﻟﺴﻄﺮ اﻟﺴﺎﺑﻖ ﻟﮫ ‪.‬‬ ‫ﺧﯿ ﺎرات ﻛﮭ ﺬه ﯾﻤﻜ ﻦ اﻟ ﺘﺤﻜﻢ ﺑﮭ ﺎ ﻋ ﻦ ﻃﺮﯾ ﻖ اﻹﻋ ﺪادات ‪ Settings‬اﻟﻤﺘﻌﻠﻘ ﺔ ﺑﻤﺤ ﺮر اﻟﻨﺼ ﻮص ‪Text Editor‬‬ ‫واﻟﻤﺘﺎﺣﺔ ﻣﻦ ﺧﻼل اﻟﻤﺴﺎر ‪. Tools > Options > Text Editor :‬‬ ‫‪ -١-١-٣‬اﺳﺘﺨﺪام ﻗﻮاﻟﺐ ‪Using VHDL Templates : VHDL‬‬ ‫إن اﻟﺼﯿﻎ اﻟﻘﻮاﻋﺪﯾﺔ ‪ Syntax‬ﻟﻜﻮد ‪ VHDL‬ﺗﻜﻮن أﺣﯿﺎﻧﺎً ﺻﻌﺒﺔ اﻟﺘﺬﻛﺮ ﺑﺎﻟﻨﺴﺒﺔ ﻟﻠﻤﺼ ﻤﻢ ‪ .‬ﻟﻠﻤﺴ ﺎﻋﺪة ﻓ ﻲ ﺣ ﻞ ھ ﺬه‬ ‫اﻟﻤﺸ ﻜﻠﺔ ﻓ ﺈن ﻣﺤ ﺮر اﻟﻨﺼ ﻮص ﯾ ﺰوّد ﻣﺠﻤﻮﻋ ﺔً ﻣ ﻦ ﻗﻮاﻟ ﺐ ‪ VHDL‬اﻟﺠ ﺎھﺰة ‪ .‬ھ ﺬه اﻟﻘﻮاﻟ ﺐ ‪ Templates‬ﺗﻘ ﺪّم‬ ‫أﻣﺜﻠﺔً ﻋﻠﻰ أﻧﻮاع ﻣﺨﺘﻠﻔ ﺔ ﻟﺘﻌﻠﯿﻤ ﺎت ‪ VHDL‬ﻛﺎﻟﺘﺼ ﺮﯾﺢ ﻋ ﻦ ﻛﯿ ﺎن ﻣ ﺎ ‪ Entity Declaration‬أو ﺗﻌﻠﯿﻤ ﺔ ‪CASE‬‬ ‫أو ﺗﻌﻠﯿﻤ ﺎت اﻹﺳ ﻨﺎد ‪ . Assignment Statements‬ﻟ ﺬﻟﻚ ﻣ ﻦ اﻟﻤﻔﯿ ﺪ اﺳ ﺘﻌﺮاض ھ ﺬه اﻟﻘﻮاﻟ ﺐ ﻣ ﻦ ﺧ ﻼل اﻟﻤﺴ ﺎر‬ ‫اﻟﺘﺎﻟﻲ ‪ Edit > Insert Template > VHDL :‬ﻟﺘﺼﺒﺢ ھﺬه اﻟﻤﻮارد ﻣﺄﻟﻮﻓﺔ ﺑﺎﻟﻨﺴﺒﺔ ﻟﻠﻤﺴﺘﺨﺪم ‪.‬‬ ‫‪ -٢-٣‬إﺿﺎﻓﺔ ﻣﻠﻔﺎت ﺗﺼﻤﯿﻢ إﻟﻰ ﻣﺸﺮوع ﻣﺎ ‪Adding Design Files to a Project :‬‬ ‫ﻛﻤﺎ ﺑﯿّﻨ ﺎ ﻋﻨ ﺪ ﻣﻨﺎﻗﺸ ﺔ اﻟﺸ ﻜﻞ )‪ (٧‬ﻓﺈﻧ ﮫ ﺑﺎﻹﻣﻜ ﺎن إﻋ ﻼم اﻟﺒﺮﻣﺠﯿ ﺔ ‪ Quartus II‬ﺑﺮﻏﺒﺘﻨ ﺎ ﻓ ﻲ إﺿ ﺎﻓﺔ ﻣﻠﻔ ﺎت ﺗﺼ ﻤﯿﻢ‬ ‫ﻣﻌﯿﻨﺔ ‪ Design Files‬ﻟﺘﺼﺒﺢ ﺟﺰءاً ﻣﻦ اﻟﻤﺸﺮوع اﻟﺤ ﺎﻟﻲ ‪ .‬ﻟﺮؤﯾ ﺔ ﻻﺋﺤ ﺔ اﻟﻤﻠﻔ ﺎت اﻟﻤُﻀ ﻤّﻨﺔ ﻣُﺴ ﺒﻘﺎً ﻓ ﻲ اﻟﻤﺸ ﺮوع‬ ‫‪ light‬ﯾﻤﻜ ﻦ اﺧﺘﯿ ﺎر ‪ Assignments > Settings… :‬اﻷﻣ ﺮ اﻟ ﺬي ﯾ ﺆدي إﻟ ﻰ ﻇﮭ ﻮر اﻟﻨﺎﻓ ﺬة اﻟﻤﺒﯿﻨ ﺔ ﻓ ﻲ اﻟﺸ ﻜﻞ‬ ‫)‪ . (١٧‬اﻵن وﻛﻤﺎ ھﻮ ﻣﻮﺿﺢ ﻓﻲ اﻟﺠﺎﻧﺐ اﻷﯾﺴﺮ ﻣﻦ اﻟﺸﻜﻞ )‪ (١٧‬ﻓﺈﻧﻨﺎ وﻣﻦ ﺧﻼل اﻟﻨﻘﺮ ﻋﻠ ﻰ اﻟﺒﻨ ﺪ ‪ Files‬ﺳ ﻨﺮى‬ ‫ﻛﺎﻓﺔ ﻣﻠﻔﺎت اﻟﺘﺼﻤﯿﻢ ﻓﻲ اﻟﻤﺸﺮوع اﻟﺤﺎﻟﻲ ‪ .‬ھﻨﺎك ﻃﺮﯾﻘﺔ ﺑﺪﯾﻠﺔ ﻟﻠﺤﺼﻮل ﻋﻠﻰ ﻧﻔﺲ اﻟﻨﺘﯿﺠﺔ وﺗﺘﻤﺜﻞ ﻓﻲ اﺧﺘﯿﺎر ‪:‬‬ ‫…‪. Project > Add/Remove Files in Project‬‬ ‫إذا ﻛﻨﺖ ﻗ ﺪ اﺳ ﺘﺨﺪﻣﺖ ﻣﺤ ﺮر ﻧﺼ ﻮص اﻟﺒﺮﻣﺠﯿ ﺔ ‪ Quartus II‬ﻹﻧﺸ ﺎء اﻟﻤﻠ ﻒ ‪ light.vhd‬وﻓﻌّﻠ ﺖ اﻟﺨﯿ ﺎر ‪Add‬‬ ‫‪ file to current project‬ﺑﻮﺿﻊ إﺷﺎرة √ ﻓﻲ اﻟﻤﺮﺑﻊ اﻟﺼ ﻐﯿﺮ اﻟﻤﺠ ﺎور ﻟ ﮫ ﻛﻤ ﺎ ﻣ ﺮ ﻣﻌﻨ ﺎ ﻓ ﻲ اﻟﺸ ﻜﻞ )‪ (١٥‬ﻓ ﺈن‬ ‫ھ ﺬا اﻟﻤﻠ ﻒ ﻗ ﺪ أﺻ ﺒﺢ ﺑﺸ ﻜﻞ ﻣﺴ ﺒﻖ ﺟ ﺰءاً ﻣ ﻦ اﻟﻤﺸ ﺮوع وﺳ ﻮف ﯾﻈﮭ ﺮ ﻓ ﻲ ﻻﺋﺤ ﺔ اﻟﻤﻠﻔ ﺎت اﻟﺘﺼ ﻤﯿﻤﯿﺔ ﻟﻠﻤﺸ ﺮوع‬ ‫واﻟﻤﺒﯿﻨﺔ ﻓﻲ اﻟﺸﻜﻞ )‪. (١٧‬‬ ‫إذا ﻟ ﻢ ﯾﻜ ﻦ اﻟﻤﻠ ﻒ ‪ light.vhd‬ﻗ ﺪ أﺿ ﯿﻒ ﺑﺸ ﻜﻞ ﻣﺴ ﺒﻖ إﻟ ﻰ اﻟﻤﺸ ﺮوع ﻓﺈﻧ ﮫ ﯾﺘﻮﺟ ﺐ إﺿ ﺎﻓﺘﮫ ﻟﯿﺼ ﺒﺢ ﺟ ﺰءاً ﻣ ﻦ‬ ‫اﻟﻤﺸﺮوع ‪ .‬وﺑﺎﻟﺘﺎﻟﻲ إذا ﻛﻨﺖ ﻋﻠﻰ ﺳﺒﯿﻞ اﻟﻤﺜﺎل ﻟﻢ ﺗﺴﺘﺨﺪم ﻣﺤﺮر ﻧﺼﻮص اﻟﺒﺮﻣﺠﯿﺔ ‪ Quartus II‬ﻓﯿﺘﻮﺟ ﺐ ﻋﻨ ﺪھﺎ‬ ‫وﺿ ﻊ ﻧﺴ ﺨﺔٍ ﻣ ﻦ اﻟﻤﻠ ﻒ ‪ light.vhd‬اﻟ ﺬي أﻧﺸ ﺄﺗﮫ ﺑﺎﺳ ﺘﺨﺪام ﻣﺤ ﺮر ﻧﺼ ﻮص آﺧ ﺮ داﺧ ﻞ اﻟﻤﺠﻠ ﺪ ‪introtutorial‬‬ ‫اﻟﺬي ﯾﻤﺜﻞ ﻣﺠﻠﺪ اﻟﻤﺸﺮوع اﻟﺤﺎﻟﻲ ‪ .‬ﻹﺿ ﺎﻓﺔ ھ ﺬا اﻟﻤﻠ ﻒ إﻟ ﻰ اﻟﻤﺸ ﺮوع ﻧﻨﻘ ﺮ ﻋﻠ ﻰ زر اﻻﺳ ﺘﻌﺮاض‬ ‫اﻟﻤﺠ ﺎور‬ ‫ﻟﻠﺤﻘ ﻞ ‪ File name:‬ﻓ ﻲ اﻟﺸ ﻜﻞ )‪ (١٧‬ﻟﻠﺤﺼ ﻮل ﻋﻠ ﻰ اﻟﻨﺎﻓ ﺬة اﻟﻤﻨﺒﺜﻘ ﺔ ‪ Pop-Up Window‬اﻟﻤﺒﯿﻨ ﺔ ﻓ ﻲ اﻟﺸ ﻜﻞ‬ ‫)‪ . (١٨‬ﻧﺤ ﺪّد اﻟﻤﻠ ﻒ ‪ light.vhd‬وﻣ ﻦ ﺛ ﻢ ﻧﻨﻘ ﺮ ﻋﻠ ﻰ اﻟ ﺰر ‪ . Open‬اﻟﻤﻠ ﻒ اﻟﻤﺨﺘ ﺎر اﻵن ﻣﺒ ﯿﻦ ﻓ ﻲ اﻟﺤﻘ ﻞ ‪File‬‬ ‫‪ name:‬ﺿﻤﻦ اﻟﺸﻜﻞ )‪ (١٧‬وﺑﺎﻟﺘﺎﻟﻲ ﺑﺎﻟﻨﻘﺮ ﻋﻠﻰ اﻟﺰر ‪ Add‬وﻣﻦ ﺛﻢ ﻋﻠﻰ اﻟﺰر ‪ Ok‬ﯾﺼ ﺒﺢ ھ ﺬا اﻟﻤﻠ ﻒ ﺟ ﺰءاً ﻣ ﻦ‬ ‫اﻟﻤﺸﺮوع ‪.‬‬ ‫ﻣ ﻦ اﻟﺠ ﺪﯾﺮ ﺑﺎﻟ ﺬﻛﺮ ھﻨ ﺎ أﻧ ﮫ ﻓ ﻲ ﻋ ﺪّة ﺣ ﺎﻻت ﺗﻜ ﻮن اﻟﺒﺮﻣﺠﯿّ ﺔ ‪ Quartus II‬ﻗ ﺎدرةً ﺑﺸ ﻜﻞ آﻟ ﻲ ﻋﻠ ﻰ إﯾﺠ ﺎد اﻟﻤﻠﻔ ﺎت‬ ‫اﻟﻀﺮورﯾﺔ ﻟﻼﺳﺘﺨﺪام ﻣﻦ أﺟﻞ ﻛﻞ ﻛﯿﺎن ‪ Entity‬ﺗﻢ اﻻﻋﺘﻤﺎد ﻋﻠﯿ ﮫ ﻓ ﻲ ﻛ ﻮد ‪ VHDL‬اﻟﺮﺋﯿﺴ ﻲ ) ‪( Main Code‬‬ ‫‪١٢‬‬


‫ﺣﺘﻰ وﻟﻮ ﻛﺎن اﻟﻤﻠﻒ اﻟﺬي ﯾﺘﻀﻤﻦ ھﺬا اﻟﻜﯿ ﺎن ﻟ ﻢ ﺗ ﺘﻢ إﺿ ﺎﻓﺘﮫ ﺑﺸ ﻜﻞ ﺻ ﺮﯾﺢ إﻟ ﻰ اﻟﻤﺸ ﺮوع ) وﻟﻜ ﻦ ﻃﺒﻌ ﺎً ﺷ ﺮﯾﻄﺔ‬ ‫وﺟﻮد ھﺬا اﻟﻤﻠﻒ ﻓﻲ ﻣﺠﻠﺪ اﻟﻤﺸﺮوع ( ‪ .‬ﻋﻠﻰ ﻛﻞ ﺣ ﺎل ‪ ،‬ﻣ ﻦ أﺟ ﻞ اﻟﻤﺸ ﺎرﯾﻊ اﻟﻤﻌﻘ ﺪة ‪ Complex Projects‬اﻟﺘ ﻲ‬ ‫ﺗﺴ ﺘﺨﺪم ﻋ ﺪة ﻣﻠﻔ ﺎت ﻓ ﺈن إﺿ ﺎﻓﺔ اﻟﻤﻠﻔ ﺎت اﻟﻀ ﺮورﯾﺔ ﺑﺸ ﻜﻞ ﺻ ﺮﯾﺢ إﻟ ﻰ اﻟﻤﺸ ﺮوع ﻛﻤ ﺎ ﺑﯿّﻨ ﺎ أﻋ ﻼه ﯾﻌﺘﺒ ﺮ ﻣﻨﮭﺠ ﺎً‬ ‫ﺗﺼﻤﯿﻤﯿﺎً ﻋﻤﻠﯿﺎً ﺟﯿﺪاً ‪.‬‬

‫اﻟﺸﻜﻞ )‪ : (١٧‬ﻧﺎﻓﺬة اﻹﻋﺪادات ‪. Settings Window‬‬

‫اﻟﺸﻜﻞ )‪ : (١٨‬اﺧﺘﯿﺎر اﻟﻤﻠﻒ اﻟﺬي ﺳﯿﻀﺎف إﻟﻰ اﻟﻤﺸﺮوع ‪.‬‬ ‫‪ -٤‬ﺗﺮﺟﻤﺔ اﻟﺪارة اﻟﻤﺼﻤﻤﺔ ‪Compiling The Designed Circuit :‬‬ ‫إن ﻛﻮد ‪ VHDL‬ﻓﻲ اﻟﻤﻠﻒ ‪ light.vhd‬ﺗﺘﻢ ﻣﻌﺎﻟﺠﺘﮫ ﻣﻦ ﻗﺒﻞ ﻋ ﺪة أدوات ﻓ ﻲ اﻟﺒﺮﻣﺠﯿ ﺔ ‪ Quartus II‬واﻟﺘ ﻲ ﺗﺤﻠ ﻞ‬ ‫اﻟﻜ ﻮد ‪ Analyze The Code‬وﺗﺮﻛ ﺐ اﻟ ﺪارة ‪ Synthesize The Circuit‬وﺗﻮﻟ ﺪ ﺗﻨﺠﯿ ﺰاً ‪Implementation‬‬ ‫ﻣﻮاﻓﻘ ﺎً ﻟﮭ ﺎ ﻣ ﻦ أﺟ ﻞ اﻟﺸ ﺮﯾﺤﺔ اﻟﮭ ﺪف ‪ . The Target Chip‬ھ ﺬه اﻷدوات اﻟﺒﺮﻣﺠﯿ ﺔ ‪ Software Tools‬ﺿ ﻤﻦ‬ ‫ﺑﯿﺌﺔ اﻟﺘﻄﻮﯾﺮ ‪ Quartus II‬ﻣُﻘﺎدة ﺑﺎﻟﺒﺮﻧﺎﻣﺞ اﻟﺘﻄﺒﯿﻘﻲ اﻟﻤﺪﻋﻮ ‪ :‬اﻟﻤﺘﺮﺟﻢ ‪. The Compiler‬‬ ‫ﯾﺘﻢ ﺗﺸﻐﯿﻞ اﻟﻤﺘﺮﺟﻢ ﻣ ﻦ ﺧ ﻼل اﻟﻘﺎﺋﻤ ﺔ ‪ Processing‬واﺧﺘﯿ ﺎر اﻷﻣ ﺮ ‪ ) Start Compilation‬أو ﺑﺒﺴ ﺎﻃﺔ اﻟﻀ ﻐﻂ‬ ‫ﻋﻠﻰ اﻻﺧﺘﺼﺎر اﻟﻤﻔﺘﺎﺣﻲ ‪ ( Ctrl+L‬أو ﻣﻦ ﺧﻼل اﻟﻨﻘﺮ ﻋﻠﻰ اﻷﯾﻘﻮﻧﺔ‬ ‫ﻓﻲ ﺷﺮﯾﻂ اﻷدوات واﻟﺘﻲ ﺗﺸ ﺒﮫ ﺻ ﻮرة‬ ‫ﻣﻌﻤﻞ ‪ .‬ﺗﻤﺮ ﻋﻤﻠﯿﺔ اﻟﺘﺮﺟﻤﺔ ﺑﻌﺪة ﻣﺮاﺣﻞ ) ﺗﺒﺪأ ﺑﻌﻤﻠﯿﺔ اﻟﺘﺤﻠﯿ ﻞ واﻟﺘﺮﻛﯿ ﺐ ‪ Analysis & Synthesis‬ﺗﻠﯿﮭ ﺎ ﻋﻤﻠﯿ ﺔ‬ ‫اﻟﺘﻮﺿﯿﻊ اﻟﺘﻲ ﯾﻘﻮم ﺑﮭﺎ اﻟﻤﻮﺿﻊ ‪ Fitter‬وﻣﻦ ﺛﻢ ﻋﻤﻠﯿﺔ اﻟﺘﺠﻤﯿﻊ اﻟﺘﻲ ﯾﻘﻮم ﺑﮭﺎ اﻟﻤﺠﻤﻊ ‪ Assembler‬وأﺧﯿﺮاً ﻋﻤﻠﯿ ﺔ‬ ‫اﻟﺘﺤﻠﯿ ﻞ اﻟﺰﻣﻨ ﻲ ‪ . ( Timing Analysis‬إن ﺗﻘ ﺪم ﻋﻤﻠﯿ ﺔ اﻟﺘﺮﺟﻤ ﺔ ﯾﻈﮭ ﺮ ﺿ ﻤﻦ اﻟﻨﺎﻓ ﺬة اﻟﺼ ﻐﯿﺮة ذات اﻟﻌﻨ ﻮان‬ ‫‪ Status‬واﻟﺘﻲ ﯾﻤﻜﻦ إﻇﮭﺎرھﺎ أو إﺧﻔﺎؤھﺎ ﻣﻦ ﺧﻼل اﻷﻣﺮ ‪ Status‬ﻓ ﻲ اﻟﻘﺎﺋﻤ ﺔ اﻟﻔﺮﻋﯿ ﺔ ‪ Utility Windows‬ﻣ ﻦ‬ ‫‪١٣‬‬


‫اﻟﻘﺎﺋﻤ ﺔ اﻟﺮﺋﯿﺴ ﯿﺔ ‪ ) View‬أو ﺑﺒﺴ ﺎﻃﺔ ﻣ ﻦ ﺧ ﻼل اﻟﻀ ﻐﻂ ﻋﻠ ﻰ اﻟﺘﺮاﻛ ﺐ اﻟﻤﻔﺘ ﺎﺣﻲ ‪ . ( Alt+4‬ﻋﻨ ﺪ اﻧﺘﮭ ﺎء ﻋﻤﻠﯿ ﺔ‬ ‫اﻟﺘﺮﺟﻤﺔ ﺑﻨﺠﺎح دون وﺟﻮد أﺧﻄﺎء ﺗﻈﮭﺮ ﻧﺎﻓﺬة ﺻﻐﯿﺮة ﻣﻊ رﺳﺎﻟﺔ اﻧﺘﮭﺎء اﻟﺘﺮﺟﻤﺔ ﺑﻨﺠﺎح ﻛﻤﺎ ھﻮ واﺿﺢ ﻓ ﻲ اﻟﺸ ﻜﻞ‬ ‫)‪. (١٩‬‬

‫اﻟﺸﻜﻞ )‪ : (١٩‬رﺳﺎﻟﺔ اﻧﺘﮭﺎء ﻋﻤﻠﯿﺔ اﻟﺘﺮﺟﻤﺔ ﺑﻨﺠﺎح ‪.‬‬ ‫ﺑﺎﻟﻨﻘﺮ ﻋﻠﻰ اﻟﺰر ‪ ) OK‬أو ﻣﻮاﻓﻖ ( ﻧﺤﺼﻞ ﻋﻠﻰ اﻟﻨﺎﻓﺬة اﻟﻤﺒﯿﻨﺔ ﻓﻲ اﻟﺸﻜﻞ )‪ (٢٠‬وﻓﯿﮭ ﺎ ﺗﻈﮭ ﺮ اﻟﻨﺎﻓ ﺬة ‪ Status‬آﻧﻔ ﺔ‬ ‫اﻟﺬﻛﺮ ﻣﻊ ﻣﺆﺷﺮات اﻟﻨﺴﺒﺔ اﻟﻤﺌﻮﯾﺔ اﻟﺘﻲ ﺗﺪل ﻋﻠﻰ اﻧﺘﮭﺎء اﻟﻤﺘﺮﺟﻢ ﻣﻦ ﻋﻤﻠﮫ ‪.‬‬

‫اﻟﺸﻜﻞ )‪ : (٢٠‬اﻟﻨﺎﻓﺬة اﻟﺮﺋﯿﺴﯿﺔ ﻟﻠﺒﺮﻣﺠﯿﺔ ‪ Quartus II‬ﺑﻌﺪ اﻻﻧﺘﮭﺎء ﻣﻦ ﻋﻤﻠﯿﺔ اﻟﺘﺮﺟﻤﺔ ‪.‬‬ ‫ﻓﻲ ﺣﺎﻟﺔ وﺟﻮد أﺧﻄﺎء ﯾﻤﻜﻨﻨﺎ اﻟﻨﻘﺮ ﻋﻠﻰ اﻟﻠﻮﯾﺤ ﺔ ‪ Error‬ﺿ ﻤﻦ اﻟﻨﺎﻓ ﺬة ذات اﻟﻌﻨ ﻮان ‪ Messages‬ﻛﻤ ﺎ ھ ﻮ واﺿ ﺢ‬ ‫ﻓﻲ اﻟﺸﻜﻞ )‪ (٢١‬ﻟﺘﻔﺤﺺ رﺳﺎﺋﻞ اﻟﺨﻄﺄ وﺗﺼﺤﯿﺢ اﻷﺧﻄﺎء وﻣﻦ ﺛﻢ إﻋﺎدة ﻋﻤﻠﯿ ﺔ اﻟﺘﺮﺟﻤ ﺔ ﺣﺘ ﻰ اﻟ ﺘﺨﻠﺺ ﻣ ﻦ ﻛﺎﻓ ﺔ‬ ‫اﻷﺧﻄﺎء اﻟﻤﻮﺟﻮدة ﺿﻤﻦ اﻟﻜﻮد ‪.‬‬

‫اﻟﺸﻜﻞ )‪ : (٢١‬رﺳﺎﺋﻞ اﻟﺨﻄﺄ ﺿﻤﻦ اﻟﻠﻮﯾﺤﺔ ‪ Error‬داﺧﻞ اﻟﻨﺎﻓﺬة ‪ Messages‬ﻓﻲ اﻟﺒﺮﻣﺠﯿﺔ ‪. Quartus II‬‬ ‫‪١٤‬‬


‫ﯾﻤﻜ ﻦ ﻋ ﺮض ﺗﻘﺮﯾ ﺮ اﻟﺘﺮﺟﻤ ﺔ ﺑﻌ ﺪ اﻻﻧﺘﮭ ﺎء ﻣ ﻦ ﻋﻤﻠﯿ ﺔ اﻟﺘﺮﺟﻤ ﺔ ﺑﻨﺠ ﺎح ﻣ ﻦ ﺧ ﻼل اﻟﻘﺎﺋﻤ ﺔ ‪ Processing‬واﺧﺘﯿ ﺎر‬ ‫اﻷﻣﺮ ‪ ) Compilation Report‬أو اﻟﻀﻐﻂ ﺑﺒﺴﺎﻃﺔ ﻋﻠﻰ اﻻﺧﺘﺼﺎر اﻟﻤﻔﺘﺎﺣﻲ ‪ ( Ctrl+R‬اﻷﻣﺮ اﻟﺬي ﯾﺆدي إﻟ ﻰ‬ ‫ﻋ ﺮض ﺧﻼﺻ ﺔ ﺗﻘﺮﯾ ﺮ ﻋﻤﻠﯿ ﺔ اﻟﺘﺮﺟﻤ ﺔ ﻓ ﻲ اﻟﺠ ﺰء اﻷﯾﻤ ﻦ ﻣ ﻦ ﻧﺎﻓ ﺬة اﻟﺒﺮﻣﺠﯿ ﺔ ‪ Quartus II‬ﻛﻤ ﺎ ھ ﻮ واﺿ ﺢ ﻓ ﻲ‬ ‫اﻟﺸﻜﻞ )‪. (٢٢‬‬

‫اﻟﺸﻜﻞ )‪ (٢٢‬ﺧﻼﺻﺔ ﺗﻘﺮﯾﺮ ﻋﻤﻠﯿﺔ اﻟﺘﺮﺟﻤﺔ ‪. Compilation Report‬‬ ‫ﺿﻤﻦ ھﺬه اﻟﻨﺎﻓﺬة ﯾﻤﻜﻨﻨﺎ اﻟﻨﻘﺮ ﻋﻠﻰ اﻟﺒﻨﺪ ‪ Flow Summary‬ﻟﻨ ﺮى ﻣﻌﻠﻮﻣ ﺎت ﺗﺘﻌﻠ ﻖ ﺑﺎﻟﻤﺸ ﺮوع اﻟﺤ ﺎﻟﻲ واﻟﺸ ﺮﯾﺤﺔ‬ ‫اﻟﻤﺨﺘ ﺎرة ﺑﺎﻹﺿ ﺎﻓﺔ إﻟ ﻰ ﻣﻌﻠﻮﻣ ﺎت ﻋ ﻦ ﻋ ﺪد اﻟﻌﻨﺎﺻ ﺮ اﻟﻤﻨﻄﻘﯿ ﺔ ‪ Logic Elements‬اﻟﻤﺴ ﺘﺨﺪﻣﺔ ﻟﺘﻨﺠﯿ ﺰ دارة‬ ‫اﻟﻤﺸﺮوع وﻋ ﺪد أﻗﻄ ﺎب اﻟ ﺪﺧﻞ واﻟﺨ ﺮج ﻟﻠ ﺪارة ﻛﻤ ﺎ ﻧﻼﺣ ﻆ أن ﻋ ﺪد اﻟﻘﻼﺑ ﺎت اﻟﻤﺴ ﺘﺨﺪﻣﺔ ھﻨ ﺎ ﯾﺴ ﺎوي اﻟﺼ ﻔﺮ ﻷن‬ ‫اﻟﺪارة ﺗﺮﻛﯿﺒﯿﺔ ﺻﺮﻓﺔ ﺑﺎﻹﺿﺎﻓﺔ إﻟﻰ ﻋﺪم اﺳﺘﺨﺪام أﯾﺔ ﺧﻠﯿﺔ ذاﻛﺮﯾﺔ ﻣﻦ اﻟﺨﻼﯾﺎ اﻟﻤﺘﻮاﻓﺮة ﺿﻤﻦ ﺷﺮﯾﺤﺔ اﻟ ـ ‪FPGA‬‬ ‫اﻟﻤﺨﺘﺎرة ) واﻟﺒﺎﻟﻎ ﻋﺪدھﺎ ﺣﻮاﻟﻰ ‪ 480‬أﻟﻒ ﺧﻠﯿﺔ أو ﺧﺎﻧﺔ ( ‪.‬‬ ‫‪ -١-٤‬اﻷﺧﻄﺎء ‪Errors :‬‬ ‫ﺗﻘ ﻮم اﻟﺒﺮﻣﺠﯿ ﺔ ‪ Quartus II‬ﺑﻌ ﺮض اﻟﺮﺳ ﺎﺋﻞ اﻟﺘ ﻲ ﯾﻮﻟ ﺪھﺎ اﻟﻤﺘ ﺮﺟﻢ أﺛﻨ ﺎء ﻋﻤﻠﯿ ﺔ اﻟﺘﺮﺟﻤ ﺔ ﻓ ﻲ ﻧﺎﻓ ﺬة اﻟﺮﺳ ﺎﺋﻞ‬ ‫‪ . Messages Window‬إذا ﻛﺎن ﻣﻠ ﻒ اﻟﺘﺼ ﻤﯿﻢ ﺑﻠﻐ ﺔ ‪ VHDL‬ﺻ ﺤﯿﺤﺎً ﻓ ﺈن إﺣ ﺪى ھ ﺬه اﻟﺮﺳ ﺎﺋﻞ ﺗﺸ ﯿﺮ إﻟ ﻰ أن‬ ‫ﻋﻤﻠﯿﺔ اﻟﺘﺮﺟﻤﺔ ﻗﺪ ﺗﻤﺖ ﺑﻨﺠﺎح وأﻧﮫ ﻻ ﺗﻮﺟﺪ أﯾ ﺔ أﺧﻄ ﺎء ‪ .‬إذا ﻟ ﻢ ﯾﻌ ﺮض اﻟﻤﺘ ﺮﺟﻢ رﺳ ﺎﻟﺔ اﻟﺨﻠ ﻮ ﻣ ﻦ اﻷﺧﻄ ﺎء ﻓﮭ ﺬا‬ ‫ﯾﻌﻨﻲ أﻧﮫ ﯾﻮﺟﺪ ﺧﻄﺄ واﺣﺪ ﻋﻠﻰ اﻷﻗﻞ ﺿﻤﻦ ﻛﻮد ‪ . VHDL‬ﻓﻲ ھﺬه اﻟﺤﺎﻟﺔ ‪ ،‬ﺳﻮف ﯾﺘﻢ ﻋﺮض رﺳﺎﻟﺔ ﻣﻼﺋﻤ ﺔ ﻟﻜ ﻞ‬ ‫ﺧﻄﺄ ﻣﻮﺟﻮد ﻓﻲ اﻟﻜﻮد ﺿﻤﻦ ﻧﺎﻓﺬة اﻟﺮﺳﺎﺋﻞ وﺗﺤﺪﯾﺪاً ﻓ ﻲ اﻟﻠﻮﯾﺤ ﺔ اﻟﺨﺎﺻ ﺔ ﺑﺎﻷﺧﻄ ﺎء ‪ Error Tab‬ﻛﻤ ﺎ ھ ﻮ واﺿ ﺢ‬ ‫ﻓ ﻲ اﻟﺸ ﻜﻞ )‪ . (٢١‬ﻋﻨ ﺪ اﻟﻨﻘ ﺮ ﺑﺸ ﻜﻞ ﻣ ﺰدوج ﻋﻠ ﻰ رﺳ ﺎﻟﺔ ﺧﻄ ﺄ ﻣ ﺎ ﺗﻘ ﻮم اﻟﺒﺮﻣﺠﯿ ﺔ ‪ Quartus II‬ﻣﺒﺎﺷ ﺮة ﺑﺘﻠ ﻮﯾﻦ‬ ‫اﻟﺴﻄﺮ اﻟﺬي ﺣﺪث ﻋﻨﺪه اﻟﺨﻄ ﺄ أﺛﻨ ﺎء ﻛﺘﺎﺑ ﺔ اﻟﻜ ﻮد ﺿ ﻤﻦ ﻧﺎﻓ ﺬة اﻟﻤﺤ ﺮر اﻟﻨﺼ ﻲ ‪ Text Editor‬اﻷﻣ ﺮ اﻟ ﺬي ﯾﺴ ﮭﻞ‬ ‫ﻋﻤﻠﯿﺔ ﺗﺼﺤﯿﺢ اﻟﺨﻄﺄ ‪ .‬ﺑﺸﻜﻞ ﻣﺸﺎﺑﮫ ‪ ،‬ﻓﺈن اﻟﻤﺘﺮﺟﻢ ﯾﻌﺮض ﺑﻀﻌﺔ رﺳﺎﺋﻞ ﺗﺤ ﺬﯾﺮ ‪ Warning Messages‬ﺿ ﻤﻦ‬ ‫اﻟﻠﻮﯾﺤﺘﯿﻦ ‪ Warning‬و ‪ . Critical Warning‬ﻋﻤﻮﻣ ﺎً ﻻ ﺗﺸ ﻜﻞ رﺳ ﺎﺋﻞ اﻟﺘﺤ ﺬﯾﺮ ﺿ ﻤﻦ اﻟﻠﻮﯾﺤ ﺔ ‪ Warning‬أﯾ ﺔ‬ ‫ﻣﺸﻜﻠﺔ وﻟﻜﻦ ﯾﺠﺐ دوﻣﺎً ﺗﻔﺤﺺ رﺳﺎﺋﻞ اﻟﺘﺤﺬﯾﺮ ﺿﻤﻦ اﻟﻠﻮﯾﺤﺔ ‪ Critical Warning‬ﻛﻤ ﺎ ﺳ ﻨﺮى ﺑﻌ ﺪ ﻗﻠﯿ ﻞ ‪ .‬ﻋﻠ ﻰ‬ ‫ﻛﻞ ﺣﺎل ‪ ،‬ﯾﻤﻜﻦ دوﻣﺎً اﺳﺘﻜﺸﺎف ﺗﻔﺎﺻﯿﻞ ﺣﻮل رﺳﺎﻟﺔ ﺗﺤﺬﯾﺮ ﻣﺎ ﻣﻦ ﺧﻼل ﺗﺤﺪﯾﺪ اﻟﺮﺳﺎﻟﺔ اﻟﻤﻄﻠﻮﺑﺔ وﻣﻦ ﺛﻢ اﻟﻀ ﻐﻂ‬ ‫ﻋﻠﻰ اﻟﻤﻔﺘﺎح اﻟﻮﻇﯿﻔﻲ ‪ F1‬ﻋﻠﻰ ﻟﻮﺣﺔ اﻟﻤﻔﺎﺗﯿﺢ ‪.‬‬ ‫ﻟﺮؤﯾ ﺔ ﺗ ﺄﺛﯿﺮ ﺧﻄ ﺄ ﻣ ﺎ ﺳ ﻨﻘﻮم ﺑﺤ ﺬف اﻟﻔﺎﺻ ﻠﺔ اﻟﻤﻨﻘﻮﻃ ﺔ اﻟﻤﻮﺟ ﻮدة ﻓ ﻲ ﻧﮭﺎﯾ ﺔ اﻟﺴ ﻄﺮ اﻟ ﺬي ﯾﻘ ﻮم ﺑﺘﺤﺪﯾ ﺪ اﻟﺘ ﺎﺑﻊ ‪) f‬‬ ‫اﻟﺴﻄﺮ رﻗﻢ ‪ 12‬ﻣﻦ اﻟﻜﻮد اﻟﺴﺎﺑﻖ أﻋﻼه ( وذﻟﻚ ﯾﻤﻜﻦ أن ﯾﺤﺪث ﻋ ﻦ ﻃﺮﯾ ﻖ اﻟﺼ ﺪﻓﺔ ﻛﺨﻄ ﺄ ﻏﯿ ﺮ ﻣﻘﺼ ﻮد أﺣﯿﺎﻧ ﺎً ‪.‬‬ ‫ﻧﻌﯿﺪ ﻋﻤﻠﯿﺔ اﻟﺘﺮﺟﻤﺔ ﺑﻌﺪ ﺗﺨﺰﯾﻦ ﻣﻠﻒ اﻟﻜﻮد اﻟﻤﻐﻠﻮط ﻓﻨﺤﺼﻞ ﻋﻠﻰ اﻟﺮﺳﺎﻟﺔ اﻟﻤﺒﯿﻨﺔ ﻓﻲ اﻟﺸﻜﻞ )‪ (٢٣‬واﻟﺘﻲ ﺗﻔﯿ ﺪ ﺑ ﺄن‬ ‫ﻋﻤﻠﯿﺔ اﻟﺘﺮﺟﻤﺔ ﻟﻢ ﺗﻨﺠﺢ وأن ھﻨﺎك ﺛﻼﺛﺔ أﺧﻄﺎء ‪ .‬ﻧﻨﻘﺮ ﻋﻠﻰ اﻟ ﺰر ‪ ) OK‬أو ﻣﻮاﻓ ﻖ ( ﻹﻏ ﻼق ھ ﺬه اﻟﻨﺎﻓ ﺬة وﻣ ﻦ ﺛ ﻢ‬ ‫ﻧﻨﻘﺮ ﻋﻠﻰ اﻟﻠﻮﯾﺤﺔ ‪ Error‬ﺿﻤﻦ اﻟﻨﺎﻓﺬة ‪ Messages‬ﻟﻨﺮى رﺳﺎﺋﻞ اﻟﺨﻄﺄ اﻟﺜﻼﺛﺔ ﻛﻤﺎ ھﻮ واﺿﺢ ﻓﻲ اﻟﺸﻜﻞ )‪. (٢٤‬‬ ‫‪١٥‬‬


‫اﻟﺸﻜﻞ )‪ : (٢٣‬رﺳﺎﻟﺔ ﻓﺸﻞ ﻋﻤﻠﯿﺔ اﻟﺘﺮﺟﻤﺔ ووﺟﻮد أﺧﻄﺎء ﺿﻤﻦ اﻟﻜﻮد ‪.‬‬

‫اﻟﺸﻜﻞ )‪ : (٢٤‬رﺳﺎﺋﻞ اﻟﺨﻄﺄ ﺿﻤﻦ اﻟﻠﻮﯾﺤﺔ ‪ Error‬ﻓﻲ ﻧﺎﻓﺬة اﻟﺮﺳﺎﺋﻞ ﻟﻠﺒﺮﻣﺠﯿﺔ ‪. Quartus II‬‬ ‫ﻧﺒﺪأ ﺑﺎﻟﻨﻘﺮ ﺑﺸﻜﻞ ﻣﺰدوج ﻋﻠﻰ رﺳﺎﻟﺔ اﻟﺨﻄﺄ اﻷوﻟﻰ ﻓﯿﻘﻮم اﻟﻤﺤﺮر اﻟﻨﺼ ﻲ ﺑﺘﺤﺪﯾ ﺪ اﻟﺴ ﻄﺮ اﻟ ﺬي ﺣ ﺪث ﻓﯿ ﮫ اﻟﺨﻄ ﺄ ‪.‬‬ ‫ﻓﻲ اﻟﺤﻘﯿﻘﺔ إن اﻟﺨﻄﺄ ﻓﻲ ﺣﺎﻟﺘﻨﺎ ھﺬه ﻗﺪ وﻗﻊ ﻓﻲ اﻟﺴﻄﺮ رﻗﻢ ‪ ) 12‬ﺣﺬف اﻟﻔﺎﺻﻠﺔ اﻟﻤﻨﻘﻮﻃﺔ ﻓﻲ ﻧﮭﺎﯾﺔ اﻟﺴﻄﺮ ( وﺗﻔﯿ ﺪ‬ ‫رﺳ ﺎﻟﺔ اﻟﺨﻄ ﺄ ﺑ ﺄن اﻟﻤﺘ ﺮﺟﻢ ﯾﺘﻮﻗ ﻊ وﺟ ﻮد اﻟﻔﺎﺻ ﻠﺔ اﻟﻤﻨﻘﻮﻃ ﺔ ﻗﺒ ﻞ اﻟﻜﻠﻤ ﺔ اﻟﻤﺤﺠ ﻮزة ‪ END‬وﺑﺎﻟﺘ ﺎﻟﻲ ﯾﻤﻜﻨﻨ ﺎ إﻋ ﺎدة‬ ‫اﻟﻔﺎﺻﻠﺔ اﻟﻤﻨﻘﻮﻃﺔ إﻟﻰ ﻣﻜﺎﻧﮭﺎ وﺗﺨﺰﯾﻦ ھﺬا اﻟﺘﻐﯿﯿﺮ وﻣﻦ ﺛﻢ إﻋﺎدة ﻋﻤﻠﯿﺔ اﻟﺘﺮﺟﻤﺔ ﻣﺮة أﺧﺮى ‪.‬‬ ‫‪ -٥‬إﺳﻨﺎد اﻷﻗﻄﺎب ‪Pin Assignment :‬‬ ‫أﺛﻨ ﺎء ﻋﻤﻠﯿ ﺔ اﻟﺘﺮﺟﻤ ﺔ اﻟﺴ ﺎﺑﻘﺔ أﻋ ﻼه ‪ ،‬ﻛ ﺎن اﻟﻤﺘ ﺮﺟﻢ ﻓ ﻲ اﻟﺒﺮﻣﺠﯿ ﺔ ‪ Quartus II‬ﺣ ﺮاً ﻓ ﻲ اﺧﺘﯿ ﺎر أﯾ ﺔ أﻗﻄ ﺎب ﻣ ﻦ‬ ‫أﻗﻄﺎب اﻟﺸﺮﯾﺤﺔ اﻟﻤﺤ ﺪدة ) اﻟﺸ ﺮﯾﺤﺔ ‪ EP2C35F672C6‬ﻣ ﻦ اﻟﻌﺎﺋﻠ ﺔ ‪ ( Cyclone II‬ﻟﺘﻜ ﻮن ﻣ ﺪاﺧﻞ أو ﻣﺨ ﺎرج‬ ‫ﻟﻠﺪارة ‪ .‬وﻟﻜﻦ ﻓﻲ ﺣﺎﻟﺘﻨ ﺎ ھ ﺬه ‪ ،‬وﺑﺎﻋﺘﺒ ﺎر أن اﻟﺘﻮﺻ ﯿﻼت ﺑ ﯿﻦ أﻗﻄ ﺎب اﻟﺸ ﺮﯾﺤﺔ وﺑ ﺎﻗﻲ ﻣﻜﻮﻧ ﺎت اﻟﺒ ﻮرد ‪ DE2‬ھ ﻲ‬ ‫ﺗﻮﺻﯿﻼت ﺛﺎﺑﺘﺔ وﻻ ﯾﻤﻜﻦ ﺗﻐﯿﯿﺮھﺎ ﻣﻦ ﺟﮭﺔ وأﻧﻨﺎ ﺳﻨﺴﺘﺨﺪم اﻟﻤﻔﺘﺎﺣﯿﻦ ‪ SW0‬و ‪ ) SW1‬وھﻤ ﺎ ﻣﻔﺘﺎﺣ ﺎن ﻣ ﻦ اﻟﻨ ﻮع‬ ‫‪ ON/OFF‬وﻣﻮﺻﻮﻻن إﻟﻰ اﻟﻘﻄﺒﯿﻦ ‪ N25‬و ‪ N26‬ﻣﻦ أﻗﻄ ﺎب ﺷ ﺮﯾﺤﺔ اﻟ ـ ‪ ( FPGA‬وﺛﻨ ﺎﺋﻲ اﻹﺻ ﺪار اﻟﻀ ﻮﺋﻲ‬ ‫‪ ) LEDG0‬وھﻮ اﻟﻠﯿﺪ اﻟﻤﻮﺻﻮل إﻟﻰ اﻟﻘﻄﺐ ‪ AE22‬ﻣﻦ اﻟﺸﺮﯾﺤﺔ ( ‪ ،‬ﻓﺈﻧﻨ ﺎ ﻣﻠﺰﻣ ﻮن ﺑ ﺈﻋﻼم اﻟﻤﺘ ﺮﺟﻢ ﺑﮭ ﺬه اﻟﻘﯿ ﻮد‬ ‫اﻟﺜﻼﺛﺔ ﻗﺒﻞ إﻃﻼق ﻋﻤﻠﯿﺔ اﻟﺘﺮﺟﻤﺔ ﻣﻦ ﺧﻼل اﻟﻘﯿﺎم ﺑﻌﻤﻠﯿﺔ إﺳﻨﺎد ) ﺗﺨﺼﯿﺺ ( اﻷﻗﻄﺎب ﻛﻤﺎ ھﻮ ﻣﻮﺿﺢ ﻓﯿﻤﺎ ﯾﻠﻲ ‪:‬‬ ‫ﻣﻦ ﺧﻼل اﻟﻘﺎﺋﻤﺔ ‪ Assignments‬ﻧﻘﻮم ﺑﺎﻟﻨﻘﺮ ﻋﻠﻰ اﻷﻣﺮ ‪ Pins‬ﻓﺘﻈﮭﺮ اﻟﻨﺎﻓﺬة اﻟﻤﺒﯿﻨﺔ ﻓﻲ اﻟﺸﻜﻞ )‪. (٢٥‬‬ ‫ﻧﻼﺣﻆ ﻓﻲ اﻟﻘﺴﻢ اﻟﺴﻔﻠﻲ ﻣﻦ ھﺬه اﻟﻨﺎﻓﺬة وﺟﻮد ﺟﺪول ﯾﺘﻀﻤﻦ ﻛﺎﻓﺔ ﻣ ﺪاﺧﻞ وﻣﺨ ﺎرج اﻟ ﺪارة ) ﻓ ﻲ ﺣﺎﻟﺘﻨ ﺎ ھ ﺬه ‪ x1‬و‬ ‫‪ x2‬و ‪ ( f‬ﻓ ﻲ اﻟﻌﻤ ﻮد اﻷول ﻣﻨ ﮫ واﻟ ﺬي ﯾﺤﻤ ﻞ اﻟﻌﻨ ﻮان ‪ . Node Name‬ﯾﻠ ﻲ ذﻟ ﻚ اﻟﻌﻤ ﻮد ﻋﻤ ﻮد آﺧ ﺮ ﻋﻨﻮاﻧ ﮫ‬ ‫‪ Direction‬ﻟﻠﺪﻻﻟﺔ ﻋﻠﻰ ﻧﻤﻂ اﻟﻤﻨﻔﺬ ) دﺧﻞ أو ﺧﺮج ( وأﺧﯿ ﺮاً ﻓ ﺈن اﻟﻌﻤ ﻮد اﻟﺜﺎﻟ ﺚ ذي اﻟﻌﻨ ﻮان ‪ Location‬ﯾﺴ ﻤﺢ‬ ‫ﻟﻨﺎ ﺑﺈﺳﻨﺎد اﻟﻘﻄﺐ اﻟﻤﻨﺎﺳﺐ ﻣﻦ أﻗﻄﺎب اﻟﺸﺮﯾﺤﺔ إﻟﻰ ﻛ ﻞ ﻣﻨﻔ ﺬ ﻣ ﻦ ﻣﻨﺎﻓ ﺬ اﻟ ﺪارة اﻟﻤ ﺮاد ﺗﻨﺠﯿﺰھ ﺎ ‪ .‬ﻧﺒ ﺪأ ﺑ ﺎﻟﻨﻘﺮ ﺑﺸ ﻜﻞ‬ ‫ﻣﺰدوج ﺿﻤﻦ اﻟﻌﻤﻮد ‪ Location‬وﺗﺤﺪﯾﺪاً ﻓﻲ اﻟﺴﻄﺮ اﻟﻤﻮاﻓﻖ ﻟﻠﻤﺨﺮج ‪ f‬وﻣﻦ ﺛﻢ ﻧﻜﺘﺐ اﺳﻢ اﻟﻘﻄﺐ اﻟﻤﻨﺎﺳ ﺐ وھ ﻮ‬ ‫‪ AE22‬ﻛﻤﺎ ﻧﻮھﻨﺎ ﻗﺒﻞ ﻗﻠﯿﻞ وﻧﻀﻐﻂ ﻋﻠﻰ اﻟﻤﻔﺘﺎح ‪ . Enter‬ﻧﻨﺘﻘ ﻞ اﻵن إﻟ ﻰ اﻟﺴ ﻄﺮ اﻟﻤﻮاﻓ ﻖ ﻟﻠﻤ ﺪﺧﻞ ‪ x1‬وﺑﻄﺮﯾﻘ ﺔ‬ ‫ﻣﺸﺎﺑﮭﺔ ﻧﻘﻮم ﺑﺈﺳﻨﺎد اﻟﻘﻄﺐ ‪ N25‬إﻟﻰ اﻟﻤﺪﺧﻞ ‪ x1‬وأﺧﯿﺮاً ﻧﻘﻮم ﺑﺈﺳﻨﺎد اﻟﻘﻄﺐ ‪ N26‬إﻟﻰ اﻟﻤﺪﺧﻞ ‪ x2‬ﻓﻨﺤﺼ ﻞ ﻋﻠ ﻰ‬ ‫اﻟﻨﺎﻓﺬة اﻟﻤﺒﯿﻨﺔ ﻓﻲ اﻟﺸﻜﻞ )‪ . (٢٦‬ﻧﻘﻮم اﻵن ﺑﺈﻏﻼق ھﺬه اﻟﻨﺎﻓﺬة وﻣﻦ ﺛﻢ ﻧﻌﯿﺪ ﻋﻤﻠﯿﺔ اﻟﺘﺮﺟﻤﺔ ﻣﺮة أﺧﯿﺮة ‪.‬‬ ‫‪١٦‬‬


‫اﻟﺸﻜﻞ )‪ : (٢٥‬اﻟﻨﺎﻓﺬة اﻟﺘﻲ ﺗﺴﻤﺢ ﺑﺘﺨﺼﯿﺺ اﻷﻗﻄﺎب ﺑﺎﻟﺸﻜﻞ اﻟﻤﻼﺋﻢ ﻟﺤﺎﻟﺔ اﻟﺒﻮرد ‪. DE2‬‬

‫اﻟﺸﻜﻞ )‪ : (٢٦‬ﻧﺎﻓﺬة إﺳﻨﺎد اﻷﻗﻄﺎب ﺑﻌﺪ اﻟﻘﯿﺎم ﺑﻌﻤﻠﯿﺔ ﺗﺨﺼﯿﺺ اﻷﻗﻄﺎب ﻟﻜﻞ ﻣﻦ ﻣﻨﺎﻓﺬ اﻟﺪارة ‪.‬‬ ‫ﺑﻌﺪ ﻇﮭﻮر ﻧﺎﻓﺬة اﻧﺘﮭﺎء ﻋﻤﻠﯿﺔ اﻟﺘﺮﺟﻤ ﺔ ﺑﻨﺠ ﺎح ﻧﻘ ﻮم ﺑﺈﻏﻼﻗﮭ ﺎ ﻓﻨ ﺮى ﻧﺎﻓ ﺬة أداة اﻟﻤﺘ ﺮﺟﻢ ‪ Compiler Tool‬اﻟﻤﺒﯿﻨ ﺔ‬ ‫ﻓﻲ اﻟﺸﻜﻞ )‪. (٢٧‬‬

‫اﻟﺸﻜﻞ )‪ : (٢٧‬ﻧﺎﻓﺬة أداة اﻟﻤﺘﺮﺟﻢ وﺗﻈﮭﺮ ﻓﯿﮭﺎ أﯾﻘﻮﻧﺎت ﻣﻠﻔﺎت ﺗﻘﺎرﯾﺮ ﻣﺮاﺣﻞ ﻋﻤﻠﯿﺔ اﻟﺘﺮﺟﻤﺔ ‪.‬‬

‫‪١٧‬‬


‫ﻛﻤﺎ ھﻮ واﺿﺢ ﻓﻲ اﻟﺸﻜﻞ )‪ ، (٢٧‬ﻓﺈن ھﺬه اﻟﻨﺎﻓ ﺬة ﺗﺘﻀ ﻤﻦ أﯾﻘﻮﻧ ﺎت ﺗﻤﺜ ﻞ ﻣﻠﻔ ﺎت ﺗﻘ ﺎرﯾﺮ ﻣﺮاﺣ ﻞ ﻋﻤﻠﯿ ﺔ اﻟﺘﺮﺟﻤ ﺔ ‪.‬‬ ‫ﻓﯿ ﺘﻢ ﻋ ﺮض ﻣﻠ ﻒ ﻧﺼ ﻲ ﯾﻤﺜ ﻞ ﺗﻘﺮﯾ ﺮ ﻋﻤﻠﯿ ﺔ اﻟﺘﻮﺿ ﯿﻊ‬ ‫ﻧﻨﻘﺮ ﺑﺸﻜﻞ ﻣﺰدوج ﻋﻠﻰ أﯾﻘﻮﻧﺔ ﻣﻠﻒ اﻟﻤﻮﺿ ﻊ ‪Fitter‬‬ ‫واﻟﺬي ﯾﻤﻜﻦ ﻣﻦ ﺧﻼﻟﮫ اﻟﺘﺄﻛﺪ ﻣﻦ أن ﻋﻤﻠﯿﺔ ﺗﺨﺼﯿﺺ اﻷﻗﻄﺎب ﻗﺪ ﺗﻤﺖ ﻛﻤﺎ ﺳﺒﻖ أن ﻧﻮھﻨﺎ أﻋﻼه ‪.‬‬ ‫‪ -٦‬ﻣﺤﺎﻛﺎة اﻟﺪارة اﻟﻤﺼﻤﻤﺔ ‪Simulating The Designed Circuit :‬‬ ‫ﻗﺒ ﻞ ﺗﻨﺠﯿ ﺰ اﻟ ﺪارة اﻟﻤﺼ ﻤﻤﺔ ﺑﻮاﺳ ﻄﺔ ﺷ ﺮﯾﺤﺔ اﻟ ـ ‪ FPGA‬ﻋﻠ ﻰ اﻟﺒ ﻮرد ‪ DE2‬ﻣ ﻦ اﻟﺤﻜﻤ ﺔ اﻟﻘﯿ ﺎم ﺑﻌﻤﻠﯿ ﺔ اﻟﻤﺤﺎﻛ ﺎة‬ ‫ﻟﻠﺘﺤﻘ ﻖ ﻣ ﻦ ﺻ ﺤﺔ أداﺋﮭ ﺎ ‪ .‬ﺗﺘﻀ ﻤﻦ اﻟﺒﺮﻣﺠﯿ ﺔ ‪ Quartus II‬أداة ﻣﺤﺎﻛ ﺎة ‪ ) Simulation Tool‬ھ ﺬا اﻟﻜ ﻼم ﻻ‬ ‫ﯾﻨﻄﺒﻖ ﻋﻠﻰ اﻹﺻﺪار ‪ 10.0‬وﻣﺎ ﺑﻌﺪه !!! ( واﻟﺘﻲ ﯾﻤﻜﻦ اﺳﺘﺨﺪاﻣﮭﺎ ﻟﻤﺤﺎﻛﺎة ﺳ ﻠﻮك ) أداء ( اﻟ ﺪارة اﻟﻤﺼ ﻤﻤﺔ ‪ .‬ﻗﺒ ﻞ‬ ‫أن ﻧ ﺘﻤﻜﻦ ﻣ ﻦ ﻣﺤﺎﻛ ﺎة أداء اﻟ ﺪارة ﻣ ﻦ اﻟﻀ ﺮوري إﻧﺸ ﺎء اﻷﺷ ﻜﺎل اﻟﻤﻮﺟﯿ ﺔ اﻟﻤﺮﻏﻮﺑ ﺔ ‪Desired Waveforms‬‬ ‫واﻟﺘﻲ ﺗﺴ ﻤﻰ ھﻨ ﺎ أﺷ ﻌﺔ اﻻﺧﺘﺒ ﺎر ‪ Test Vectors‬ﻟﺘﻤﺜﯿ ﻞ إﺷ ﺎرات اﻟ ﺪﺧﻞ ‪ .‬ﻛﻤ ﺎ ﯾﺘﻮﺟ ﺐ ﻋﻠ ﻰ اﻟﻤﺼ ﻤﻢ ﺗﺤﺪﯾ ﺪ أﯾ ﺔ‬ ‫إﺷﺎرات ﺧﺮج أو أﯾﺔ إﺷﺎرات داﺧﻠﯿﺔ ﯾﻮد ﻣﺮاﻗﺒﺘﮭﺎ أﺛﻨﺎء ﻋﻤﻠﯿ ﺔ اﻟﻤﺤﺎﻛ ﺎة ‪ .‬إن اﻟﻤﺤ ﺎﻛﻲ ﯾﻄﺒ ﻖ أﺷ ﻌﺔ اﻻﺧﺘﺒ ﺎر ﻋﻠ ﻰ‬ ‫ﻧﻤﻮذج ﻟﻠﺪارة اﻟﻤﻨﺠﺰة وﯾﻘﻮم ﺑﺘﺤﺪﯾﺪ ﻗﯿﻢ اﻻﺳﺘﺠﺎﺑﺎت اﻟﻤﺘﻮﻗﻌﺔ ﺑﺎﻟﻨﺴﺒﺔ ﻹﺷﺎرات اﻟﺨﺮج واﻹﺷﺎرات اﻟﺪاﺧﻠﯿﺔ ‪.‬‬ ‫ﺳ ﻮف ﻧﻘ ﻮم ﺑﺎﺳ ﺘﺨﺪام ﻣﺤ ﺮر ﺷ ﻜﻞ اﻟﻤﻮﺟ ﺔ ‪ Waveform Editor‬ﺿ ﻤﻦ اﻟﺒﺮﻣﺠﯿ ﺔ ‪ Quartus II‬ﻟﺮﺳ ﻢ أﺷ ﻌﺔ‬ ‫اﻻﺧﺘﺒﺎر وذﻟﻚ ﻛﻤﺎ ﯾﻠﻲ ‪:‬‬ ‫‪ -١‬ﯾﻤﻜﻦ ﻓﺘﺢ ﻧﺎﻓﺬة ﻣﺤﺮر ﺷﻜﻞ اﻟﻤﻮﺟﺔ ﻣﻦ ﺧﻼل اﻟﻘﺎﺋﻤ ﺔ اﻟﺮﺋﯿﺴ ﯿﺔ ‪ File‬ﺣﯿ ﺚ ﻧﺨﺘ ﺎر اﻷﻣ ﺮ ‪ New‬ﻓﻨﺤﺼ ﻞ ﻋﻠ ﻰ‬ ‫اﻟﻨﺎﻓ ﺬة اﻟﻤﺒﯿﻨ ﺔ ﻓ ﻲ اﻟﺸ ﻜﻞ )‪ . (٢٨‬ﺿ ﻤﻦ ھ ﺬه اﻟﻨﺎﻓ ﺬة ﻧﻨﻘ ﺮ ﻋﻠ ﻰ اﻟﻨ ﻮع ‪ Vector Waveform File‬ﺿ ﻤﻦ‬ ‫اﻟﻤﺠﻤﻮﻋﺔ ‪ Verification/Debugging Files‬ﺛﻢ ﻧﻨﻘﺮ ﻋﻠﻰ اﻟﺰر ‪ . OK‬ﻓﺘﻈﮭﺮ ﻟﻨﺎ اﻟﻨﺎﻓ ﺬة اﻟﺼ ﻐﯿﺮة اﻟﻤﺒﯿﻨ ﺔ ﻓ ﻲ‬ ‫اﻟﺸ ﻜﻞ )‪ (٢٩‬واﻟﺘ ﻲ ﺗﻌﻠﻤﻨ ﺎ ﺑ ﺄن اﻹﺻ ﺪارات اﻟﺘﺎﻟﯿ ﺔ ﻣ ﻦ اﻟﺒﺮﻣﺠﯿ ﺔ ‪ Quartus II‬ﻟ ﻦ ﺗﺤﺘ ﻮي ﻋﻠ ﻰ اﻟﻤﺤ ﺎﻛﻲ‬ ‫‪ Simulator‬وأن ﺷ ﺮﻛﺔ ‪ Altera‬ﺗﻮﺻ ﻲ ﺑﺎﺳ ﺘﺨﺪام اﻟﺒﺮﻣﺠﯿ ﺔ ‪ ModelSim‬ﻣ ﻦ أﺟ ﻞ اﻟﻘﯿ ﺎم ﺑﻌﻤﻠﯿ ﺔ ﻣﺤﺎﻛ ﺎة‬ ‫اﻟﺘﺼﺎﻣﯿﻢ ‪ .‬ﻧﻘﻮم اﻵن ﺑﻮﺿﻊ إﺷﺎرة اﺧﺘﯿﺎر ﻗﺮب اﻟﻌﺒﺎرة ‪ Don't show this again‬ﺛﻢ ﻧﻨﻘﺮ ﻋﻠﻰ اﻟﺰر ‪. Ok‬‬

‫اﻟﺸﻜﻞ )‪ : (٢٨‬ﻧﺎﻓﺬة اﺧﺘﯿﺎر ﻧﻮع اﻟﻤﻠﻒ اﻟﺠﺪﯾﺪ اﻟﻤﺮاد إﻧﺸﺎؤه ‪.‬‬

‫اﻟﺸﻜﻞ )‪ : (٢٩‬اﻹﺻﺪارات اﻟﺘﺎﻟﯿﺔ ﻟﻠﺒﺮﻣﺠﯿﺔ ‪ Quartus II‬ﻟﻦ ﺗﺘﻀﻤﻦ أداة اﻟﻤﺤﺎﻛﺎة !!!‬ ‫‪١٨‬‬


‫‪ -٢‬ﯾﺒﯿﻦ اﻟﺸﻜﻞ )‪ (٣٠‬ﻧﺎﻓﺬة ﻣﺤﺮر ﺷ ﻜﻞ اﻟﻤﻮﺟ ﺔ ‪ .‬ﻧﻘ ﻮم اﻵن ﺑﺘﺨ ﺰﯾﻦ اﻟﻤﻠ ﻒ ﺑﺎﺳ ﻢ ‪ light.vwf‬اﻷﻣ ﺮ اﻟ ﺬي ﯾ ﺆدي‬ ‫إﻟﻰ ﻇﮭﻮر اﺳﻢ اﻟﻤﻠﻒ ﻓﻲ ﺷﺮﯾﻂ اﻟﻌﻨ ﻮان ‪ .‬ﺑﺎﻟﻤﻨﺎﺳ ﺒﺔ ‪ ،‬ﯾﻤﻜﻨﻨ ﺎ ھﻨ ﺎ ﻓﺼ ﻞ ﻧﺎﻓ ﺬة ﻣﺤ ﺮر ﺷ ﻜﻞ اﻟﻤﻮﺟ ﺔ ﻟﺘﺼ ﺒﺢ ﻧﺎﻓ ﺬة‬ ‫ﻣﺴ ﺘﻘﻠﺔ ﻣ ﻦ ﺧ ﻼل اﻟﻨﻘ ﺮ ﻋﻠ ﻰ اﻷﯾﻘﻮﻧ ﺔ‬ ‫‪ Detach Window‬وذﻟ ﻚ ﺑﮭ ﺪف ﻛﺴ ﺐ اﻟﻤﺴ ﺎﺣﺔ ﻟﻠﻌ ﺮض ‪ .‬اﻟﺸ ﻜﻞ‬ ‫)‪ (٣١‬ﯾﺒﯿﻦ ﻧﺎﻓﺬة ﻣﺤﺮر ﺷﻜﻞ اﻟﻤﻮﺟﺔ ﺑﻌﺪ ﻓﺼﻠﮭﺎ ﻋﻦ اﻟﻨﺎﻓﺬة اﻟﺮﺋﯿﺴﯿﺔ ﻟﻠﺒﺮﻣﺠﯿﺔ ‪. Quartus II‬‬

‫اﻟﺸﻜﻞ )‪ : (٣٠‬ﻧﺎﻓﺬة ﻣﺤﺮر ﺷﻜﻞ اﻟﻤﻮﺟﺔ ﺿﻤﻦ اﻟﺒﺮﻣﺠﯿﺔ ‪. Quartus II‬‬

‫اﻟﺸﻜﻞ )‪ : (٣١‬ﻧﺎﻓﺬة ﻣﺤﺮر ﺷﻜﻞ اﻟﻤﻮﺟﺔ ﺑﻌﺪ ﺗﺨﺰﯾﻦ اﻟﻤﻠﻒ ‪ light.vwf‬وﻓﺼﻠﮭﺎ ﻋﻦ اﻟﻨﺎﻓﺬة اﻟﺮﺋﯿﺴﯿﺔ ‪.‬‬ ‫‪ -٣‬ﻧﻘﻮم اﻵن ﺑﺘﺤﺪﯾﺪ اﻟﺰﻣﻦ اﻟﻤﺮﻏﻮب ﻟﻌﻤﻠﯿﺔ اﻟﻤﺤﺎﻛﺎة ) وﻟﯿﻜﻦ ﻣﺜﻼً ﻣﻦ اﻟﻠﺤﻈ ﺔ اﻟﺰﻣﻨﯿ ﺔ ‪ t = 0 ns‬وﺣﺘ ﻰ اﻟﻠﺤﻈ ﺔ‬ ‫اﻟﺰﻣﻨﯿﺔ ‪ ( t = 200 ns‬وذﻟﻚ ﻣﻦ ﺧﻼل اﻟﻘﺎﺋﻤﺔ ‪ Edit‬واﺧﺘﯿﺎر اﻷﻣﺮ …‪ End Time‬ﻓﻨﺤﺼ ﻞ ﻋﻠ ﻰ اﻟﻨﺎﻓ ﺬة اﻟﻤﺒﯿﻨ ﺔ‬ ‫ﻓﻲ اﻟﺸﻜﻞ )‪ . (٣٢‬ﺿ ﻤﻦ ھ ﺬه اﻟﻨﺎﻓ ﺬة ﻧﻀ ﺒﻂ اﻟﻘﯿﻤ ﺔ ‪ 200‬واﻟﻮاﺣ ﺪة ‪ ns‬ﺛ ﻢ ﻧﻨﻘ ﺮ ﻋﻠ ﻰ اﻟ ﺰر ‪ . OK‬ﯾﻤﻜ ﻦ اﻵن ﻣ ﻦ‬ ‫اﻟﻘﺎﺋﻤ ﺔ ‪ View‬اﺧﺘﯿ ﺎر اﻷﻣ ﺮ ‪ ) Fit in Window‬أو اﻟﻀ ﻐﻂ ﻋﻠ ﻰ اﻻﺧﺘﺼ ﺎر اﻟﻤﻔﺘ ﺎﺣﻲ ‪ ( Ctrl+W‬ﻹﻇﮭ ﺎر‬ ‫ﻛﺎﻣﻞ ﻣﺤﻮر اﻟﺰﻣﻦ ﺿﻤﻦ ﻧﺎﻓﺬة ﻣﺤﺮر ﺷﻜﻞ اﻟﻤﻮﺟﺔ ‪.‬‬ ‫‪ -٤‬اﻵن ‪ ،‬ﺳ ﻨﻘﻮم ﺑﺘﻀ ﻤﯿﻦ ) إﺣﻀ ﺎر ( ﻋﻘ ﺪ اﻟ ﺪارة ) أو ﻣﻨﺎﻓ ﺬ اﻟ ﺪارة ( ﻣ ﻦ ﻣ ﺪاﺧﻞ وﻣﺨ ﺎرج ‪ .‬ﻣ ﻦ اﻟﻘﺎﺋﻤ ﺔ ‪Edit‬‬ ‫ﻧﺨﺘ ﺎر اﻷﻣ ﺮ اﻟﻤﺘﻔ ﺮع ‪ Insert‬وﻣﻨ ﮫ ﻧﺨﺘ ﺎر اﻷﻣ ﺮ …‪ Insert Node or Bus‬ﻓﻨﺤﺼ ﻞ ﻋﻠ ﻰ اﻟﻨﺎﻓ ﺬة اﻟﻤﺒﯿﻨ ﺔ ﻓ ﻲ‬ ‫اﻟﺸﻜﻞ )‪. (٣٣‬‬ ‫‪١٩‬‬


‫اﻟﺸﻜﻞ )‪ : (٣٢‬ﻧﺎﻓﺬة ﺗﺤﺪﯾﺪ ﻗﯿﻤﺔ ﻧﮭﺎﯾﺔ ﻣﺤﻮر اﻟﺰﻣﻦ ‪. End Time‬‬

‫اﻟﺸﻜﻞ )‪ : (٣٣‬ﻧﺎﻓﺬة إدراج ﻋﻘﺪة ‪ Node‬أو ﻣﻤﺮ ‪. Bus‬‬ ‫‪ -٥‬ﺿﻤﻦ اﻟﻨﺎﻓﺬة اﻟﺤﺎﻟﯿﺔ ﻧﻨﻘﺮ ﻋﻠﻰ اﻟﺰر …‪ Node Finder‬ﻓﻨﺤﺼﻞ ﻋﻠﻰ اﻟﻨﺎﻓﺬة اﻟﻤﻮﺿﺤﺔ ﻓﻲ اﻟﺸﻜﻞ )‪. (٣٤‬‬

‫اﻟﺸﻜﻞ )‪ : (٣٤‬ﻧﺎﻓﺬة ‪. Node Finder‬‬ ‫‪ -٦‬ﺿﻤﻦ اﻟﻨﺎﻓﺬة اﻟﺤﺎﻟﯿ ﺔ ﯾﻤﻜ ﻦ اﺧﺘﯿ ﺎر ﻧ ﻮع اﻟﻌﻘ ﺪ اﻟﺘ ﻲ ﻧﺮﯾ ﺪ إدراﺟﮭ ﺎ وﻓ ﻲ ﺣﺎﻟﺘﻨ ﺎ ھ ﺬه ﺳ ﻨﺨﺘﺎر اﻟﺨﯿ ﺎر ‪Pins: all‬‬ ‫ﺿﻤﻦ اﻟﺤﻘﻞ ذي اﻟﻌﻨﻮان ‪ Filter‬ﺛﻢ ﻧﻨﻘﺮ ﻋﻠﻰ اﻟ ﺰر ‪ List‬ﻓﺘﻈﮭ ﺮ ﻛﺎﻓ ﺔ ﻣﻨﺎﻓ ﺬ اﻟ ﺪارة ﻓ ﻲ اﻟﺠ ﺰء اﻷﯾﺴ ﺮ ﻣ ﻦ اﻟﻨﺎﻓ ﺬة‬ ‫ﻓﺘﻈﮭﺮ ﻛﺎﻓﺔ اﻟﻤﻨﺎﻓﺬ ﻓﻲ اﻟﺠ ﺰء اﻷﯾﻤ ﻦ‬ ‫ﺗﺤﺖ اﻟﻤﻨﻄﻘﺔ ذات اﻟﻌﻨﻮان ‪ . Nodes Found:‬ﻧﻨﻘﺮ ﻋﻨﺪھﺎ ﻋﻠﻰ اﻟﺰر‬ ‫ﻣﻦ اﻟﻨﺎﻓﺬة ﺗﺤﺖ اﻟﻤﻨﻄﻘﺔ ذات اﻟﻌﻨﻮان ‪ Selected Nodes:‬ﻛﻤﺎ ھﻮ ﻣﺒﯿﻦ ﻓﻲ اﻟﺸ ﻜﻞ )‪ . (٣٥‬ﻧﻨﻘ ﺮ اﻵن ﻋﻠ ﻰ اﻟ ﺰر‬ ‫‪ OK‬ﻓﻨﻌﻮد إﻟﻰ اﻟﻨﺎﻓﺬة ذات اﻟﻌﻨﻮان ‪ Insert Node or Bus‬اﻟﻤﺒﯿﻨﺔ ﻓﻲ اﻟﺸﻜﻞ )‪ (٣٦‬واﻟﺘﻲ ﻧﺨﺘﺎر ﻓﯿﮭﺎ ﻧﻈ ﺎم اﻟﻌ ﺪ‬ ‫اﻟﺜﻨﺎﺋﻲ ‪ Binary‬ﺿﻤﻦ اﻟﺤﻘﻞ ‪ Radix‬ﺛﻢ ﻧﻨﻘﺮ ﻋﻠ ﻰ اﻟ ﺰر ‪ OK‬ﻓﻨﻌ ﻮد ﺑ ﺬﻟﻚ إﻟ ﻰ ﻧﺎﻓ ﺬة ﻣﺤ ﺮر ﺷ ﻜﻞ اﻟﻤﻮﺟ ﺔ واﻟﺘ ﻲ‬ ‫ﻧﺸﺎھﺪ ﻓﯿﮭﺎ اﻵن ﻛﺎﻓﺔ إﺷﺎرات اﻟﺪﺧﻞ واﻟﺨﺮج ﻟﻠﺪارة ﻛﻤﺎ ھﻮ ﻣﺒﯿﻦ ﻓﻲ اﻟﺸﻜﻞ )‪. (٣٧‬‬ ‫‪٢٠‬‬


‫اﻟﺸﻜﻞ )‪ : (٣٥‬ﻧﺎﻓﺬة ‪ Node Finder‬ﺑﻌﺪ ﺗﺤﺪﯾﺪ ﻣﻨﺎﻓﺬ اﻟﺪارة اﻟﺘﻲ ﻧﺮﯾﺪ ﻣﺮاﻗﺒﺘﮭﺎ أﺛﻨﺎء ﻋﻤﻠﯿﺔ اﻟﻤﺤﺎﻛﺎة ‪.‬‬

‫اﻟﺸﻜﻞ )‪ : (٣٦‬ﻧﺎﻓﺬة إدراج ﻋﻘﺪة أو ﻣﻤﺮ ﻣﻊ ﺗﺤﺪﯾﺪ ااﻟﻨﻈﺎم اﻟﺜﻨﺎﺋﻲ ‪ Binary‬ﺿﻤﻦ اﻟﺤﻘﻞ ‪. Radix‬‬

‫اﻟﺸﻜﻞ )‪ : (٣٧‬ﻧﺎﻓﺬة ﻣﺤﺮر ﺷﻜﻞ اﻟﻤﻮﺟﺔ ﺑﻌﺪ إﺣﻀﺎر إﺷﺎرات اﻟﺪﺧﻞ واﻟﺨﺮج ‪.‬‬ ‫‪ -٧‬ﺳﻨﻀﺒﻂ اﻵن ﻗﯿﻤﺔ ﺧﻄﻮة اﻟﺰﻣﻦ ‪ Grid Size‬ﺑﺤﯿ ﺚ ﺗﺴ ﺎوي ‪ . 50 ns‬إن ھ ﺬا ﯾﻤﻜ ﻦ أن ﯾ ﺘﻢ ﻣ ﻦ ﺧ ﻼل اﻟﻘﺎﺋﻤ ﺔ‬ ‫‪ Edit‬ﺣﯿﺚ ﻧﺨﺘﺎر اﻷﻣﺮ …‪ Grid Size‬ﻓﺘﻈﮭﺮ اﻟﻨﺎﻓﺬة اﻟﻤﺒﯿﻨ ﺔ ﻓ ﻲ اﻟﺸ ﻜﻞ )‪ (٣٨‬واﻟﺘ ﻲ ﺗﺴ ﻤﺢ ﺑﺘﻐﯿﯿ ﺮ ﻗﯿﻤ ﺔ ﺧﻄ ﻮة‬ ‫اﻟﺰﻣﻦ إﻟﻰ اﻟﻘﯿﻤﺔ ‪ . 50 ns‬ﺑﻌﺪ اﻻﻧﺘﮭﺎء ﻣﻦ ﺿﺒﻂ اﻟﻘﯿﻤﺔ اﻟﺠﺪﯾﺪة ﻧﻨﻘﺮ ﻋﻠﻰ اﻟﺰر ‪. OK‬‬

‫اﻟﺸﻜﻞ )‪ : (٣٨‬ﻧﺎﻓﺬة ﺿﺒﻂ ﻗﯿﻤﺔ ﺧﻄﻮة اﻟﺰﻣﻦ ‪ Grid Size‬ﻓﻲ ﻣﺤﺮر ﺷﻜﻞ اﻟﻤﻮﺟﺔ ‪.‬‬ ‫‪٢١‬‬


‫‪ -٨‬ﻛﻤﺎ رأﯾﻨﺎ ﺳﺎﺑﻘﺎً أﺛﻨ ﺎء اﺳ ﺘﺨﺪام اﻟﺒﺮﻣﺠﯿ ﺔ ‪ MAX PLUS II‬ﻓﺈﻧ ﮫ ﻣ ﻦ اﻟﻤﻔﻀ ﻞ ﺗﺮﺗﯿ ﺐ ﺗﺴﻠﺴ ﻞ ﻇﮭ ﻮر إﺷ ﺎرات‬ ‫ﻣﻨﺎﻓﺬ اﻟﺪارة ﺑﺤﯿﺚ ﻧﻀﻊ ﻓﻲ اﻟﺒﺪاﯾﺔ اﻟﻤﺪاﺧﻞ وﻣﻦ ﺛﻢ اﻟﻤﺨﺎرج ‪ .‬ﻓﻲ ﺣﺎﻟﺘﻨﺎ ھﺬه ﺳﻨﺰﻟﻖ إﺷ ﺎرة اﻟﺨ ﺮج ‪ f‬إﻟ ﻰ اﻷﺳ ﻔﻞ‬ ‫وذﻟﻚ ﻣﻦ ﺧﻼل اﻟﻨﻘﺮ ﻋﻠﻰ ﻣِﻤﺴﻚ ‪ Handle‬اﻹﺷ ﺎرة ‪ f‬وﻣ ﻦ ﺛ ﻢ ﺗﺤﺮﯾﻜ ﮫ إﻟ ﻰ اﻷﺳ ﻔﻞ ﻟﯿﺘﻮﺿ ﻊ ﺗﺤ ﺖ إﺷ ﺎرة اﻟ ﺪﺧﻞ‬ ‫‪ x2‬ﻛﻤﺎ ھﻮ ﻣﺒﯿﻦ ﻓﻲ اﻟﺸﻜﻞ )‪. (٣٩‬‬

‫اﻟﺸﻜﻞ )‪ : (٣٩‬ﻧﺎﻓﺬة ﻣﺤﺮر ﺷﻜﻞ اﻟﻤﻮﺟﺔ ﺑﻌﺪ ﺿﺒﻂ ﻗﯿﻤﺔ ﺧﻄﻮة اﻟﺰﻣﻦ و إﻋﺎدة ﺗﺮﺗﯿﺐ أﻣﺎﻛﻦ ﻣﻨﺎﻓﺬ اﻟﺪارة ‪.‬‬ ‫‪ -٩‬ﯾﺘﻮﺟﺐ اﻵن اﻟﺒ ﺪء ﺑﺈﻋﻄ ﺎء ﻗ ﯿﻢ ﻟﻜ ﻞ ﻣ ﻦ إﺷ ﺎرﺗﻲ اﻟ ﺪﺧﻞ ‪ x1‬و ‪ . x2‬إن ھ ﺬه اﻟﻘ ﯿﻢ ﯾﻤﻜ ﻦ أن ﺗُﺤ ﺪّد ﺑﺸ ﻜﻞ ﻛﯿﻔ ﻲ‬ ‫وﻟﻜ ﻦ ﺑﺎﻋﺘﺒ ﺎر أن اﻟ ﺪارة اﻟﻤﺼ ﻤﻤﺔ ﺗﺮﻛﯿﺒﯿ ﺔ ﺗﻤﺎﻣ ﺎً ﻓﻤ ﻦ اﻟﻤُﻔﻀ ﻞ ﺗﻐﻄﯿ ﺔ ﻛﺎﻓ ﺔ اﻟﺤ ﺎﻻت اﻟﻤﻤﻜﻨ ﺔ ﻟﺠ ﺪول اﻟﺤﻘﯿﻘ ﺔ‬ ‫اﻟﻤﻌﺮوض ﻓﻲ اﻟﺸﻜﻞ )‪ . (١٢‬أي ﺳﻮف ﻧﻌﻄﻲ إﺷﺎرة اﻟ ﺪﺧﻞ ‪ x1‬اﻟﻘﯿﻤ ﺔ '‪ '0‬ﺧ ﻼل اﻟﻤﺠ ﺎل اﻟﺰﻣﻨ ﻲ اﻟﻤﺤﺼ ﻮر ﺑ ﯿﻦ‬ ‫اﻟﻠﺤﻈﺘﯿﻦ ‪ t = 0 ns‬و ‪ t = 100 ns‬واﻟﻘﯿﻤﺔ '‪ '1‬ﺧﻼل اﻟﻤﺠﺎل اﻟﺰﻣﻨﻲ اﻟﻤﺤﺼ ﻮر ﺑ ﯿﻦ اﻟﻠﺤﻈﺘ ﯿﻦ ‪t = 100 ns‬‬ ‫و ‪ t = 200 ns‬ﻛﻤﺎ أﻧﻨﺎ ﺳﻨﻌﻄﻲ إﺷﺎرة اﻟﺪﺧﻞ ‪ x2‬اﻟﻘﯿﻤﺔ '‪ '0‬ﺧﻼل ﻛ ﻞ ﻣ ﻦ اﻟﻤﺠ ﺎﻟﯿﻦ اﻟ ﺰﻣﻨﯿﯿﻦ ] ‪[ 0 ns – 50 ns‬‬ ‫و ] ‪ [ 100 ns – 150 ns‬ﻓﻲ ﺣﯿﻦ أن اﻟﻘﯿﻤﺔ '‪ '1‬ﺳﺘﻌﻄﻰ إﻟﻰ إﺷﺎرة اﻟﺪﺧﻞ ‪ x2‬ﺧﻼل ﻛ ﻞ ﻣ ﻦ اﻟﻤﺠ ﺎﻟﯿﻦ اﻟ ﺰﻣﻨﯿﯿﻦ‬ ‫] ‪ [ 50 ns – 100 ns‬و ] ‪ [ 150 ns – 200 ns‬ﻛﻤﺎ ھﻮ ﻣﺒﯿﻦ ﻓﻲ اﻟﺸﻜﻞ )‪. (٤٠‬‬

‫اﻟﺸﻜﻞ )‪ : (٤٠‬إﻋﻄﺎء اﻟﻘﯿﻢ ﻟﻺﺷﺎرﺗﯿﻦ ‪ x1‬و ‪ x2‬ﺑﺸﻜﻞ ﻣﻮاﻓﻖ ﻟﺠﺪول اﻟﺤﻘﯿﻘﺔ ﻟﻠﺪارة ‪.‬‬ ‫‪ -١٠‬ﻧﻘﻮم ﺑﺘﺨﺰﯾﻦ ھﺬه اﻟﺘﻐﯿﯿﺮات ﻓﻲ اﻟﻤﻠﻒ ‪ light.vwf‬اﺳﺘﻌﺪاداً ﻟﺒﺪء ﻋﻤﻠﯿﺔ اﻟﻤﺤﺎﻛﺎة ‪ .‬إن اﻟﺪارة اﻟﻤﺼ ﻤﻤﺔ ﯾﻤﻜ ﻦ‬ ‫أن ﺗُﺤﺎﻛﻰ ﺑﻄﺮﯾﻘﺘﯿﻦ ﻣﺨﺘﻠﻔﺘﯿﻦ ‪ .‬اﻟﻄﺮﯾﻘﺔ اﻷﺑﺴ ﻂ ﺗﻌﺘﻤ ﺪ ﻋﻠ ﻰ اﻓﺘ ﺮاض أن اﻟﻌﻨﺎﺻ ﺮ اﻟﻤﻨﻄﻘﯿ ﺔ ‪Logic Elements‬‬ ‫وأﺳ ﻼك اﻟﺘﻮﺻ ﯿﻞ ‪ Interconnection Wires‬ھ ﻲ ﻣﺜﺎﻟﯿ ﺔ وﻻ ﺗﺴ ﺒﺐ أي ﺗ ﺄﺧﯿﺮ أﺛﻨ ﺎء اﻧﺘﺸ ﺎر اﻹﺷ ﺎرات ﺧ ﻼل‬ ‫‪٢٢‬‬


‫اﻟ ﺪارة ‪ .‬ھ ﺬه اﻟﻄﺮﯾﻘ ﺔ ﻣ ﻦ اﻟﻤﺤﺎﻛ ﺎة ﺗ ﺪﻋﻰ اﻟﻤﺤﺎﻛ ﺎة اﻟﻮﻇﺎﺋﻔﯿ ﺔ ‪ . Functional Simulation‬اﻟﻄﺮﯾﻘ ﺔ اﻷﺧ ﺮى‬ ‫واﻟﺘﻲ ﺗﻜﻮن ﻋﻤﻮﻣﺎً أﻛﺜﺮ ﺗﻌﻘﯿﺪاً ﺗﺄﺧﺬ ﺑﺎﻟﺤﺴﺒﺎن ﻛﺎﻓﺔ اﻟﺘﺄﺧﯿﺮات اﻟﻨﺎﺟﻤﺔ ﻋﻦ اﻧﺘﺸﺎر اﻹﺷﺎرات ﺧ ﻼل اﻟ ﺪارة وﺗ ﺪﻋﻰ‬ ‫اﻟﻤﺤﺎﻛﺎة اﻟﺰﻣﻨﯿﺔ ‪ . Timing Simulation‬ﻋﻤﻮﻣﺎً ‪ ،‬ﺗُﺴﺘﺨﺪم اﻟﻤﺤﺎﻛﺎة اﻟﻮﻇﺎﺋﻔﯿﺔ ﻟﻠﺘﺤﻘﻖ ﻣ ﻦ ﺻ ﺤﺔ وﻇ ﺎﺋﻒ اﻟ ﺪارة‬ ‫ﻛﻤﺎ ﺗﻢ ﺗﺼﻤﯿﻤﮭﺎ‪ .‬إن ذﻟﻚ ﺑﺎﻟﻄﺒﻊ ﯾﺘﻄﻠﺐ زﻣﻨﺎً أﻗﻞ ﻷن اﻟﻤﺤﺎﻛﺎة ﯾﻤﻜﻦ أن ﺗُﻨﺠﺰ ﺑﺒﺴﺎﻃﺔ ﺑﺎﺳ ﺘﺨﺪام اﻟﺘﻌ ﺎﺑﯿﺮ اﻟﻤﻨﻄﻘﯿ ﺔ‬ ‫اﻟﺘﻲ ﺗﺤﺪد وﻇﺎﺋﻒ اﻟﺪارة ‪.‬‬ ‫‪ -١-٦‬اﻟﻤﺤﺎﻛﺎة اﻟﻮﻇﺎﺋﻔﯿﺔ ‪Functional Simulation :‬‬ ‫ﻹﺟﺮاء اﻟﻤﺤﺎﻛﺎة اﻟﻮﻇﺎﺋﻔﯿﺔ ﻧﺨﺘﺎر ﻣﻦ اﻟﻘﺎﺋﻤﺔ ‪ Assignments‬اﻷﻣﺮ …‪ Settings‬ﻓﻨﺤﺼﻞ ﻋﻠ ﻰ ﻧﺎﻓ ﺬة اﻹﻋ ﺪادات‬ ‫‪ Settings‬اﻟﻤﺒﯿﻨﺔ ﻓﻲ اﻟﺸﻜﻞ )‪. (٤١‬‬

‫اﻟﺸﻜﻞ )‪ : (٤١‬ﻧﺎﻓﺬة اﻹﻋﺪادات ‪. Settings‬‬ ‫ﻧﻨﻘ ﺮ ﻋﻠ ﻰ إﻋ ﺪادات اﻟﻤﺤ ﺎﻛﻲ ‪ Simulator Settings‬ﻓ ﻲ اﻟﺠ ﺰء اﻷﯾﺴ ﺮ ﻣ ﻦ ھ ﺬه اﻟﻨﺎﻓ ﺬة ﻓﻨﺤﺼ ﻞ ﻋﻠ ﻰ اﻟﻨﺎﻓ ﺬة‬ ‫اﻟﻤﺒﯿﻨﺔ ﻓﻲ اﻟﺸﻜﻞ )‪. (٤٢‬‬

‫اﻟﺸﻜﻞ )‪ : (٤٢‬ﻧﺎﻓﺬة إﻋﺪادات اﻟﻤﺤﺎﻛﻲ ‪. Simulator Settings Window‬‬ ‫ﺿﻤﻦ ھﺬه اﻟﻨﺎﻓﺬة ﻧﻘﻮم ﺑﺎﺧﺘﯿﺎر ﻧﻤﻂ اﻟﻤﺤﺎﻛﺎة ‪ Simulation Mode‬ﺑﺤﯿﺚ ﯾﻜﻮن ﻣﻦ اﻟﻨ ﻮع ‪ Functional‬ﺛ ﻢ ﻧﻨﻘ ﺮ‬ ‫ﻋﻠﻰ اﻟﺰر ‪ OK‬ﻹﻏﻼق ھﺬه اﻟﻨﺎﻓﺬة ‪ .‬إن اﻟﻤﺤﺎﻛﻲ ﻓﻲ اﻟﺒﺮﻣﺠﯿﺔ ‪ Quartus II‬ﺳ ﯿﺄﺧﺬ ﻗ ﯿﻢ إﺷ ﺎرت اﻟ ﺪﺧﻞ ﺑﺎﻟﺤﺴ ﺒﺎن‬ ‫وﯾﻮﻟﺪ ﻗﯿﻢ إﺷﺎرات اﻟﺨﺮج اﻟﻤﻮاﻓﻘﺔ ﺿﻤﻦ اﻟﻤﻠﻒ ‪ . light.vwf‬ﻗﺒﻞ إﻃﻼق اﻟﻤﺤﺎﻛ ﺎة اﻟﻮﻇﺎﺋﻔﯿ ﺔ ﯾﺘﻮﺟ ﺐ ﻋﻠﯿﻨ ﺎ إﻧﺸ ﺎء‬ ‫ﻻﺋﺤ ﺔ اﻟﺘﻮﺻ ﯿﻞ اﻟﻤﻄﻠﻮﺑ ﺔ ‪ Required Netlist‬واﻟﺘ ﻲ ﯾﻤﻜ ﻦ ﺗﻮﻟﯿ ﺪھﺎ ﻣ ﻦ ﺧ ﻼل اﻟﻘﺎﺋﻤ ﺔ ‪ Processing‬واﺧﺘﯿ ﺎر‬ ‫اﻷﻣ ﺮ ‪ . Generate Functional Simulation Netlist‬ﺑﻌ ﺪ ﻋ ﺪة ﺛ ﻮان ﻣ ﻦ اﻟﻨﻘ ﺮ ﻋﻠ ﻰ اﻷﻣ ﺮ اﻷﺧﯿ ﺮ ﻧﺤﺼ ﻞ‬ ‫‪٢٣‬‬


‫ﻋﻠﻰ اﻟﺮﺳﺎﻟﺔ اﻟﻤﺒﯿﻨﺔ ﻓﻲ اﻟﺸﻜﻞ )‪ (٤٣‬واﻟﺘﻲ ﺗ ﺪل ﻋﻠ ﻰ أن اﻟﻼﺋﺤ ﺔ اﻟﻤﻄﻠﻮﺑ ﺔ ﻗ ﺪ أﺻ ﺒﺤﺖ ﺟ ﺎھﺰة اﻵن ‪ .‬ﻧﻨﻘ ﺮ ﻋﻠ ﻰ‬ ‫اﻟﺰر ﻣﻮاﻓﻖ ) أو ‪. ( OK‬‬

‫اﻟﺸﻜﻞ )‪ : (٤٣‬رﺳﺎﻟﺔ اﻧﺘﮭﺎء ﻋﻤﻠﯿﺔ ﺗﻮﻟﯿﺪ ﻻﺋﺤﺔ اﻟﺘﻮﺻﯿﻞ ﻣﻦ أﺟﻞ اﻟﻤﺤﺎﻛﺎة اﻟﻮﻇﺎﺋﻔﯿﺔ ﺑﻨﺠﺎح ‪.‬‬ ‫ﯾﻤﻜﻨﻨﺎ اﻵن إﻃﻼق ﻋﻤﻠﯿﺔ اﻟﻤﺤﺎﻛﺎة اﻟﻮﻇﺎﺋﻔﯿﺔ ﺿﻤﻦ اﻟﺒﺮﻣﺠﯿﺔ ‪ Quartus II‬ﻣﻦ ﺧﻼل اﻟﻘﺎﺋﻤ ﺔ ‪ Processing‬ﺑ ﺎﻟﻨﻘﺮ‬ ‫ﻋﻠ ﻰ اﻷﻣ ﺮ ‪ ) Start Simulation‬اﻻﺧﺘﺼ ﺎر اﻟﻤﻔﺘ ﺎﺣﻲ ‪ . ( Ctrl+I‬ﺑﻌ ﺪ ﻓﺘ ﺮة ﻗﺼ ﯿﺮة وﻓ ﻲ ﺣﺎﻟ ﺔ اﻧﺘﮭ ﺎء ﻋﻤﻠﯿ ﺔ‬ ‫اﻟﻤﺤﺎﻛﺎة اﻟﻮﻇﺎﺋﻔﯿﺔ ﺑﻨﺠﺎح ﻧﺤﺼﻞ ﻋﻠﻰ اﻟﺮﺳﺎﻟﺔ اﻟﻘﺼﯿﺮة اﻟﻤﺒﯿﻨﺔ ﻓﻲ اﻟﺸﻜﻞ )‪. (٤٤‬‬

‫اﻟﺸﻜﻞ )‪ : (٤٤‬رﺳﺎﻟﺔ اﻧﺘﮭﺎء ﻋﻤﻠﯿﺔ اﻟﻤﺤﺎﻛﺎة اﻟﻮﻇﺎﺋﻔﯿﺔ ﺑﻨﺠﺎح ‪.‬‬ ‫ﻧﻨﻘﺮ اﻵن ﻋﻠﻰ اﻟﺰر ﻣﻮاﻓﻖ ) أو ‪ ( OK‬ﺛﻢ ﻧﻐﻠﻖ ﻧﺎﻓﺬة اﻟﻤﺤﺎﻛﻲ ﻓﺘﻈﮭﺮ ﻟﻨﺎ اﻟﺮﺳﺎﻟﺔ اﻟﻤﺒﯿﻨﺔ ﻓﻲ اﻟﺸﻜﻞ )‪. (٤٥‬‬

‫اﻟﺸﻜﻞ )‪ : (٤٥‬ﻋﻨﺪ اﻻﻧﺘﮭﺎء ﻣﻦ ﻋﻤﻠﯿﺔ اﻟﻤﺤﺎﻛﺎة وإﻏﻼق ﻧﺎﻓﺬة اﻟﻤﺤﺎﻛﻲ ﯾﻜﻮن اﻟﻤﻠﻒ ‪ light.vwf‬ﻗﺪ ﺗﻐﯿﺮ !!!‬ ‫ﻛﻤﺎ ھﻮ واﺿﺢ ﻓﻲ ھﺬه اﻟﺮﺳﺎﻟﺔ ﻓﺈن ﻋﻤﻠﯿﺔ اﻟﻤﺤﺎﻛﺎة اﻟﻮﻇﺎﺋﻔﯿﺔ ﺗﻐﯿﺮ ﻣﻦ ﻗﯿﻢ إﺷﺎرات اﻟﺨ ﺮج ﻓ ﻲ اﻟﻤﻠ ﻒ ‪light.vwf‬‬ ‫وﺑﺎﻟﺘﺎﻟﻲ ﻓﺈن اﻟﺒﺮﻣﺠﯿﺔ ‪ Quartus II‬ﺗﺴ ﺘﺄذن ﺑﺈﻋ ﺎدة ﺗﺤﻤﯿ ﻞ اﻟﻤﻠ ﻒ ) ﻋﺮﺿ ﮫ ﺑﻌ ﺪ اﻟﺘﻐﯿﯿ ﺮات ( ﻟ ﺬﻟﻚ ﻧﻨﻘ ﺮ ﺑﺒﺴ ﺎﻃﺔ‬ ‫ﻓﻮق اﻟﺰر ﻧﻌﻢ ) أو ‪ ( Yes‬ﻓﻨﺤﺼﻞ ﻋﻠﻰ ﻧﺘﺎﺋﺞ اﻟﻤﺤﺎﻛﺎة اﻟﻮﻇﺎﺋﻔﯿﺔ ﺿﻤﻦ ﻧﺎﻓﺬة ﻣﺤ ﺮر ﺷ ﻜﻞ اﻟﻤﻮﺟ ﺔ ﻛﻤ ﺎ ھ ﻮ ﻣﺒ ﯿﻦ‬ ‫ﻓﻲ اﻟﺸﻜﻞ )‪. (٤٦‬‬

‫اﻟﺸﻜﻞ )‪ : (٤٦‬ﻧﺘﺎﺋﺞ اﻟﻤﺤﺎﻛﺎة اﻟﻮﻇﺎﺋﻔﯿﺔ ﻟﻠﺪارة اﻟﻤﺼﻤﻤﺔ ‪.‬‬ ‫‪٢٤‬‬


‫ﻛﻤﺎ ھﻮ واﺿﺢ ﻓﻲ اﻟﺸﻜﻞ )‪ (٤٦‬ﻓﺈن ﻧﺘﺎﺋﺞ اﻟﻤﺤﺎﻛﺎة اﻟﻮﻇﺎﺋﻔﯿﺔ ﻣﻄﺎﺑﻘﺔ ﺗﻤﺎﻣﺎً ﻟﻤﺎ ھﻮ ﻣﻨﺘﻈﺮ إذ أن اﻟﺘﺎﺑﻊ ‪ f‬اﻟﺬي ﯾﻤﺜ ﻞ‬ ‫إﺷﺎرة اﻟﺨﺮج ﻣﻄﺎﺑﻖ ﺗﻤﺎﻣﺎً ﻟﻤﺎ ورد ﻓﻲ ﺟﺪول اﻟﺤﻘﯿﻘﺔ اﻟﻤﺒﯿﻦ ﻓﻲ اﻟﺸﻜﻞ )‪. (١٢‬‬ ‫‪ -٢-٦‬اﻟﻤﺤﺎﻛﺎة اﻟﺰﻣﻨﯿﺔ ‪Timing Simulation :‬‬ ‫ﺑﻌﺪ اﻟﺘﺄﻛﺪ ﻣﻦ ﺻﺤﺔ وﻇﺎﺋﻒ اﻟﺪارة اﻟﻤﺼ ﻤﻤﺔ اﻋﺘﻤ ﺎداً ﻋﻠ ﻰ ﻧﺘ ﺎﺋﺞ اﻟﻤﺤﺎﻛ ﺎة اﻟﻮﻇﺎﺋﻔﯿ ﺔ ﯾﻤﻜﻨﻨ ﺎ اﻵن اﻟﻘﯿ ﺎم ﺑﺎﻟﻤﺤﺎﻛ ﺎة‬ ‫اﻟﺰﻣﻨﯿﺔ وذﻟﻚ ﻟﻜﻲ ﻧﺮى ﻛﯿﻔﯿﺔ أداء اﻟﺪارة ﻋﻨﺪﻣﺎ ﯾﺘﻢ ﺗﻨﺠﯿﺰھﺎ ﻓﻌﻠﯿﺎً ﺑﺎﺳﺘﺨﺪام ﺷﺮﯾﺤﺔ اﻟـ ‪ FPGA‬اﻟﻤﺨﺘﺎرة ‪ .‬ﻹﺟ ﺮاء‬ ‫اﻟﻤﺤﺎﻛ ﺎة اﻟﺰﻣﻨﯿ ﺔ ﻧﺨﺘ ﺎر ﻣ ﻦ اﻟﻘﺎﺋﻤ ﺔ ‪ Assignments‬اﻷﻣ ﺮ ‪ Settings..‬ﻓﻨﺤﺼ ﻞ ﻋﻠ ﻰ اﻟﻨﺎﻓ ﺬة اﻟﻤﺒﯿﻨ ﺔ ﻓ ﻲ اﻟﺸ ﻜﻞ‬ ‫)‪ . (٤١‬ﻧﻨﻘ ﺮ ﻋﻠ ﻰ إﻋ ﺪادات اﻟﻤﺤ ﺎﻛﻲ ‪ Simulator Settings‬ﻓ ﻲ اﻟﺠ ﺰء اﻷﯾﺴ ﺮ ﻣ ﻦ ھ ﺬه اﻟﻨﺎﻓ ﺬة ﻓﻨﺤﺼ ﻞ ﻋﻠ ﻰ‬ ‫اﻟﻨﺎﻓﺬة اﻟﻤﺒﯿﻨﺔ ﻓﻲ اﻟﺸﻜﻞ )‪ . (٤٢‬ﺿﻤﻦ ھﺬه اﻟﻨﺎﻓﺬة ﻧﻘﻮم ﺑﺎﺧﺘﯿﺎر ﻧﻤﻂ اﻟﻤﺤﺎﻛ ﺎة ‪ Simulation Mode‬ﺑﺤﯿ ﺚ ﯾﻜ ﻮن‬ ‫ﻣ ﻦ اﻟﻨ ﻮع ‪ Timing‬ﺛ ﻢ ﻧﻨﻘ ﺮ ﻋﻠ ﻰ اﻟ ﺰر ‪ OK‬ﻹﻏ ﻼق ھ ﺬه اﻟﻨﺎﻓ ﺬة ‪ .‬ﯾﻤﻜﻨﻨ ﺎ اﻵن إﻃ ﻼق ﻋﻤﻠﯿ ﺔ اﻟﻤﺤﺎﻛ ﺎة اﻟﺰﻣﻨﯿ ﺔ‬ ‫ﺿ ﻤﻦ اﻟﺒﺮﻣﺠﯿ ﺔ ‪ Quartus II‬ﻣ ﻦ ﺧ ﻼل اﻟﻘﺎﺋﻤ ﺔ ‪ Processing‬ﺑ ﺎﻟﻨﻘﺮ ﻋﻠ ﻰ اﻷﻣ ﺮ ‪) Start Simulation‬‬ ‫اﻻﺧﺘﺼﺎر اﻟﻤﻔﺘﺎﺣﻲ ‪ . ( Ctrl+I‬ﺑﻌﺪ ﻓﺘ ﺮة ﻗﺼ ﯿﺮة وﻓ ﻲ ﺣﺎﻟ ﺔ اﻧﺘﮭ ﺎء ﻋﻤﻠﯿ ﺔ اﻟﻤﺤﺎﻛ ﺎة اﻟﺰﻣﻨﯿ ﺔ ﺑﻨﺠ ﺎح ﻧﺤﺼ ﻞ ﻋﻠ ﻰ‬ ‫اﻟﺮﺳﺎﻟﺔ اﻟﻘﺼﯿﺮة اﻟﻤﺒﯿﻨﺔ ﻓﻲ اﻟﺸﻜﻞ )‪. (٤٧‬‬

‫اﻟﺸﻜﻞ )‪ : (٤٧‬رﺳﺎﻟﺔ اﻧﺘﮭﺎء ﻋﻤﻠﯿﺔ اﻟﻤﺤﺎﻛﺎة اﻟﺰﻣﻨﯿﺔ ﺑﻨﺠﺎح ‪.‬‬ ‫ﻧﻨﻘﺮ اﻵن ﻋﻠﻰ اﻟﺰر ﻣﻮاﻓﻖ ) أو ‪ ( OK‬ﺛﻢ ﻧﻐﻠﻖ ﻧﺎﻓﺬة اﻟﻤﺤﺎﻛﻲ ﻓﺘﻈﮭ ﺮ ﻟﻨ ﺎ اﻟﺮﺳ ﺎﻟﺔ اﻟﻤﺒﯿﻨ ﺔ ﻓ ﻲ اﻟﺸ ﻜﻞ )‪ . (٤٥‬ﻛﻤ ﺎ‬ ‫ھﻮ واﺿﺢ ﻓﻲ ھﺬه اﻟﺮﺳﺎﻟﺔ ﻓﺈن ﻋﻤﻠﯿﺔ اﻟﻤﺤﺎﻛﺎة اﻟﺰﻣﻨﯿﺔ ﺗﻐﯿﺮ أﯾﻀﺎً ﻣﻦ ﻗﯿﻢ إﺷ ﺎرات اﻟﺨ ﺮج ﻓ ﻲ اﻟﻤﻠ ﻒ ‪light.vwf‬‬ ‫وﺑﺎﻟﺘﺎﻟﻲ ﻓﺈن اﻟﺒﺮﻣﺠﯿﺔ ‪ Quartus II‬ﺗﺴ ﺘﺄذن ﺑﺈﻋ ﺎدة ﺗﺤﻤﯿ ﻞ اﻟﻤﻠ ﻒ ) ﻋﺮﺿ ﮫ ﺑﻌ ﺪ اﻟﺘﻐﯿﯿ ﺮات ( ﻟ ﺬﻟﻚ ﻧﻨﻘ ﺮ ﺑﺒﺴ ﺎﻃﺔ‬ ‫ﻓﻮق اﻟﺰر ﻧﻌﻢ ) أو ‪ ( Yes‬ﻓﻨﺤﺼﻞ ﻋﻠﻰ ﻧﺘﺎﺋﺞ اﻟﻤﺤﺎﻛﺎة اﻟﺰﻣﻨﯿﺔ ﺿﻤﻦ ﻧﺎﻓﺬة ﻣﺤﺮر ﺷﻜﻞ اﻟﻤﻮﺟﺔ ﻛﻤﺎ ھﻮ ﻣﺒ ﯿﻦ ﻓ ﻲ‬ ‫اﻟﺸﻜﻞ )‪. (٤٨‬‬

‫اﻟﺸﻜﻞ )‪ : (٤٨‬ﻧﺘﺎﺋﺞ اﻟﻤﺤﺎﻛﺎة اﻟﺰﻣﻨﯿﺔ ﻟﻠﺪارة اﻟﻤﺼﻤﻤﺔ ‪.‬‬ ‫ﻧﻼﺣﻆ اﻵن ﻓﻲ اﻟﺸﻜﻞ )‪ (٤٨‬أن اﻟﺨﺮج ‪ f‬ﻻ ﯾﺘﻐﯿ ﺮ آﻧﯿ ﺎً ﻋﻨ ﺪ ﺗﻐﯿ ﺮ ﻗ ﯿﻢ إﺷ ﺎرات اﻟ ﺪﺧﻞ ‪ x1‬و ‪ x2‬وإﻧﻤ ﺎ ﺑﻌ ﺪ ﺗ ﺄﺧﯿﺮ‬ ‫زﻣﻨﻲ ﻗﺪره ﺣﻮاﻟﻰ ‪ . 6 ns‬إن ھﺬا اﻟﺘﺄﺧﯿﺮ ﻧﺎﺟﻢ ﻋﻦ ﺗﺄﺧﯿﺮ اﻻﻧﺘﺸﺎر ﻓﻲ اﻟﻌﻨﺼﺮ اﻟﻤﻨﻄﻘﻲ ‪ Logic Element‬وﻓ ﻲ‬ ‫أﺳﻼك اﻟﺘﻮﺻﯿﻞ داﺧﻞ ﺷﺮﯾﺤﺔ اﻟـ ‪. FPGA‬‬ ‫ﻓ ﻲ اﻟﺠﻠﺴ ﺔ اﻟﻘﺎدﻣ ﺔ ﺳ ﻨﺘﻌﺮف إﻟ ﻰ اﻟﺒ ﻮرد ‪ DE2‬وﻧﻘ ﻮم ﺑﺒﺮﻣﺠ ﺔ ﺷ ﺮﯾﺤﺔ اﻟ ـ ‪ FPGA‬اﻟﻤﻮﺟ ﻮدة ﻋﻠ ﻰ ھ ﺬا اﻟﺒ ﻮرد‬ ‫ﻟﺘﺘﺤﻮل إﻟﻰ اﻟﺪارة اﻟﻤﺼﻤﻤﺔ وﻣﻦ ﺛﻢ ﻧﻘﻮم ﺑﺎﺧﺘﺒﺎر أداء اﻟﺪارة ﺿﻤﻦ اﻟﺒﻮرد ‪ DE2‬ﺑﺸﻜﻞ ﻓﻌﻠﻲ ‪.‬‬ ‫‪٢٥‬‬


Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.