FPGA_lab_.pdf

‫ﺑﺴﻤﻪ ﺗﻌﺎﻟﯽ‬
‫آزﻣﺎﯾﺸﮕﺎه ﻃﺮاﺣﯽ ﺳﯿﺴﺘﻢﻫﺎي دﯾﺠﯿﺘﺎل‬
‫داﻧﺸﮑﺪه ﻣﻬﻨﺪﺳﯽ ﮐﺎﻣﭙﯿﻮﺗﺮ‬
‫در ﺗﻤﺎم آزﻣﺎﯾﺶﻫﺎ ﺑﺎﯾﺪ ﻃﺮح ﺧﻮد را ﺑﺮ روي ﯾﮑﯽ از ﺗﺮاﺷﻪﻫﺎي ﺷﺮﮐﺖ ‪ Altera‬ﻧﮕﺎﺷﺖ ﮐﻨﯿﺪ‪.‬‬
‫آزﻣﺎﯾﺶ ‪ :1‬ﻃﺮاﺣﯽ ﻣﺪارﻫﺎي ﺗﺮﮐﯿﺒﯽ ﺑﺎ اﺳﺘﻔﺎده از اﻣﮑﺎﻧﺎت ﺷﻤﺎﺗﯿﮏ ﻧﺮماﻓﺰار ‪Max+PlusII‬‬
‫ﻣﺪاري ﻃﺮاﺣﯽ ﮐﻨﯿﺪ ﮐﻪ ﺧﺮوﺟﯽ ﯾﮏ ﺑﯿﺘﯽ آن وﻗﺘﯽ ‪ 1‬ﺷﻮد ﮐﻪ ورودي ‪ BCD‬ﭼﻬﺎررﻗﻤﯽ آن ﻣﻀﺮﺑﯽ از ‪ 3‬ﺑﺎﺷﺪ‪ .‬ﻃﺮح‬
‫ﺧﻮد را ﯾﮏﺑﺎر در ﺗﺮاﺷﻪاي از ﺧﺎﻧﻮادهي ‪ MAX7000‬و ﺑﺎر دﯾﮕﺮ در ﺗﺮاﺷﻪاي از ﺧﺎﻧﻮادهي ‪ FLEX10K‬ﻧﮕﺎﺷﺖ ﮐﻨﯿﺪ‪.‬‬
‫ﺗﺎﺧﯿﺮ ﻣﺴﯿﺮ ﺑﺤﺮاﻧﯽ ﻣﺪار را ﻣﺸﺨﺺ ﮐﻨﯿﺪ‪.‬‬
‫آزﻣﺎﯾﺶ ‪ :2‬ﻃﺮاﺣﯽ ﻣﺪارﻫﺎي ﺗﺮﺗﯿﺒﯽ ﺑﺎ اﺳﺘﻔﺎده از اﻣﮑﺎﻧﺎت ﺷﻤﺎﺗﯿﮏ ﻧﺮماﻓﺰار ‪Max+PlusII‬‬
‫اﺗــﺎق اﻧﺘﻈــﺎر ﯾــﮏ اداره ﻇﺮﻓﯿــﺖ ‪ 15‬ﻧﻔــﺮ را دارد و داراي ﯾــﮏ در ورودي و ﯾــﮏ در ﺧﺮوﺟــﯽ اﺳــﺖ‪ .‬در ﮐﻨــﺎر ﻫــﺮ‬
‫ﯾﮏ از اﯾﻦ درﻫﺎ‪ ،‬ﯾﮏ ﺳﻨﺴﻮر ﻧﺼﺐ ﺷﺪه اﺳﺖ ﮐـﻪ ﺑـﺎ ﻋﺒـﻮر ﻓـﺮد‪ ،‬ﺳـﯿﮕﻨﺎﻟﯽ ﺑـﻪ ﻣـﺪت ﯾـﮏ ‪ Clock‬ﺗﻮﻟﯿـﺪ ﻣـﯽﻧﻤﺎﯾـﺪ‬
‫)ﺑــﺮاي ورودي ﺳــﯿﮕﻨﺎل ‪ IN‬و ﺑــﺮاي ﺧــﺮوج ﺳــﯿﮕﻨﺎل ‪ .( OUT‬ﻓــﺮدي ﮐــﻪ ﻗــﺼﺪ ورود ﺑــﻪ اﺗــﺎق را دارد‪ ،‬ﺑــﺮاي ﺑــﺎز‬
‫ﺷﺪن در ورودي ﺑﺎﯾـﺪ ﺗﮑﻤـﻪي ‪ Ent‬را ﻓـﺸﺎر دﻫـﺪ‪ .‬در اﯾـﻦﺻـﻮرت‪ ،‬اﯾـﻦ در ﺑـﻪ ﺷـﺮﻃﯽ ﺑـﺎز ﻣـﯽﺷـﻮد ﮐـﻪ در زﻣـﺎن‬
‫ﻓﺸﺮدن ﺗﮑﻤﻪ‬
‫·‬
‫·‬
‫ﺗﻌﺪاد ﺣﺎﺿﺮﯾﻦ در اﺗﺎق ﮐﻤﺘﺮ از ‪ 15‬ﻧﻔﺮ ﺑﺎﺷﺪ‬
‫ﺳــﺎﻋﺖ ﻣﺠــﺎز ورود ﺑــﻪ اﺗــﺎق ﺳــﭙﺮي ﻧــﺸﺪه ﺑﺎﺷــﺪ )ﻓــﺮض ﮐﻨﯿــﺪ ﮐ ـﻪ ﯾــﮏ ﺳــﺎﻋﺖ در اﺧﺘﯿــﺎر دارﯾــﻢ ﮐــﻪ‬
‫ﺧﺮوﺟﯽ آن ‪ T‬در زﻣﺎن ﻣﺠﺎز ‪ 1‬ﺑﻮده و ﻫﺮﮔﺎه زﻣﺎن ﻣﺠﺎز ﺳﭙﺮي ﺷﺪه ﺑﺎﺷﺪ‪ ،‬ﺑﺮاﺑﺮ ‪ 0‬ﺑﺎﺷﺪ(‬
‫ﺑــﺮاي ﺑــﺎز ﺑــﻮدن اﯾــﻦ در‪ ،‬ﺑﺎﯾــﺪ ﺳــﯿﮕﻨﺎل ‪ Open‬را ﺑــﻪ ﻣــﺪت ﻻزم )ﺗــﺎ ﻋﺒــﻮر ﻓــﺮد از در( ‪ 1‬ﻧﮕــﻪ دارد‪ .‬در ﺧﺮوﺟــﯽ‬
‫ﻫﻤﻮاره ﺑـﺎز اﺳـﺖ‪ ،‬ﻣﮕـﺮ وﻗﺘـﯽ ﮐـﻪ ﺗﻌـﺪاد ﺣﺎﺿـﺮﯾﻦ در اﺗـﺎق ﺑـﻪ ‪ 0‬ﺑﺮﺳـﺪ‪ ،‬در اﯾـﻦﺻـﻮرت ﺑﺎﯾـﺪ ﺳـﯿﮕﻨﺎل ﺧﺮوﺟـﯽ‬
‫‪ Close‬ﺑﺮاﺑــﺮ ‪ 1‬ﺷــﻮد ﺗــﺎ اﯾــﻦ در ﺑــﺴﺘﻪ ﺷــﻮد‪ .‬در ﻃــﺮح ﻣــﺪار ﻣــﯽﺗﻮاﻧﯿــﺪ از ﯾــﮏ ‪ Up/Down Counter‬ﺑــﺎ‬
‫ﻣﺸﺨــﺼﺎت زﯾــﺮ اﺳــﺘﻔﺎده ﮐﻨﯿــﺪ‪ .‬ﻧﻤــﻮدار ﺑﻠــﻮﮐﯽ ﺷــﻤﺎرﻧﺪه را در ﻃــﺮح ﺧــﻮد ﺑﮕﻨﺠﺎﻧﯿــﺪ و ارﺗﺒــﺎط وروديﻫــﺎ و‬
‫ﺧﺮوﺟــﯽﻫــﺎي آن را ﺑــﺎ ﺳــﺎﯾﺮ ﻗــﺴﻤﺖﻫــﺎي ﻣــﺪار ﻣــﺸﺨﺺ ﮐﻨﯿــﺪ‪ .‬دﻗــﺖ ﮐﻨﯿــﺪ ﮐــﻪ در ﯾــﮏ ‪ Clock‬ﻣﻤﮑــﻦ اﺳــﺖ‬
‫ﻓــﺮدي از در ورودي وارد ﺷــﺪه و ﻫــﻢزﻣــﺎن ﻓــﺮدي از در ﺧﺮوﺟــﯽ ﺧــﺎرج ﺷــﻮد‪ .‬ﻓــﺮض ﮐﻨﯿــﺪ ﺣﺮﮐــﺖ در ﺧــﻼف‬
‫ﺟﻬﺖ ﺗﻌﯿﯿﻦ ﺷﺪهي درﻫﺎ اﻣﮑﺎنﭘﺬﯾﺮ ﻧﺒﺎﺷﺪ‪.‬‬
‫‪Function‬‬
‫‪Reset counter to 0‬‬
‫‪Hold previous number‬‬
‫‪Up count‬‬
‫‪Down count‬‬
‫ﻓﺮﮐﺎﻧﺲ ﮐﺎري ﻣﺪار را ﻣﺤﺎﺳﺒﻪ ﮐﻨﯿﺪ‪.‬‬
‫ﺻﻔﺤﻪ ‪١‬‬
‫‪Enable‬‬
‫‪Clr‬‬
‫‪Clk‬‬
‫‪X‬‬
‫‪0‬‬
‫‪1‬‬
‫‪1‬‬
‫‪0‬‬
‫‪1‬‬
‫‪1‬‬
‫‪1‬‬
‫‪X‬‬
‫‪X‬‬
‫↑‬
‫↑‬
‫‪U‬‬
‫‪X‬‬
‫‪X‬‬
‫‪1‬‬
‫‪0‬‬
‫آزﻣﺎﯾﺶ ‪ :3‬ﻃﺮاﺣﯽ در ﺳﻄﺢ ﺟﺮﯾﺎن داده ﺑﺎ اﺳﺘﻔﺎده از ‪Verilog‬‬
‫ﺑﺎ اﺳﺘﻔﺎده از دﺳﺘﻮر ‪ assign‬ﯾﮏ ‪ Cascadable 1-bit comparator‬ﺑﺴﺎزﯾﺪ‪ .‬ﺑﺎ اﺗﺼﺎل ﭼﻬﺎر ﻋﺪد از اﯾﻦ‬
‫ﻣﻘﺎﯾﺴﻪﮐﻨﻨﺪهﻫﺎ ﺑﻪ ﯾﮑﺪﯾﮕﺮ ﯾﮏ ﻣﻘﺎﯾﺴﻪﮐﻨﻨﺪهي ﭼﻬﺎر ﺑﯿﺘﯽ ﺑﺴﺎزﯾﺪ‪.‬‬
‫آزﻣﺎﯾﺶ ‪ :4‬ﻃﺮاﺣﯽ رﻓﺘﺎري ﺑﺎ اﺳﺘﻔﺎده از اﻣﮑﺎﻧﺎت ‪Verilog‬‬
‫ﯾﮏ ‪ Stack‬ﺑﺎ ﻋﻤﻖ ‪ 8‬و ﭘﻬﻨﺎي ‪ 4‬ﺑﯿﺖ ﻃﺮاﺣﯽ ﮐﻨﯿﺪ ﮐﻪ داراي ورودﯾﻬﺎ و ﺧﺮوﺟﯿﻬﺎي زﯾﺮ ﺑﺎﺷﺪ ‪:‬‬
‫‪Clock signal‬‬
‫‪Reset signal‬‬
‫‪4-bit data into the stack‬‬
‫‪Push onto the stack‬‬
‫‪Pop from the stack‬‬
‫‪Clk‬‬
‫‪RstN‬‬
‫‪Data_In‬‬
‫‪Push‬‬
‫‪Pop‬‬
‫‪Inputs:‬‬
‫‪4-bit output data from stack‬‬
‫‪Signal indicating that stack is full‬‬
‫‪Signal indicating that stack is empty‬‬
‫‪Data_Out‬‬
‫‪Full‬‬
‫‪Empty‬‬
‫‪Outputs:‬‬
‫آزﻣﺎﯾﺶ ‪ :5‬ﻃﺮاﺣﯽ ﺗﻘﺴﯿﻢ ﮐﻨﻨﺪه‬
‫ﻫﺪف از اﯾﻦ آزﻣﺎﯾﺶ ﻃﺮاﺣﯽ ﯾﮏ ﺗﻘﺴﯿﻢ ﮐﻨﻨﺪه ﺑﻪ روش ‪ Restoring – Sub & Shift‬ﻣﯽ ﺑﺎﺷﺪ‪ .‬ﺑﺮاي اﯾﻦ ﻣﻨﻈﻮر‬
‫ﻣﺴﯿﺮ داده و ﮐﻨﺘﺮﻟﺮ آن را ﻃﺮاﺣﯽ ﮐﻨﯿﺪ و ﺑﺎ اﺗﺼﺎل آﻧﻬﺎ ﺑﻪ ﯾﮑﺪﯾﮕﺮ ﺗﻘﺴﯿﻢ ﮐﻨﻨﺪه را ﺑﺴﺎزﯾﺪ‪.‬‬
‫آزﻣﺎﯾﺶ ‪Vending Machine :6‬‬
‫در اﯾﻦ آزﻣﺎﯾﺶ ﯾﮏ ‪ Vending Machine‬ﺑﺎ ﺧﺮوﺟﯽ ﻗﻬﻮه ﯾﺎ ﭼﺎي ﺑﺴﺎزﯾﺪ‪ .‬اﺑﺘﺪا ﮐﺎرﺑﺮ ﺑﺎ ﮐﻠﯿﺪﻫﺎﯾﯽ ﻧﻮع ﻧﻮﺷﯿﺪﻧﯽ‬
‫)ﭼﺎي – ﻗﻬﻮه(‪ ،‬اﻧﺪازه ﻟﯿﻮان )ﮐﻮﭼﮏ – ﻣﺘﻮﺳﻂ – ﺑﺰرگ(‪ ،‬و ﻣﻘﺪار ﺷﮑﺮ ) ﺑﺪون ﺷﮑﺮ – ﮐﻢ – زﯾﺎد( را ﻣﺸﺨﺺ ﻣﯽ ﮐﻨﺪ‪.‬‬
‫ﺳﭙﺲ ﭘﻮل از ﮐﺎرﺑﺮ درﯾﺎﻓﺖ ﺷﺪه و ﺑﻘﯿﻪ آن ﭘﺲ داده ﻣﯽ ﺷﻮد‪ .‬درﻧﻬﺎﯾﺖ ﻧﻮﺷﯿﺪﻧﯽ ﺧﻮاﺳﺘﻪ ﺷﺪه آﻣﺎده ﻣﯽ ﺷﻮد‪ .‬ﭘﻮل‬
‫ﻣﺮﺑﻮﻃﻪ روي ﯾﮏ ﺻﻔﺤﻪ ﻧﻤﺎﯾﺶ‪ ،‬ﻧﺸﺎن داده ﻣﯽ ﺷﻮد‪.‬‬
‫آزﻣﺎﯾﺶ ‪UART :7‬‬
‫ﻫﺪف از اﻧﺠﺎم اﯾﻦ آزﻣﺎﯾﺶ ﻃﺮاﺣﯽ ﯾﮏ )‪Universal Asynchronous Receiver Transmitter (UART‬‬
‫ﻣﯽﺑﺎﺷﺪ‪ .‬در ﻗﺴﻤﺖ ارﺳﺎل ﮐﻨﻨﺪه اﯾﻦ دﺳﺘﮕﺎه ﻫﺮﺑﺎر ﯾﮏ ﮐﺪ ‪7‬ﺑﯿﺘﯽ ‪ ASCII‬ﺑﺼﻮرت ﺳﺮﯾﺎل ارﺳﺎل ﻣﯽ ﮔﺮدد‪ .‬در اﺑﺘﺪا ﯾﮏ‬
‫ﺑﯿﺖ ﺷﺮوع )‪ ،(Start‬ﺳﭙﺲ ﯾﮏ ﺑﯿﺖ ﺗﻮازن )‪ (Parity‬و ﺑﻌﺪ ‪ 7‬ﺑﯿﺖ داده ارﺳﺎل ﻣﯽ ﺷﻮﻧﺪ‪ .‬در اﻧﺘﻬﺎ ﻧﯿﺰ ﺣﺪاﻗﻞ ﯾﮏ ﺑﯿﺖ‬
‫ﺧﺎﺗﻤﻪ )‪ (Stop‬ارﺳﺎل ﻣﯽ ﺷﻮد )در ﻣﺠﻤﻮع ‪ 10‬ﺑﯿﺖ(‪.‬‬
‫در ﻗﺴﻤﺖ ﮔﯿﺮﻧﺪه ﻧﯿﺰ ﭘﺲ از درﯾﺎﻓﺖ ﺑﯿﺖ ﺷﺮوع )‪ 8 ،(Start‬ﺑﯿﺖ ﻣﺮﺑﻮط ﺑﻪ داده و ﺗﻮازن )‪ (Parity‬ﺑﺼﻮرت ﺳﺮﯾﺎل‬
‫درﯾﺎﻓﺖ ﺷﺪه و در ﯾﮏ ﺛﺒﺎت )‪ 8 (Register‬ﺑﯿﺘﯽ ذﺧﯿﺮه ﻣﯽ ﺷﻮد‪.‬‬
‫ﺻﻔﺤﻪ ‪٢‬‬