This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
labs:sp20_intro_digital_systems [2020/04/08 15:53] nelson [Exercise #1 - Introduction to the BYU Digital lab] |
labs:sp20_intro_digital_systems [2020/05/04 11:38] (current) nelson [Final Questions.] |
||
---|---|---|---|
Line 3: | Line 3: | ||
In this lab you will familiarize yourself with digital numbers, digital systems, and applications of digital systems by experimenting with the digital FPGA development board that you will use throughout the semester. | In this lab you will familiarize yourself with digital numbers, digital systems, and applications of digital systems by experimenting with the digital FPGA development board that you will use throughout the semester. | ||
- | Because this term is on-line some things you may see in the lab this semester will not apply. We have tried to <del>strike out</del> all such things but there may be some things left. If in doubt, please ask. | + | Because this term is on-line, some things you may see in the lab description this semester will not apply. We have tried to <del>strike out</del> all such things but there may be some things left. If in doubt, please ask. |
===== Learning Outcomes ===== | ===== Learning Outcomes ===== | ||
Line 11: | Line 11: | ||
===== Preliminary ===== | ===== Preliminary ===== | ||
- | * You will need an active [[tutorials:making_a_caedm_account|CAEDM account]] to log onto the computers in room 423 EB. | + | * You will need an active CAEDM account to log onto the computers in room 423 EB or any CAEDM (college computing) facilities. So learn how to get one by clicking [[tutorials:making_a_caedm_account|this link]]. |
- | * You will need a set of headphones to listen to instruction videos and perform the lab exercises. (This will be needed for the next few labs.) | + | |
* You will need a notebook to be used as your lab book to record what you do for each lab. There will be times when you will need to take a photo of pages in your lab notebook and turn it in electronically to complete the lab. | * You will need a notebook to be used as your lab book to record what you do for each lab. There will be times when you will need to take a photo of pages in your lab notebook and turn it in electronically to complete the lab. | ||
* Carefully read through the [[tutorials:laboratory_instructions|instructions for completing lab assignments]]. | * Carefully read through the [[tutorials:laboratory_instructions|instructions for completing lab assignments]]. | ||
Line 23: | Line 22: | ||
become comfortable. It is not intended for getting them started on the actual lab. */ | become comfortable. It is not intended for getting them started on the actual lab. */ | ||
- | In this exercise you will become familiar with the BYU digital lab, the equipment in the lab, and policies associated with the lab. Watch the following video to learn more about the lab and its policies. | + | ===Getting Help During Lab Session=== |
- | Even though will not be physically in the lab, learning many of these concepts will be needed when you return to school. | + | When in Zoom, if you need to ask a question you can virtually raise your hand, the instructor will be notified, and you can then ask your question. If there is not lecture or discussion going on, you may also need to speak up to get the instructor's attention (as he may be grading previous assignments and may miss the raised hand in Zoom). |
- | + | ||
- | [[tutorials:digital_lab_overview|BYU Digital Lab Overview]] | + | |
- | + | ||
- | ===TAs and Digital Lab Help Queue=== | + | |
- | + | ||
- | <del> | + | |
- | TAs are assigned to the Digital Lab to assist you with the labs during your lab section. Request TA help by placing yourself on the Digital Lab **Help Queue**. This queue is managed by an online server and will accept requests for help and display them for the TA (the queue is also often projected on the lab projector screen). The Help Queue is accessed from the following link: [[http://diglabqueue.groups.et.byu.net/|Digital Lab Help Queue]]. This link is also near the bottom of the sidebar to the left. | + | |
- | + | ||
- | You will also need to use the Help Queue when you need to pass off your lab. The Help Queue is first come first serve with priority given to students who need to pass off. | + | |
- | </del> | + | |
- | + | ||
- | We will not use the above queue this term. We will use Zoom instead. When in Zoom, if you need to ask a question you can virtually raise your hand, the instructor will be notified, and you can then ask your question. | + | |
===Managing Files and Disk Space=== | ===Managing Files and Disk Space=== | ||
- | If you are doing Option #3 to work with the Vivado software, this section applies to you. Otherwise, it is of less importance this term. | + | **If you are doing Option #3 to work with the Vivado software, this section especially applies to you. Nevertheless, an understanding of the CAEDM J drive is important to all students, even if you will not use it much this term because you will use it in future terms.** |
The computers in the digital lab are managed by [[https://caedm.et.byu.edu/cms/|CAEDM]], the College of Engineering and Technology computer support team. | The computers in the digital lab are managed by [[https://caedm.et.byu.edu/cms/|CAEDM]], the College of Engineering and Technology computer support team. | ||
All users of these computers must conform to the | All users of these computers must conform to the | ||
[[https://caedm.et.byu.edu/wiki/index.php/CAEDM_Policy|CAEDM user policy]] including the food and drink policy. Review this policy to understand the appropriate uses of the facilities in this room. | [[https://caedm.et.byu.edu/wiki/index.php/CAEDM_Policy|CAEDM user policy]] including the food and drink policy. Review this policy to understand the appropriate uses of the facilities in this room. | ||
- | |||
You will generate a large number of files as you complete the lab exercises and it will be important to properly manage your files throughout the semester. You will have a number of files that you will want to save throughout the semester (primarily your source files) and many temporary files that you can ignore (the files generated during the synthesis of your digital circuits). | You will generate a large number of files as you complete the lab exercises and it will be important to properly manage your files throughout the semester. You will have a number of files that you will want to save throughout the semester (primarily your source files) and many temporary files that you can ignore (the files generated during the synthesis of your digital circuits). | ||
- | With a CAEDM account (which you are able to keep as long as you are a student) you are also given disk space to store your class files. This disk space will show up as the "J drive" on the lab computers. Read the [[tutorials:using_the_j_drive]] tutorial to learn more about this disk space. | + | With a CAEDM account (which you are able to keep as long as you are a student) you are also given disk space to store your class files. This disk space will show up as the "J drive" on essentiall all department lab computers or CAEDM computers. Read the [[tutorials:using_the_j_drive]] tutorial to learn more about this disk space. |
It is a good idea to make an **ECEn220** folder in your J Drive, make a **labs** folder inside of that. You should also create a sub-directory for each lab in the course. You will be generating a lot of files for these labs and need to keep them separate. | It is a good idea to make an **ECEn220** folder in your J Drive, make a **labs** folder inside of that. You should also create a sub-directory for each lab in the course. You will be generating a lot of files for these labs and need to keep them separate. | ||
- | ===What is the Red Text?=== | ||
- | |||
- | So, why is the text below in <color red>red</color>? You will be completing a lab writeup on Learning Suite. Things in the labs are marked red to signal to you that those things are some of what will be asked for as you complete the lab writeup. As you run across them, you should write the questions and answers in your lab notebook so when you go to complete the lab writeup you will have the information you need. | ||
<color red>Indicate your CAEDM user ID.</color>\\ | <color red>Indicate your CAEDM user ID.</color>\\ | ||
- | <color red> When are you allowed to go in room 423 EB? </color>\\ | ||
- | |||
- | <color red> What food and/or drink is allowed in the room 423 EB? </color>\\ | ||
- | |||
- | <color red> How do you request help from TAs in the Digital lab? </color>\\ | ||
**Exercise 1 Pass-off:** No pass-off for exercise 1. Answer the above questions on Learning Suite. | **Exercise 1 Pass-off:** No pass-off for exercise 1. Answer the above questions on Learning Suite. | ||
Line 111: | Line 89: | ||
*/ | */ | ||
+ | /* | ||
+ | <color red> | ||
+ | Summarize what the default program does, and explain what the two connecting cables do. | ||
+ | </color> | ||
+ | */ | ||
- | **Exercise 2 Pass-off:** Summarize what the default program does, and explain what the two connecting cables do.\\ \\ | + | ** Exercise 2 Pass-Off:** there is nothing to pass off, just answer the questions above. |
+ | \\ \\ | ||
==== Exercise #3 - Digital Logic and Binary Numbers ==== | ==== Exercise #3 - Digital Logic and Binary Numbers ==== | ||
Line 118: | Line 102: | ||
In this next exercise, you will configure the FPGA with a different circuit. To use and experiment with this new circuit, you need to load {{ :labs:nexys4byuuserdemo.bit |this configuration, or bit, file}} onto the FPGA. You will be loading bit files on the the FPGA for **every** lab each week. You will be creating your own bit files in future lab assignments from the circuits you design. | In this next exercise, you will configure the FPGA with a different circuit. To use and experiment with this new circuit, you need to load {{ :labs:nexys4byuuserdemo.bit |this configuration, or bit, file}} onto the FPGA. You will be loading bit files on the the FPGA for **every** lab each week. You will be creating your own bit files in future lab assignments from the circuits you design. | ||
- | Follow [[tutorials:downloading_bitfile|this tutorial]] to program the FPGA with the new bit file! | + | In this case, download the above bitfile onto your computer using whatever mechanism your browser supports. |
+ | |||
+ | Then, if you are using **Option #1** or **Options #2**, follow [[tutorials:downloading_bitfile|this tutorial]] (top part) to program the FPGA with the new bit file using Xilinx tools. | ||
+ | |||
+ | But, if you are using **Option #3** you will run Adept and select the bitfile to program onto your board. Ask a TA if you need help with Adept. | ||
The FPGA should now be acting differently in its behavior than when you first powered it on. | The FPGA should now be acting differently in its behavior than when you first powered it on. | ||
Line 180: | Line 168: | ||
- | **Exercise 3 Pass-off:** Show the steps you need to take to program the board with a bit file and briefly summarize what your program does.\\ \\ | + | **Exercise 3 Pass-off:** Nothing to pass off - just answer the questions above.\\ \\ |
- | + | ||
- | ==== Exercise #4 - VGA Display ==== | + | |
- | + | ||
- | The NEXYS4 is capable of producing video output from the VGA port found at the top of the board. Custom circuits must be designed for the board to generate video output. The circuit you programmed to the board earlier has been configured to drive the VGA display. This circuit generates a 1280x1024 image using tri-color "pixels" in each location. The circuit defines the red, green, and blue values at each of the 1,310,720 pixels. | + | |
- | + | ||
- | Your board should be connected to your monitor with a VGA cable and the board's output can be viewed by changing your monitor's input source to **VGA**. The activities in this exercise will involve interacting with the NEXYS4 board and viewing its video output. The following tutorial explains how to change the video display input so you can look at the video generated by the NEXYS4 board: | + | |
- | + | ||
- | * [[tutorials:changing_video_display|Selecting the Display Video Input]] | + | |
- | + | ||
- | + | ||
- | === Accelerometer === | + | |
- | + | ||
- | The NEXYS4 board has a 3-axis **MEMS** (Microelectromechanical systems) accelerometer. You'll notice that the circuit from this lab is constantly reading the accelerometer's value and displaying it. The magnitude of the acceleration from all three axes is shown as a bar graph on the right with X and Y drawn as a square. Lift the board with both hands while tilting it in different directions and <color red>describe what happens to the green square in the center of the accelerometer section of the display.</color> | + | |
- | + | ||
- | + | ||
- | === Audio === | + | |
+ | ==== Exercise #4 - Audio ==== | ||
The NEXYS4 board also includes an omnidirectional MEMS microphone. This is located near the left middle of the board and is labeled **MIC**. This microphone uses an Analog Device ADMP421 chip to capture audio and digitize it into **PDM** (pulse density modulated) format. | The NEXYS4 board also includes an omnidirectional MEMS microphone. This is located near the left middle of the board and is labeled **MIC**. This microphone uses an Analog Device ADMP421 chip to capture audio and digitize it into **PDM** (pulse density modulated) format. | ||
- | This chip is constantly digitizing the audio and sending the digital data to the FPGA device. You can see a waveform of this audio on the VGA display. The circuit is also configured to record the audio data and store it in the 128 Mega bit DDR memory. It will then play this stored audio file back on the audio out jack. Perform this experiment by following these steps: | + | This chip is constantly digitizing the audio and sending the digital data to the FPGA device. The circuit is configured to record the audio data and store it in the 128 Mega bit DDR memory. It will then play this stored audio file back on the audio out jack. Perform this experiment by following these steps: |
- Attach your headphones to the Audio Out Jack of the NEXYS 4 board | - Attach your headphones to the Audio Out Jack of the NEXYS 4 board | ||
Line 205: | Line 178: | ||
- After five seconds of recording, the circuit will then play back the audio. This playback is indicated by the LEDs turning on from right to left. | - After five seconds of recording, the circuit will then play back the audio. This playback is indicated by the LEDs turning on from right to left. | ||
- | <color red> Describe what happens to the waveform displayed on the screen when you talk into the microphone.</color> | + | <color red> Based on what you heard, what can you say about the microphone and speaker setup: is it high or low quality, is it stereo or mono?</color> |
- | ===== Final Pass Off ===== | + | =====Final Pass-Off===== |
+ | <color green> | ||
+ | Make a video describing your answers to above experiments. Be sure to show: a) what happens when you flip the switches on the bottom of the board, b) show how the new bitfile you programmed the board with works, c) show an example of the audio recording/playback. | ||
+ | </color> | ||
- | To pass off your lab, show a TA the following: | + | ===== Final Questions. ===== |
- | * Show that you completed the pass-offs for Exercise 2 and 3. | + | Answer the following questions: |
- | * Show the FPGA board operating with the configuration file given to you in this lab | + | |
- | * Briefly describe the overall layout you see on the VGA display. | + | <color red>Describe your final machine setup so we can make sure the most knowledgeable TA corrects your work. Is it Windows or a Mac? Are you doing Option #1, #2, or #3? </color> |
<color red>How many hours did you work on the lab?</color> | <color red>How many hours did you work on the lab?</color> | ||
Line 219: | Line 195: | ||
<color red>Provide any suggestions for improving this lab in the future.</color> | <color red>Provide any suggestions for improving this lab in the future.</color> | ||
+ | /* | ||
===== Personal Exploration ===== | ===== Personal Exploration ===== | ||
- | As described in the [[tutorials:laboratory_instructions]] tutorial, you are required to do a simple personal exploration exercise for some labs. The intent is to have you learn more by doing something additional. | + | As described in the [[tutorials:laboratory_instructions]] tutorial, you are sometimes required to do a simple personal exploration exercise for some labs. The intent is to have you learn more by doing something additional. |
Here are a few choices for personal exploration activities for this lab. Choose one and do it and describe it in your lab book: | Here are a few choices for personal exploration activities for this lab. Choose one and do it and describe it in your lab book: | ||
- | * Configure the FPGA with the original configuration bit file by repowering the board. Describe what is shown on the VGA display with the original circuit and compare it with the display with the configuration file provided in this lab. | ||
- | * View the temperature of the three different devices on the board and record their values. Discuss the differences in temperature. Why would the temperature on different parts be different? | ||
* The circuit configured on this FPGA has a secret six-bit code embedded in the logic. You can unlock this code by experimenting with the values on switches SW15-SW10. See if you can find this secret code by trying all combinations of SW15-SW10. Test your code by pressing the center button (BTNC). The code is only tested when BTNC is pressed. You should see different behavior on the LEDs when you press this button with the correct secret code. | * The circuit configured on this FPGA has a secret six-bit code embedded in the logic. You can unlock this code by experimenting with the values on switches SW15-SW10. See if you can find this secret code by trying all combinations of SW15-SW10. Test your code by pressing the center button (BTNC). The code is only tested when BTNC is pressed. You should see different behavior on the LEDs when you press this button with the correct secret code. | ||
* Pressing BTNL will show a continuous counter counting with Hexadecimal. See if you can estimate the rate at which this counter is counting (i.e., counts per second). | * Pressing BTNL will show a continuous counter counting with Hexadecimal. See if you can estimate the rate at which this counter is counting (i.e., counts per second). | ||
- | * Perform some more involved experiments with the microphone and audio out. | ||
- | * Perform experiments with the accelerometer. | ||
<color red>Describe your personal exploration activities.</color> | <color red>Describe your personal exploration activities.</color> | ||
+ | */ | ||
/* | /* |