Lab Manual for ECE 424 and ECE 426 Interactive Teaching Aid Created by:

Size: px
Start display at page:

Download "Lab Manual for ECE 424 and ECE 426 Interactive Teaching Aid Created by:"

Transcription

1 Lab Manual for ECE 424 and ECE 426 Interactive Teaching Aid Created by: Lance Haney, Computer Engineering Major Micah Nance, Computer Engineering Major Nathan Young, Computer Engineering Major

2 Table of Contents 1 Introduction Connecting the UP3 Development Board to the Computer Tutorial 1: Basic Introduction to the Quartus II IDE Connecting the GO LED External Hardware Component Design LED Circuit Analysis Pushbutton Circuit Analysis Interface Design Board Assembly Tutorial 2: GO LED Implemented Using VHDL LMN Technologies Pseudo-Random Delay for GO LED VHDL Design Tutorial 3: GO LED Implemented Using NIOS II Processor Quartus II Part SOPC Builder Quartus II Part NIOS II IDE...37 Appendix A: LMN Technologies GO LED VHDL Code...43 Appendix B: LMN Technologies GO LED C Code...49 ii

3 1 Introduction Welcome to the Interactive Teaching Aid User Manual written by LMN Technologies. This manual will teach you how to program the UP3 Development Board using the Quartus II IDE, Nios II IDE, and SOPC Builder software packages. The software versions that we used at the time of the creation of this lab manual were Quartus II version 4.2 and NIOS II Evaluation Kit 1.1, which contains the NIOS II IDE. The FPGA that the UP3 Development Board utilizes at the time of this document s creation is the Cyclone EP1C6Q240C8. We have designed Tutorial 1 to make the user familiar with the Quartus II IDE and introduce basic concepts that later tutorials will build upon, allowing students to create advanced designs. No prior knowledge of the Quartus II IDE is necessary and the tutorial uses basic concepts taught in most microcomputer fundamentals courses in order to provide a simple design to focus more on the familiarization of the software package. We have designed Tutorial 2 to allow the user to reproduce the GO LED Reaction Timer in VHDL that LMN Technologies originally implemented for Dr. Collins. This game requires the use of concepts typically covered in a digital design course that utilizes the VHDL programming language. The user of Tutorial 2 should have a basic familiarity with Quartus II IDE. We have designed Tutorial 3 to allow the user to reproduce the GO LED Reaction Timer utilizing the NIOS II soft-core processor and the C programming language that LMN Technologies originally implemented for Dr. Collins. This game requires the use of concepts typically covered in an embedded systems course that utilizes the C programming language. The user of Tutorial 3 should have a basic familiarity with the Quartus II and NIOS II IDEs along with the C programming language. 1

4 2 Connecting the UP3 Development Board to the Computer This section will show you how to connect the UP3 Development Board, shown in Figure 2.1, to a desktop computer. Figure 2.1 1) Begin with the USB ByteBlaster II cable and a USB Software Guard, shown in Figure 2.2. If a network license is enabling your software, you will not need the USB Guard. Figure 2.2 2

5 2) Hook the ByteBlaster II cable to the parallel port of your computer and insert the USB Software Guard into an open USB port as shown in Figure 2.3. Figure 2.3 Figure 2.4 shows the JP11 and JP12 connectors on the UP3. JP12 is for a JTAG communication cable. Figure 2.4 3

6 3) Connect the other end of the ByteBlaster II cable to the JTAG port on the UP3 as shown in Figure 2.5. Figure 2.5 4) Now connect the AC adaptor to the board as shown in Figure 2.6. The blue button you see in the figure is the power switch. Figure 2.6 4

7 Figure 2.7 circles the J3 expansion Header. You will be using this in the next step. Figure 2.7 5) Connect a standard IDE hard drive cable to the J3 expansion header as shown in Figure 2.8. You will use this cable to interface the UP3 with a breadboard. Figure 2.8 5

8 3 Tutorial 1: Basic Introduction to the Quartus II IDE This tutorial will demonstrate the process of programming the UP3 Development Board using Quartus II and a simple schematic. 1) Connect the UP3 Development Board to your computer (see section titled Connecting the UP3 Board for more information). 2) Open the Quartus II software. You can use Start->Programs->Altera->Quartus 4.2 to access the program. 3) Click File->New Project Wizard. 4) Click Next. When you see the dialog box shown in Figure 3.1, enter C:/altera/qdesigns42/tutorial1/ as the working directory, and tutorial1 for the name of the project and for the name of the top-level entry of the project. Figure 3.1 5) Click Next. 6) Click Next. You should now see the dialog shown in Figure

9 Figure 3.2 7) Select Cyclone as the targeted device family. 8) Set the Speed grade to 8. 9) Select the EP1C6Q240C8 device and click Next. 10) If the boxes on the following dialog are checked, uncheck them as shown in Figure

10 Figure ) Click Next 12) Click Finish 13) Click File->New. A window will appear (see Figure 3.4). Select Block Diagram/Schematic File and click OK. 8

11 Figure ) Once you have opened a schematic, click on the Symbol Tool in the left pane, which is labeled in Figure 3.5. Alternatively, you can double-click inside the schematic to bring up the Symbol Tool. Figure ) Figure 3.6 shows the Symbol Wizard window. Type input into the Name: box in order to select an input pin component. 9

12 Figure ) Place two input pins onto the schematic. Right click on a pin and select Properties from the drop-down menu as shown in Figure 3.7. Now, rename it as clock. Rename the other input push_button_1. Figure

13 17) Use the Symbol Tool to create and place an output buffer. Name it led0. 18) Use the Symbol Tool to create and place an inverter ( not ) and a D Flip-Flop ( dff ) onto your schematic. 19) Arrange the components on your schematic as shown in Figure 3.8. Figure ) Select the Selection and Smart Drawing Tool or the Orthogonal Node Tool shown in Figure 3.9. Then, draw wires between your components to attach them as shown in Figure Figure 3.9 Figure ) Hold down the CTRL key and left-click on your input buffers and your output buffer to select all three of these components at once. Then, right-click on one of the components and select Locate->Locate in Assignment Editor as shown in Figure

14 Figure ) Figure 3.12 shows the Assignment Editor. Click on the Pin button in the top right portion of the editor. Then, double click where the clock row meets the Location column. Type in or select PIN_29 for your clock input, PIN_62 for your push_button_1 input, and PIN_56 for your led0 output. PIN_29 is an internal 48 MHz clock on the UP3 Development Board. Figure 3.13 shows the on-board pushbuttons on the right and the small on-board LEDs in the lower left. Figure

15 Figure ) Close the Assignment Editor and save the assignments. 24) Click on the Processing menu and select Start Compilation. 25) The compilation should complete with zero errors and one warning. 26) Click on the Tools menu and select Programmer 27) Next to the Hardware Setup button, you will see either No Hardware or a device name. If you see a device name, skip this step. Otherwise, in the Programmer, click Hardware Setup. Then click Add Hardware. The dialog shown in Figure 3.14 will appear. Inside this dialog, select ByteBlasterMV or ByteBlaster II as your hardware type and LPT1 as your port. Click OK. Click Close. Figure

16 28) Make sure you are in JTAG mode and click the Program/Configure box shown in Figure Click Start. Figure ) Once the Progress bar reaches 100%, you have successfully programmed your UP3 board. 30) Press and hold the push button labeled SW7 on the UP3 to watch your LED light up. 4 Connecting the GO LED External Hardware This portion of the tutorial will guide the user through the steps to construct all external hardware necessary for this project s use of the UP3 development board. All needed materials can be found in Figure 4.1. Component Quantity Breadboard 1 LED's (1.8V@10mA) 8 Resistors (10k) 2 Resistors (150) 8 Pushbuttons 2 IDE cable (40 pin) 1 Wire strippers 1 Jumper wire pack 1 Figure Component Design This section will begin with an overview of each component of the external hardware LED Circuit Analysis To ensure an appropriate current through the LED s, a current limiting resistor is required. The output pins of the UP3 will supply V cc (5V) to the breadboard for the LED circuit shown in Figure 4.2. Using Ohm s Law and Kirchoff's voltage law, the value of the resistor is determined by: V V R cc V f R = or R = I I The LEDs we will use have specifications of V f (the forward voltage of the diode) and I to be 1.8V and 20mA, respectively. Given those values, calculations yield a resistor value of about 150 ohms. 14

17 Figure

18 4.1.2 Pushbutton Circuit Analysis A single-pole single-throw (SPST) pushbutton momentary switch will be the sole input for each player to play the game. The switches are external to the board as to not damage the more sensitive portions of the design. Figure 4.3 shows a circuit, which implements such pushbutton input scheme. When the user closes the pushbutton, the voltage is pulled low and the board will receive logic 0. With the pushbutton open, the voltage will be pulled high and the board will receive logic 1. +5V 10k To board Figure Interface Design In order to connect the breadboard and all its components to the UP3, you will use a standard 40 pin IDE cable. Figure 4.4 shows the pin assignments for a standard 40 pin IDE cable. Figure 4.4 After plugging the IDE cable into the J3 expansion header (see Figure 4.5), the pin assignments will correspond as shown in Figure 4.6. NOTE: The red wire on the IDE cable should be farthest from the corner of the board. 16

19 Figure 4.5 Function IDE cable pin J3 Header pin UP3 pin assignment Ground 2 2 Gnd V cc LED1 (p1 score=3) LED2 (p1 score=2) LED3 (p1 score=1) LED4 (tie game) LED5 (p2 score=1) LED6 (p2 score=2) LED7 (p2 score=3) LED8 (Go LED) P1 Button P2 Button Figure Board Assembly The following steps will guide you through assembling the external hardware associated with the GO LED exercise. IMPORTANT: To reduce clutter and confusion; build each of the components in order from the right side of the board to the left. 1) Acquire all parts listed in Figure ) Construct seven LED circuits (Figure 4.7) on the breadboard to display the score. Be sure to plan for the V cc wire coming from the UP3 by leaving an open socket near the top of each column for each of the LED s. Connect the ground portion of the LED circuit to the bottom row of the breadboard. 3) Construct one more LED circuit for the go LED in the same fashion as Step 2. Separate this LED to designate it from the score keeping LED s. 17

20 Figure 4.7 4) Using the pushbuttons, 10k resistors, and jumper wires, construct two pushbutton circuits (Figure 4.8). Connect each of the V cc portions of each circuit to one of the long strips along the top edge of the breadboard. Also, connect the ground portion of the circuit to one of the long strips along the bottom edge of the breadboard. Figure 4.8 5) Referencing Figure 4.9, connect the bare ends of the IDE cable to each of the corresponding components on the breadboard. You may need to strip each wire in order to form a complete connection to the board. The numbering for the wires begins with one as the red wire and proceeds numerically along adjacent wires. The ordering of the pins, wires, and components is very important, and error could lead to board misbehavior. Also, recognize the placement of the pushbutton wires (wire 12 and 13) between the 10k pull-up resistor and pushbutton lead. NOTE: pin 2 (Gnd) and 3 (V cc ) should be connected to the two strips along the top of the breadboard. 18

21 Then, using a jumper, connect the Gnd row to the bottom row of the breadboard and ground all circuits. Use two more jumpers to connect the V cc row to each of the pushbutton circuits. Figure 4.9 The unit is ready to be connected to the UP3 development board. In order for the pin assignments to be preserved, it is very important that the connector be oriented so that the red wire of the IDE cable is farthest from the outside corner. 19

22 5 Tutorial 2: GO LED Implemented Using VHDL This tutorial will demonstrate the process of programming the UP3 Development Board using Quartus II and the GO LED interactive program utilizing external hardware. 1) Make sure the UP3 Development Board is connected properly to your computer (see section titled Connecting the UP3 Board for more information). 2) Make sure the GO LED externa1 hardware is properly connected and that the ribbon cable connecting the external hardware to the UP3 development is properly installed (see section titled Connecting the GO LED External Hardware). 3) Open the Quartus II software. You can use Start->Programs->Altera->Quartus x.x to access the program. 4) Click File->New Project. This opens the New Project Wizard. 5) Click Next. When you see the dialog box enter C:/altera/qdesigns41/tutorial2/ as the working directory, and tutorial2 for the name of the project and for the name of the top-level entry of the project. Click Next. If the directory does not exist, select to create it. 6) There will be no files to add to the project so on the Add Files Dialog Box click Next. 7) Select the Cyclone FPGA and create a new Block Diagram/Schematic File as detailed in Tutorial 1. 8) Create the block for the VHDL controller of the system by using the Block Tool on the left toolbar as shown in Figure 5.1. Figure 5.1 9) Once you draw the block in the schematic area, right click the box and select Block Properties as shown in Figure

23 Figure ) Under Block Properties, select the General tab and enter the name of the block to be goled_controller (Figure 5.3). Figure ) Under Block Properties, select the I/O tab and enter the name of the signals and their type. Click 'Add' for each signal. This design contains 12 signals (6 inputs/6 outputs). Enter the signals as shown in Figure

24 Figure ) Click OK and Quartus II will automatically update the block with the appropriate signals (Figure 5.5). Figure

25 13) Now the input pads for clock, reset, p1input, p2input, and start game should be inserted as described in Tutorial 1 and using the Orthogonal Conduit Tool (Figure 5.6) connect the input pads to the goled_controller (Figure 5.7). Figure 5.6 Figure ) Using the Orthogonal Node Tool (Figure 5.8), draw a signal line that connects to the goled_controller (Figure 5.9). Name this signal line end_delay by right clicking the line once it is connected and selecting properties. Figure 5.8 Figure ) Using the Orthogonal Bus Tool (Figure 5.10), connect two bus lines to the goled_controller (Figure 5.11). Name the bus lines p1score[1..0] and p2score[1..0] respectively. Figure Figure 5.11

26 16) Using the Orthogonal Node Tool connect two signal lines to each bus and name two of the new signal lines p1score[0] and p1score[1] and the other two signal lines p2score[0] and p2score[1] as shown in Figure Figure ) To obtain the appropriate scores, the p1score and p2score vectors must have there individual signals sent through a digital logic setup shown in Figure You can find the parts for this setup by right clicking an empty space in the schematic and selecting Insert Symbol. This setup allows the two bit vectors to produce three distinct scores for each player p1score[0] p1score[1] AND2 play er1_3 p2score[0] p2score[1] AND2 play er2_3 p1score[0] p1score[1] NOT inst7 inst3 AND2 play er1_2 p2score[0] p2score[1] NOT inst12 inst8 AND2 play er2_2 p1score[0] p1score[1] NOT inst5 AND2 play er1_1 p2score[0] p2score[1] NOT inst10 AND2 play er2_1 inst6 inst4 inst11 inst9 Figure ) Now you should insert the output pads for player1_1, player1_2, player1_3, player2_1, player2_2, player2_3, tie_game, and go_led as described in Tutorial 1. Using the Orthogonal Conduit Tool connect the output pads that correspond to the player scores to signal lines and name the signal lines in the same manner that the output pads were named and use the tool to connect the go_led and tie_game output pads to the goled_controller (Figure 5.14). Name the signal lines connected to the tie_game and go_led output pads, tie_game and go_led respectively. Figure

27 19) Using the Orthogonal Node Tool connect two signal lines to the controller and name the lines reset_counter and enable_delay (Figure 5.15). Figure ) Right click on the goled_controller where the conduit input line is connected and select Mapper Properties (Figure 5.16). Figure ) Under the General tab, select Input in the Type box as shown in Figure

28 Figure ) Under the Mappings tab, enter the I/O name that is present in the conduit line connected to the goled_controller, then select the corresponding signal name in the conduit, and the click Add to place the mapping into the Existing mappings text box (Figure 5.18). Once you have placed all of the signals in the mapping, click OK. Figure ) Repeat this process for the remaining connections to the goled_controller. Once the mapping process is complete, the schematic should look similar to the one in Figure On the outputs from the goled_controller, select 'Output' for 'Type' under the General tab when performing mappings. 26

29 Figure ) Create an output pad named vcc_pin and connect the pad to the vcc symbol found in the symbol library. This pin will supply 5V to the external board (Figure 5.20). Figure ) Select all input and output pads and assign the pin numbers as was shown in Tutorial 1. Figure 5.21 shows the pin numbers. Function UP3 pin assignment Ground Gnd V cc 217 clock 29 reset 48 p1input 222 p2input 208 start_game 62 player1_1 218 player1_2 206 player1_3 221 tie_game 215 player2_1 219 player2_2 216 player2_3 220 go_led 207 Figure ) Right click on the goled_controller and select Create Design File from Selected Block (Figure 5.22). 27

30 Figure ) In the Create Design File from Selected Block dialog box (Figure 5.23) select VHDL File type and check the box labeled Add the new design file to the current project. Ensure that the File name is goled_controller.vhd and click OK. Figure ) A dialog box will appear stating the design file was created (Figure 5.24). Click 'OK' to continue. Figure

31 29) Once OK is click from the previous step, VHDL code will appear for the goled_controller. Edit the VHDL code that corresponds to the state machine shown in Figure NOTE: The code used by LMN Technologies to create the initial design is located in Appendix A of this document. Reset S0 tie_game, RESET_DELAY START S1 tie_game="1" START S2 START_DELAY, tie_game="1" END_DELAY S3 GO_LED, tie_game p2input p1input p1input p2input START START S4 p1score="01", RESET, DELAY S5 p2score="01", RESET, DELAY START START S6 START_DELAY, p1score="01" S7 START_DELAY, p2score="01" END_DELAY END_DELAY S8 GO_LED, p1score="01" S9 GO_LED, p2score="01" p2input p1input p2input p1input S10 RESET_DELAY, p1score="10" S11 RESET_DELAY, p2score="10" START START S12 START_DELAY, p1score="10" S13 START_DELAY, p2score="10" END_DELAY END_DELAY S14 GO_LED, p1score="10" S15 GO_LED, p2score="10" p1input p2input S16 RESET_DELAY, ps1core="11" S17 RESET_DELAY, p2score="11" Figure

32 5.1 LMN Technologies Pseudo-Random Delay for GO LED VHDL Design Now the schematic is ready to have a setup added using digital logic components that will add a pseudorandom delay that will control the end_delay signal. We at LMN Technologies implemented the delay using a setup of 6 counters as shown below. clock enable_delay lpm_counter1 clock cnt_en inst14 reset_counter aclr up counter q[24..0] lpm_and0 25 inst16 count_enable clock tie_game count_enable clock clk_en cnt_en inst19 lpm_counter2 reset_counter aclr up counter q[2..0] lpm_and2 3 inst24 8xDelay NOT clock p2score[0] count_enable lpm_counter2 clock clk_en cnt_en inst20 aclr up counter q[2..0] inst27 NOT inst26 AND3 inst28 2xDelay reset_counter NOT clock p2score[1] count_enable lpm_counter2 clock clk_en cnt_en inst21 aclr up counter q[2..0] inst30 AND3 inst31 7xDelay reset_counter clock p1score[0] count_enable lpm_counter2 clock clk_en cnt_en inst22 aclr up counter q[2..0] NOT inst32 AND3 inst33 6xDelay reset_counter clock p1score[1] count_enable lpm_counter2 clock clk_en cnt_en inst23 aclr up counter q[2..0] NOT inst35 AND3 inst34 3xDelay reset_counter 3xDelay 6xDelay 8xDelay 2xDelay 7xDelay IN1 IN2 IN3 IN4 IN5 inst29 OR5 30 OUT end_delay This concludes the GO LED VHDL implementation tutorial. You can now see the effects of the VHDL code on the UP3 development board. You have now interfaced the UP3 to the breadboard LEDs and pushbuttons via a ribbon cable.

33 6 Tutorial 3: GO LED Implemented Using NIOS II Processor This tutorial will show you the basics of placing the Nios II soft-core processor onto an Altera FPGA. You will then use the Nios II IDE to write and compile C code that will run on the Nios II Processor. Your code should mimic the functionality of the GO LED VHDL design from Tutorial 2. We have divided this tutorial into several sections, depending on which program you are using at the time. 6.1 Quartus II Part 1 You should be familiar with the Quartus II IDE from your experience in Tutorial 1. If you have not done Tutorial 1, we suggest that you do it before proceeding. 1) Browse to the C:\altera\qdesigns42\ directory. 2) Place the nios2_tutorial folder that we provided on your CD into this directory. 3) Open the Quartus II software using Start->Programs->Altera->Quartus 4.2 4) Click File->Open Project. 5) Browse to the C:\altera\qdesigns42\nios2_tutorial directory and select the nios2_tutorial.qpf file. 6) This will open the tutorial project as well as a schematic. If the schematic does not appear, select File->Open and opening the nios2_tutorial.bdf file. Make sure the Add file to current project box is checked when you do this. 7) Now select the Tools menu and click on SOPC Builder. 6.2 SOPC Builder SOPC Builder is a program that allows the user to specify what pieces of their board they are going to use and how they are connected. We will construct a system with a Nios II Processor, a JTAG cable, some external RAM, and two parallel input/output devices. 1) The program will prompt you with a dialog shown in Figure 6.1. Enter nios2_top as the System Name and select VHDL as your HDL Language. Figure 6.1 2) Near the top of the program, make sure that your target board is Unspecified Board and that your clock signal is 48.0 MHz, as shown in Figure

34 Figure 6.2 3) In the left-hand component pane, right-click on Nios II Processor Altera Corporation and then click Add New Nios II Processor Altera Corporation to add it to your system. Figure 6.3 shows an example of this action. Figure 6.3 4) SOPC Builder will prompt you with the dialog shown in Figure 6.4. Select the Nios II/S and click Finish 32

35 Figure 6.4 5) Under the Bridges heading in the left pane, add an Avalon Tri-State Bridge. This bridge is a bus that will allow the Nios II processor to communicate with the UP3 s on-board RAM. This RAM is external to the FPGA. 6) A dialog will appear. Select Registered and click Finish. 7) Under the Communications heading, add a JTAG UART. This represents our JTAG download cable. Accept the default settings by clicking Finish. 8) Under the Memory heading, add SLS_UP3_SRAM. This is our external RAM. Accept the default settings by clicking Finish. 9) Under the Other heading, add a new PIO (Parallel I/O). 10) The dialog shown in Figure 6.5 will appear. Specify 8 bits and Output ports only. 33

36 Figure ) Click Finish. 12) SOPC Builder will name this component pio_0. Rename it led_pio by right clicking on it and selecting Rename. 13) Add a second PIO. This time, specify 2 bits and Input ports only. Click Finish 14) Rename this component pushbutton_pio. 15) Your window should now look similar to Figure 6.6. Figure ) Click the System Generation tab. 17) Uncheck the Simulation. Create Modelsim project files. box, as shown in Figure

37 Figure ) Click the Generate button. The Generate process is not an instantaneous process. After generating the needed files, SOPC Builder will tell you that you can exit the program. However, you should not exit the program at this time. Simply switch your view over to Quartus II. We will return to SOPC Builder later in the tutorial. 6.3 Quartus II Part 2 You will now finish the design, compile it, and download it onto the FPGA. 1) Your schematic should be open and look like Figure 6.8. Figure 6.8 2) Click the Symbol Tool 3) Inside the Symbol Tool, open the Project folder and click on nios2_top. nios2_top is a schematic representation of the system you just created in SOPC Builder. 4) Click OK and place this symbol into your schematic. It should fit as shown in Figure

38 Figure 6.9 Note that the SRAM_BE[1..0] and ADDr[16..0] wires are connected properly. They do not appear connected in the block diagram. If you look farther to the right in the diagram, you will see two output buffers that have these signals named as their inputs. You can connect wires in this manner using Quartus II. 5) Click the Processing menu and then Start Compilation 6) Quartus II will be prompt you to save the changes to your block diagram file. Choose yes. After Quartus has compiled the design, you will see a prompt that displays the number of errors and warnings the design had. Do not be alarmed at the number of warnings you receive. The majority of them fit into two categories. The first category includes warnings that state that certain pins are stuck at VCC or at ground. The design intends for these pins to behave in this manner. The other category relates to the Nios II registers. The tutorial does not use the 32-bit capacity of these registers for this design, so Quartus reduces the size of many of these registers. 7) Click OK 8) Click the Tools menu and select Programmer. 9) Check the Program/Configure box and click Start. 10) After Quartus II has programmed the FPGA, switch back to SOPC Builder. 11) Click the Run Nios II IDE button shown in Figure Figure

39 6.4 NIOS II IDE This part of the tutorial will allow you to run C code on the Nios II processor. 1) Click the File menu and select New->C/C++ Application 2) Name your project nios2_tutorial. 3) Make sure the Use Default Location box is checked. 4) The IDE should automatically fill in the Select Target Hardware information as shown in Figure Figure ) Select Blank Project as your template. 6) Click Finish 7) In the left-hand C/C++ Projects pane, right-click on the nios2_tutorial project and select New- >File 8) Enter nios2_tutorial.c in the File name: box as shown in Figure 6.12 and click Finish. 37

40 Figure 6.12 You will now need to write C code in order to interact with the breadboard LEDs and push buttons. The code that LMN Technologies wrote is included in its entirety in Appendix B. 9) Copy the code shown in Figure 6.13 into your new C file. Some of Altera s comments are included that explain why these lines of code are necessary. 38

41 Figure ) Right-click on the nios2_tutorial project in the left pane and select Build Project. This will generate a system.h file that you will need to include in your program. The Nios II IDE generates this file in the C:\altera\qdesigns42\nios2_tutorial\software\nios2_tutorial_syslib\Debug\system_description\ directory. This file defines your system based on your SOPC Builder components. Find the section that defines your LED_PIO and PUSHBUTTON_PIO components. You will need to know the names of the constants defined here that specify the base address for your PIO s. 11) You will also need to include the avalon_pio_regs.h file in your program. You can view this file in the C:\altera\kits\nios2\components\altera_avalon_pio\inc\ directory. You will need to use the commands defined in this file to read from and write to your LED PIOs. The prefix IORD stands for Input/Output Read and IOWR stands for Input/Output Write. When reading, you supply a function with the base address of the PIO you wish to read. When writing, you supply the base address as well as a value to write. You can use an 8-bit unsigned char to hold the values that you read or write to your PIO s. We suggest storing hexadecimal numbers in the unsigned characters. Optional Step: You can also include the following file: "C:\altera\kits\nios2\bin\nios2-gnutools\Hi686-pc-cygwin\nios2-elf\include\stdlib.h" if you wish to use C s random number functions to generate random delays for your design. 12) Now, you will need to code a program that follows the same flow as the VHDL design did. Figure 6.14 has a flow chart that may help you with your coding. 39

42 Figure ) After you finish coding, build the project again. 14) Click on the Run menu and select Run 15) Click New in the bottom left corner. Figure 6.15 shows the New button circled in red. 40

43 Figure ) On the Main tab, specify your project as nios2_tutorial and name it nios2_tutorial Hardware. 17) Switch to the Target Connection tab and make sure that the Nios II Terminal communication device is set to none. Figure 6.16 shows this. Figure ) Switch back to the Main tab and hit Run. Once the code is running, the console will display messages similar to those shown in Figure

44 Figure 6.17 This concludes the GO LED Nios II Processor implementation tutorial. You can now see the effects of the C code on the UP3 development board. You have now interfaced the UP3 to the breadboard LEDs and pushbuttons via a ribbon cable. You have also successfully implemented an embedded system using some simple C code. 42

45 Appendix A: LMN Technologies GO LED VHDL Code -- WARNING: Do NOT edit the input and output ports in this file in a text -- editor if you plan to continue editing the block that represents it in -- the Block Editor! File corruption is VERY likely to occur. -- Copyright (C) Altera Corporation -- Any megafunction design, and related netlist (encrypted or decrypted), -- support information, device programming or simulation file, and any other -- associated documentation or information provided by Altera or a partner -- under Altera's Megafunction Partnership Program may be used only -- to program PLD devices (but not masked PLD devices) from Altera. Any -- other use of such megafunction design, netlist, support information, -- device programming or simulation file, or any other related documentation -- or information is prohibited for any other purpose, including, but not -- limited to modification, reverse engineering, de-compiling, or use with -- any other silicon devices, unless such use is explicitly licensed under -- a separate agreement with Altera or a megafunction partner. Title to the -- intellectual property, including patents, copyrights, trademarks, trade -- secrets, or maskworks, embodied in any such megafunction design, netlist, -- support information, device programming or simulation file, or any other -- related documentation or information provided by Altera or a megafunction -- partner, remains with Altera, the megafunction partner, or their respective -- licensors. No other licenses, including any licenses needed under any third -- party's intellectual property, are provided herein. -- Generated by Quartus II Version 4.2 (Build Build /07/2004) -- Created on Sat Mar 19 11:53: LIBRARY ieee; USE ieee.std_logic_1164.all; -- Entity Declaration ENTITY game_controller IS -- {{ALTERA_IO_BEGIN}} DO NOT REMOVE THIS LINE! PORT ( clock : IN STD_LOGIC; reset : IN STD_LOGIC; p1input : IN STD_LOGIC; p2input : IN STD_LOGIC; start_game : IN STD_LOGIC; end_delay : IN STD_LOGIC; enable_delay : OUT STD_LOGIC; go_led : OUT STD_LOGIC; reset_counter : OUT STD_LOGIC; 43

46 p1score : OUT STD_LOGIC_VECTOR(1 downto 0); p2score : OUT STD_LOGIC_VECTOR(1 downto 0); tie_game : OUT STD_LOGIC ); -- {{ALTERA_IO_END}} DO NOT REMOVE THIS LINE! END game_controller; -- Architecture Body ARCHITECTURE game_controller_architecture OF game_controller IS type state_type is (s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13,s14,s15,s16,s17); signal state: state_type; BEGIN process(clock,reset,p1input,p2input,start_game,end_delay) begin if reset='0' then state<=s0; elsif clock'event and clock='1' then case state is when s0=> when s1=> when s2=> when s3=> when s4=> when s5=> when s6=> when s7=> when s8=> state<=s1; if start_game='0' then state<=s2; else state<=s1; end if; if end_delay='1' then state<=s3; else state<=s2; end if; if p1input='0' then state<=s4; elsif p2input='0' then state<=s5; else state<=s3; end if; if start_game='0' then state<=s6; else state<=s4; end if; if start_game='0' then state<=s7; else state<=s5; end if; if end_delay='1' then state<=s8; else state<=s6; end if; if end_delay='1' then state<=s9; else state<=s7; end if; if p1input='0' then state<=s10; elsif p2input='0' then state<=s1; else state<=s8; end if; 44

47 end if; end process; when s9=> when s10=> when s11=> when s12=> when s13=> when s14=> when s15=> when s16=> when s17=> when others=> state<=s0; end case; if p2input='0' then state<=s11; elsif p1input='0' then state<=s1; else state<=s9; end if; if start_game='0' then state<=s12; else state<=s10; end if; if start_game='0' then state<=s13; else state<=s11; end if; if end_delay='1' then state<=s14; else state<=s12; end if; if end_delay='1' then state<=s15; else state<=s13; end if; if p1input='0' then state<=s16; elsif p2input='0' then state<=s4; else state<=s14; end if; if p2input='0' then state<=s17; elsif p1input='0' then state<=s5; else state<=s15; end if; if reset='0' then state<=s0; else state<=s16; end if; if reset='0' then state<=s0; else state<=s17; end if; process(state) -- *** Must Assign following signals in each state *** -- enable_delay : OUT STD_LOGIC; -- go_led : OUT STD_LOGIC; -- reset_counter : OUT STD_LOGIC; -- p1score : OUT STD_LOGIC_VECTOR(1 downto 0); -- p2score : OUT STD_LOGIC_VECTOR(1 downto 0); -- tie_game : OUT STD_LOGIC begin if state=s0 then reset_counter<='1'; enable_delay<='0'; go_led<='0'; p1score<="00"; 45

48 p2score<="00"; tie_game<='0'; elsif state=s1 then reset_counter<='0'; enable_delay<='0'; go_led<='0'; p1score<="00"; p2score<="00"; tie_game<='1'; elsif state=s2 then reset_counter<='0'; enable_delay<='1'; go_led<='0'; p1score<="00"; p2score<="00"; tie_game<='1'; elsif state=s3 then reset_counter<='0'; enable_delay<='0'; go_led<='1'; p1score<="00"; p2score<="00"; tie_game<='1'; elsif state=s4 then reset_counter<='1'; enable_delay<='0'; go_led<='0'; p1score<="01"; p2score<="00"; tie_game<='0'; elsif state=s5 then reset_counter<='1'; enable_delay<='0'; go_led<='0'; p1score<="00"; p2score<="01"; tie_game<='0'; elsif state=s6 then reset_counter<='0'; enable_delay<='1'; go_led<='0'; p1score<="01"; p2score<="00"; tie_game<='0'; elsif state=s7 then reset_counter<='0'; enable_delay<='1'; go_led<='0'; p1score<="00"; p2score<="01"; 46

49 tie_game<='0'; elsif state=s8 then reset_counter<='0'; enable_delay<='0'; go_led<='1'; p1score<="01"; p2score<="00"; tie_game<='0'; elsif state=s9 then reset_counter<='0'; enable_delay<='0'; go_led<='1'; p1score<="00"; p2score<="01"; tie_game<='0'; elsif state=s10 then reset_counter<='1'; enable_delay<='0'; go_led<='0'; p1score<="10"; p2score<="00"; tie_game<='0'; elsif state=s11 then reset_counter<='1'; enable_delay<='0'; go_led<='0'; p1score<="00"; p2score<="10"; tie_game<='0'; elsif state=s12 then reset_counter<='0'; enable_delay<='1'; go_led<='0'; p1score<="10"; p2score<="00"; tie_game<='0'; elsif state=s13 then reset_counter<='0'; enable_delay<='1'; go_led<='0'; p1score<="00"; p2score<="10"; tie_game<='0'; elsif state=s14 then reset_counter<='0'; enable_delay<='0'; go_led<='1'; p1score<="10"; p2score<="00"; tie_game<='0'; 47

50 elsif state=s15 then reset_counter<='0'; enable_delay<='0'; go_led<='1'; p1score<="00"; p2score<="10"; tie_game<='0'; elsif state=s16 then reset_counter<='1'; enable_delay<='0'; go_led<='0'; p1score<="11"; p2score<="00"; tie_game<='0'; elsif state=s17 then reset_counter<='1'; enable_delay<='0'; go_led<='0'; p1score<="00"; p2score<="11"; tie_game<='0'; end if; end process; END game_controller_architecture; 48

51 Appendix B: LMN Technologies GO LED C Code #include "system.h" #include "altera_avalon_pio_regs.h" #include "C:\altera\kits\nios2\bin\nios2-gnutools\H-i686-pc-cygwin\nios2- elf\include\stdlib.h" //function headers void delayed_blink(unsigned char led); void random_delay(unsigned char led); void intro(); void player1win(); void player2win(); /* * This is a freestanding application, so we want to use alt_main * as the entry point. However, if the debugger is run on this * application, it will try to set a breakpoint at main, which * the application does not contain. The below line creates an * alias so the debugger is able to set a breakpoint at main, * yet the application retains alt_main as it's entry point. */ int main (void) attribute ((weak, alias ("alt_main"))); /* * Use alt_main as entry point for this free-standing application */ int alt_main (void) { unsigned char led; unsigned char pushbutton; /* the variable 'led' represents the 8 bit led_pio component you * placed in SOPC Builder. Here are the relationships of the * individual led_pio signals to the VHDL signals you used in * an earlier tutorial * * led_pio[0] = go_led * led_pio[1] = player2_3 * led_pio[2] = player2_2 * led_pio[3] = player2_1 * led_pio[4] = tie_game * led_pio[5] = player1_1 * led_pio[6] = player1_2 * led_pio[7] = player1_3 */ intro(); //flashes leds in a pattern to signal that //the game is about to start led = 0x10; //sets the middle LED up IOWR_ALTERA_AVALON_PIO_DATA(LED_PIO_BASE, led); random_delay(led); //starts the first round. the tie_game and go_led LEDs will be lighted led = led ^ 0x01; IOWR_ALTERA_AVALON_PIO_DATA(LED_PIO_BASE, led); 49

52 } while (1) { //this loop will run until one player presses their pushbutton while(1){ //read the pushbutton pio pushbutton = IORD_ALTERA_AVALON_PIO_DATA(PUSHBUTTON_PIO_BASE); //if player 1 presses his button first, we shift the score //in his direction if(pushbutton == 0x2){ led = led ^ 0x01; //toggle go_led off led = led << 1; IOWR_ALTERA_AVALON_PIO_DATA(LED_PIO_BASE, led); break; } //if player 2 presses his button first, we shift the score //in his direction else if(pushbutton == 0x1){ led = led ^ 0x01; //toggle go_led off led = led >> 1; IOWR_ALTERA_AVALON_PIO_DATA(LED_PIO_BASE, led); break; } } //if the final led on player 1's side of the board is reached, //he wins if(led == 0x02){ player1win(); break; } //if the final led on player 2's side of the board is reached, //he wins else if(led == 0x80){ player2win(); break; } random_delay(led); //toggle go_led on led = led ^ 0x01; IOWR_ALTERA_AVALON_PIO_DATA(LED_PIO_BASE, led); } while(1); return 0; void random_delay(led) unsigned char led; { unsigned int seed; if(led == 0x10) seed = 5; else if(led == 0x20) seed = 50; else if(led == 0x40) seed = 500; else if(led == 0x08) seed = 5000; else if(led == 0x04) seed = 50000; else if(led == 0x02) 50

53 } seed = ; else seed = 1000; int rand = rand_r(&seed); rand = rand % ; rand += ; while(rand > 0){ rand--; } void intro(){ unsigned char led = 0x01; IOWR_ALTERA_AVALON_PIO_DATA(LED_PIO_BASE, led); led = led << 1; delayed_blink(led); led = led << 1; delayed_blink(led); led = led << 1; delayed_blink(led); led = led << 1; delayed_blink(led); led = led << 1; delayed_blink(led); led = led << 1; delayed_blink(led); led = led << 1; delayed_blink(led); delayed_blink(0x00); delayed_blink(0xff); delayed_blink(0x00); delayed_blink(0xff); return; } void player1win(){ delayed_blink(0x0e); delayed_blink(0x00); delayed_blink(0x0e); delayed_blink(0x00); delayed_blink(0x0e); delayed_blink(0x00); delayed_blink(0x0e); delayed_blink(0x00); return; } void player2win(){ delayed_blink(0xe0); delayed_blink(0x00); delayed_blink(0xe0); delayed_blink(0x00); delayed_blink(0xe0); delayed_blink(0x00); delayed_blink(0xe0); delayed_blink(0x00); return; } void delayed_blink(led) unsigned char led; 51

54 { } int count = 0; while(count < ) count++; IOWR_ALTERA_AVALON_PIO_DATA(LED_PIO_BASE, led); 52

NIOS CPU Based Embedded Computer System on Programmable Chip

NIOS CPU Based Embedded Computer System on Programmable Chip 1 Objectives NIOS CPU Based Embedded Computer System on Programmable Chip EE8205: Embedded Computer Systems This lab has been constructed to introduce the development of dedicated embedded system based

More information

DKAN0011A Setting Up a Nios II System with SDRAM on the DE2

DKAN0011A Setting Up a Nios II System with SDRAM on the DE2 DKAN0011A Setting Up a Nios II System with SDRAM on the DE2 04 November 2009 Introduction This tutorial details how to set up and instantiate a Nios II system on Terasic Technologies, Inc. s DE2 Altera

More information

University of Massachusetts Amherst Computer Systems Lab 2 (ECE 354) Spring Lab 1: Using Nios 2 processor for code execution on FPGA

University of Massachusetts Amherst Computer Systems Lab 2 (ECE 354) Spring Lab 1: Using Nios 2 processor for code execution on FPGA University of Massachusetts Amherst Computer Systems Lab 2 (ECE 354) Spring 2007 Lab 1: Using Nios 2 processor for code execution on FPGA Objectives: After the completion of this lab: 1. You will understand

More information

NIOS CPU Based Embedded Computer System on Programmable Chip

NIOS CPU Based Embedded Computer System on Programmable Chip NIOS CPU Based Embedded Computer System on Programmable Chip 1 Lab Objectives EE8205: Embedded Computer Systems NIOS-II SoPC: PART-I This lab has been constructed to introduce the development of dedicated

More information

NIOS CPU Based Embedded Computer System on Programmable Chip

NIOS CPU Based Embedded Computer System on Programmable Chip NIOS CPU Based Embedded Computer System on Programmable Chip EE8205: Embedded Computer Systems NIOS-II SoPC: PART-II 1 Introduction This lab has been constructed to introduce the development of dedicated

More information

QUARTUS II Altera Corporation

QUARTUS II Altera Corporation QUARTUS II Quartus II Design Flow Design Entry Timing Constraints Synthesis Placement and Routing Timing, Area, Power Optimization Timing and Power Analyzer Optimized Design 2 Can I still use a Processor?

More information

Introduction to the Altera SOPC Builder Using Verilog Design

Introduction to the Altera SOPC Builder Using Verilog Design Introduction to the Altera SOPC Builder Using Verilog Design This tutorial presents an introduction to Altera s SOPC Builder software, which is used to implement a system that uses the Nios II processor

More information

SOPC LAB1. I. Introduction. II. Lab contents. 4-bit count up counter. Advanced VLSI Due Wednesday, 01/08/2003

SOPC LAB1. I. Introduction. II. Lab contents. 4-bit count up counter. Advanced VLSI Due Wednesday, 01/08/2003 SOPC LAB1 I. Introduction The purpose of this lab is to familiarize you with all the items in the kit. This tutorial tells you how to develop FPGA system in Quartus II. You are ready to begin using the

More information

University of Florida EEL 3701 Dr. Eric M. Schwartz Department of Electrical & Computer Engineering Revision 0 12-Jun-16

University of Florida EEL 3701 Dr. Eric M. Schwartz Department of Electrical & Computer Engineering Revision 0 12-Jun-16 Page 1/14 Quartus Tutorial with Basic Graphical Gate Entry and Simulation Example Problem Given the logic equation Y = A*/B + /C, implement this equation using a two input AND gate, a two input OR gate

More information

Chapter 2 Getting Hands on Altera Quartus II Software

Chapter 2 Getting Hands on Altera Quartus II Software Chapter 2 Getting Hands on Altera Quartus II Software Contents 2.1 Installation of Software... 20 2.2 Setting Up of License... 21 2.3 Creation of First Embedded System Project... 22 2.4 Project Building

More information

Tutorial on Quartus II Introduction Using Verilog Code

Tutorial on Quartus II Introduction Using Verilog Code Tutorial on Quartus II Introduction Using Verilog Code (Version 15) 1 Introduction This tutorial presents an introduction to the Quartus II CAD system. It gives a general overview of a typical CAD flow

More information

Introduction to the Altera SOPC Builder Using Verilog Designs. 1 Introduction

Introduction to the Altera SOPC Builder Using Verilog Designs. 1 Introduction Introduction to the Altera SOPC Builder Using Verilog Designs 1 Introduction This tutorial presents an introduction to Altera s SOPC Builder software, which is used to implement a system that uses the

More information

Laboratory Exercise 3 Comparative Analysis of Hardware and Emulation Forms of Signed 32-Bit Multiplication

Laboratory Exercise 3 Comparative Analysis of Hardware and Emulation Forms of Signed 32-Bit Multiplication Laboratory Exercise 3 Comparative Analysis of Hardware and Emulation Forms of Signed 32-Bit Multiplication Introduction All processors offer some form of instructions to add, subtract, and manipulate data.

More information

Tutorial on Quartus II Introduction Using Schematic Designs

Tutorial on Quartus II Introduction Using Schematic Designs Tutorial on Quartus II Introduction Using Schematic Designs (Version 15) 1 Introduction This tutorial presents an introduction to the Quartus II CAD system. It gives a general overview of a typical CAD

More information

EMT1250 LABORATORY EXPERIMENT. EXPERIMENT # 7: VHDL and DE2 Board. Name: Date:

EMT1250 LABORATORY EXPERIMENT. EXPERIMENT # 7: VHDL and DE2 Board. Name: Date: EXPERIMENT # 7: VHDL and DE2 Board Name: Date: Equipment/Parts Needed: Quartus II R Web Edition V9.1 SP2 software by Altera Corporation USB drive to save your files Objective: Learn how to create and modify

More information

UNIVERSITY OF CALIFORNIA, DAVIS Department of Electrical and Computer Engineering. EEC180A DIGITAL SYSTEMS I Winter 2015

UNIVERSITY OF CALIFORNIA, DAVIS Department of Electrical and Computer Engineering. EEC180A DIGITAL SYSTEMS I Winter 2015 UNIVERSITY OF CALIFORNIA, DAVIS Department of Electrical and Computer Engineering EEC180A DIGITAL SYSTEMS I Winter 2015 LAB 1: Introduction to Quartus II Schematic Capture and ModelSim Simulation This

More information

EMT1250 LABORATORY EXPERIMENT. EXPERIMENT # 6: Quartus II Tutorial and Practice. Name: Date:

EMT1250 LABORATORY EXPERIMENT. EXPERIMENT # 6: Quartus II Tutorial and Practice. Name: Date: EXPERIMENT # 6: Quartus II Tutorial and Practice Name: Date: Equipment/Parts Needed: Quartus II R Web Edition V9.1 SP2 software by Altera Corporation USB drive to save your files Objective: Learn how to

More information

Tutorial for Altera DE1 and Quartus II

Tutorial for Altera DE1 and Quartus II Tutorial for Altera DE1 and Quartus II Qin-Zhong Ye December, 2013 This tutorial teaches you the basic steps to use Quartus II version 13.0 to program Altera s FPGA, Cyclone II EP2C20 on the Development

More information

ECE 3610 Microprocessing Systems Lab #1 Verilog Design of the TOC Using Quartus II

ECE 3610 Microprocessing Systems Lab #1 Verilog Design of the TOC Using Quartus II ECE 3610 Microprocessing Systems Lab #1 Verilog Design of the TOC Using Quartus II This lab manual presents an introduction to the Quartus II Computer Aided Design (CAD) system. This manual gives step-by-step

More information

Contents. Appendix B HDL Entry Tutorial 2 Page 1 of 14

Contents. Appendix B HDL Entry Tutorial 2 Page 1 of 14 Appendix B HDL Entry Tutorial 2 Page 1 of 14 Contents Appendix B HDL Entry Tutorial 2...2 B.1 Getting Started...2 B.1.1 Preparing a Folder for the Project...2 B.1.2 Starting Quartus II...2 B.1.3 Creating

More information

Debugging Nios II Systems with the SignalTap II Logic Analyzer

Debugging Nios II Systems with the SignalTap II Logic Analyzer Debugging Nios II Systems with the SignalTap II Logic Analyzer May 2007, ver. 1.0 Application Note 446 Introduction As FPGA system designs become more sophisticated and system focused, with increasing

More information

Using ModelSim to Simulate Logic Circuits in VHDL Designs. 1 Introduction. For Quartus II 13.0

Using ModelSim to Simulate Logic Circuits in VHDL Designs. 1 Introduction. For Quartus II 13.0 Using ModelSim to Simulate Logic Circuits in VHDL Designs For Quartus II 13.0 1 Introduction This tutorial is a basic introduction to ModelSim, a Mentor Graphics simulation tool for logic circuits. We

More information

University of Florida EEL 3701 Dr. Eric M. Schwartz Madison Emas, TA Department of Electrical & Computer Engineering Revision 1 5-Jun-17

University of Florida EEL 3701 Dr. Eric M. Schwartz Madison Emas, TA Department of Electrical & Computer Engineering Revision 1 5-Jun-17 Page 1/14 Example Problem Given the logic equation Y = A*/B + /C, implement this equation using a two input AND gate, a two input OR gate and two inverters under the Quartus environment. Upon completion

More information

Introduction to the Altera Qsys System Integration Tool. 1 Introduction. For Quartus Prime 15.1

Introduction to the Altera Qsys System Integration Tool. 1 Introduction. For Quartus Prime 15.1 Introduction to the Altera Qsys System Integration Tool For Quartus Prime 15.1 1 Introduction This tutorial presents an introduction to Altera s Qsys system integration tool, which is used to design digital

More information

Quartus II Introduction Using Schematic Design

Quartus II Introduction Using Schematic Design Quartus II Introduction Using Schematic Design This tutorial presents an introduction to the Quartus R II CAD system. It gives a general overview of a typical CAD flow for designing circuits that are implemented

More information

TLL5000 Electronic System Design Base Module

TLL5000 Electronic System Design Base Module TLL5000 Electronic System Design Base Module The Learning Labs, Inc. Copyright 2007 Manual Revision 2007.12.28 1 Copyright 2007 The Learning Labs, Inc. Copyright Notice The Learning Labs, Inc. ( TLL )

More information

Disassemble the machine code present in any memory region. Single step through each assembly language instruction in the Nios II application.

Disassemble the machine code present in any memory region. Single step through each assembly language instruction in the Nios II application. Nios II Debug Client This tutorial presents an introduction to the Nios II Debug Client, which is used to compile, assemble, download and debug programs for Altera s Nios II processor. This tutorial presents

More information

Quartus II Introduction Using Verilog Design

Quartus II Introduction Using Verilog Design Quartus II Introduction Using Verilog Design This tutorial presents an introduction to the Quartus R II CAD system. It gives a general overview of a typical CAD flow for designing circuits that are implemented

More information

Embedded Systems. "System On Programmable Chip" Design Methodology using QuartusII and SOPC Builder tools. René Beuchat LAP - EPFL

Embedded Systems. System On Programmable Chip Design Methodology using QuartusII and SOPC Builder tools. René Beuchat LAP - EPFL Embedded Systems "System On Programmable Chip" Design Methodology using QuartusII and SOPC Builder tools René Beuchat LAP - EPFL rene.beuchat@epfl.ch 3 Tools suite Goals: to be able to design a programmable

More information

EE 231 Fall Lab 1: Introduction to Verilog HDL and Altera IDE

EE 231 Fall Lab 1: Introduction to Verilog HDL and Altera IDE Lab 1: Introduction to Verilog HDL and Altera IDE Introduction In this lab you will design simple circuits by programming the Field-Programmable Gate Array (FPGA). At the end of the lab you should be able

More information

CPE 200L LABORATORY 4: INTRODUCTION TO DE2 BOARD UNIVERSITY OF NEVADA, LAS VEGAS GOALS: BACKGROUND:

CPE 200L LABORATORY 4: INTRODUCTION TO DE2 BOARD UNIVERSITY OF NEVADA, LAS VEGAS GOALS: BACKGROUND: CPE 200L LABORATORY 4: INTRODUCTION TO DE2 BOARD DEPARTMENT OF ELECTRICAL AND COMPUTER ENGINEERING UNIVERSITY OF NEVADA, LAS VEGAS GOALS: Getting familiar with DE2 board installation, properties, usage.

More information

CSEE W4840 Embedded System Design Lab 1

CSEE W4840 Embedded System Design Lab 1 CSEE W4840 Embedded System Design Lab 1 Stephen A. Edwards Due January 31, 2008 Abstract Learn to use the Altera Quartus development envrionment and the DE2 boards by implementing a small hardware design

More information

ECSE-323 Digital System Design. Lab #1 Using the Altera Quartus II Software Fall 2008

ECSE-323 Digital System Design. Lab #1 Using the Altera Quartus II Software Fall 2008 1 ECSE-323 Digital System Design Lab #1 Using the Altera Quartus II Software Fall 2008 2 Introduction. In this lab you will learn the basics of the Altera Quartus II FPGA design software through following

More information

Making Qsys Components. 1 Introduction. For Quartus II 13.0

Making Qsys Components. 1 Introduction. For Quartus II 13.0 Making Qsys Components For Quartus II 13.0 1 Introduction The Altera Qsys tool allows a digital system to be designed by interconnecting selected Qsys components, such as processors, memory controllers,

More information

Introduction to VHDL Design on Quartus II and DE2 Board

Introduction to VHDL Design on Quartus II and DE2 Board ECP3116 Digital Computer Design Lab Experiment Duration: 3 hours Introduction to VHDL Design on Quartus II and DE2 Board Objective To learn how to create projects using Quartus II, design circuits and

More information

Quick Tutorial for Quartus II & ModelSim Altera

Quick Tutorial for Quartus II & ModelSim Altera Quick Tutorial for Quartus II & ModelSim Altera By Ziqiang Patrick Huang Hudson 213c Ziqiang.huang@duke.edu Download & Installation For Windows or Linux users : Download Quartus II Web Edition v13.0 (ModelSim

More information

Nios II Custom Instruction User Guide Preliminary Information

Nios II Custom Instruction User Guide Preliminary Information Nios II Custom Instruction User Guide Preliminary Information 101 Innovation Drive San Jose, CA 95134 (408) 544-7000 http://www.altera.com Copyright 2008 Altera Corporation. All rights reserved. Altera,

More information

QuartusII.doc 25/02/2005 Page 1

QuartusII.doc 25/02/2005 Page 1 1 Start Icon... 2 1.1 The Quartus II Screen... 2 2 Project creation... 2 3 Schematic entry... 5 3.1 Create new drawing... 5 3.2 Symbol selection... 7 3.3 Placement of an AND gate... 8 3.4 Deleting a symbol...

More information

University of Massachusetts Amherst Computer Systems Lab 1 (ECE 354) LAB 1 Reference Manual

University of Massachusetts Amherst Computer Systems Lab 1 (ECE 354) LAB 1 Reference Manual University of Massachusetts Amherst Computer Systems Lab 1 (ECE 354) LAB 1 Reference Manual Lab 1: Using NIOS II processor for code execution on FPGA Objectives: 1. Understand the typical design flow in

More information

TLL5000 Electronic System Design Base Module. Getting Started Guide, Ver 3.4

TLL5000 Electronic System Design Base Module. Getting Started Guide, Ver 3.4 TLL5000 Electronic System Design Base Module Getting Started Guide, Ver 3.4 COPYRIGHT NOTICE The Learning Labs, Inc. ( TLL ) All rights reserved, 2008 Reproduction in any form without permission is prohibited.

More information

DE2 Board & Quartus II Software

DE2 Board & Quartus II Software January 23, 2015 Contact and Office Hours Teaching Assistant (TA) Sergio Contreras Office Office Hours Email SEB 3259 Tuesday & Thursday 12:30-2:00 PM Wednesday 1:30-3:30 PM contre47@nevada.unlv.edu Syllabus

More information

CCE 3202 Advanced Digital System Design

CCE 3202 Advanced Digital System Design CCE 3202 Advanced Digital System Design Lab Exercise #2 This lab exercise will show you how to create, synthesize, and test a 3-bit ripple counter. A ripple counter is simply a circuit that outputs the

More information

Laboratory 4 Design a Muti-bit Counter

Laboratory 4 Design a Muti-bit Counter Laboratory 4 Design a Muti-bit Counter Background A. Approach I: Design 3-bit counter with and clear T-type flip-flop is shown in Figure 1. A T flip-flop is obtained from a JK flip-flop by tying the J

More information

1 Introduction 2. 2 Background 3. 3 Getting Started 4. 4 Starting a New Project 6. 5 Design Entry Using VHDL Code 13

1 Introduction 2. 2 Background 3. 3 Getting Started 4. 4 Starting a New Project 6. 5 Design Entry Using VHDL Code 13 Quartus Prime Introduction Using VHDL Designs For Quartus Prime 17.0 Contents 1 Introduction 2 2 Background 3 3 Getting Started 4 3.1 Quartus Prime Online Help................................................................................................

More information

CSEE W4840 Embedded System Design Lab 1

CSEE W4840 Embedded System Design Lab 1 CSEE W4840 Embedded System Design Lab 1 Stephen A. Edwards Due February 2, 2009 Abstract Learn to use the Altera Quartus development envrionment and the DE2 boards by implementing a small hardware design

More information

Chip Design with FPGA Design Tools

Chip Design with FPGA Design Tools Chip Design with FPGA Design Tools Intern: Supervisor: Antoine Vazquez Janusz Zalewski Florida Gulf Coast University Fort Myers, FL 33928 V1.9, August 28 th. Page 1 1. Introduction FPGA is abbreviation

More information

Altera Quartus II Tutorial ECE 552

Altera Quartus II Tutorial ECE 552 Altera Quartus II Tutorial ECE 552 Quartus II by Altera is a PLD Design Software which is suitable for high-density Field-Programmable Gate Array (FPGA) designs, low-cost FPGA designs, and Complex Programmable

More information

Multi-CPLD SUPPORTS ALTERA MAX7000S AND MAX3000A PLD DEVICES. Logic Design Environment. Maximum Digital Designs, LLC Presents:

Multi-CPLD SUPPORTS ALTERA MAX7000S AND MAX3000A PLD DEVICES. Logic Design Environment. Maximum Digital Designs, LLC Presents: Maximum Digital Designs, LLC Presents: Multi-CPLD Logic Design Environment SUPPORTS ALTERA MAX7000S AND MAX3000A PLD DEVICES (+ other pin compatible industry standard CPLDs/SPLDs) Table of Figures Figure

More information

Banks, Jasmine Elizabeth (2011) The Spartan 3E Tutorial 1 : Introduction to FPGA Programming, Version 1.0. [Tutorial Programme]

Banks, Jasmine Elizabeth (2011) The Spartan 3E Tutorial 1 : Introduction to FPGA Programming, Version 1.0. [Tutorial Programme] QUT Digital Repository: http://eprints.qut.edu.au/ This is the author version published as: This is the accepted version of this article. To be published as : This is the author s version published as:

More information

Xilinx Tutorial Basic Walk-through

Xilinx Tutorial Basic Walk-through Introduction to Digital Logic Design with FPGA s: Digital logic circuits form the basis of all digital electronic devices. FPGAs (Field Programmable Gate Array) are large programmable digital electronic

More information

Chapter 2: Hardware Design Flow Using Verilog in Quartus II

Chapter 2: Hardware Design Flow Using Verilog in Quartus II Chapter 2: Hardware Design Flow Using Verilog in Quartus II 2.1 Introduction to Quartus II System Development Software This chapter is an introduction to the Quartus II software that will be used for analysis

More information

Terasic DE0 Field Programmable Gate Array (FPGA) Development Board

Terasic DE0 Field Programmable Gate Array (FPGA) Development Board Lecture FPGA-01 DE0 FPGA Development Board and Quartus II 9.1 FPGA Design Software Terasic DE0 Field Programmable Gate Array (FPGA) Development Board 1 May 16, 2013 3 Layout and Components of DE0 May 16,

More information

SCHEMATIC DESIGN IN QUARTUS

SCHEMATIC DESIGN IN QUARTUS SCHEMATIC DESIGN IN QUARTUS Consider the design of a three-bit prime number detector. Figure 1 shows the block diagram and truth table. The inputs are binary signals A, B, and C while the output is binary

More information

Embedded Systems. "System On Programmable Chip" Design Methodology using QuartusII and SOPC Builder tools. René Beuchat LAP - EPFL

Embedded Systems. System On Programmable Chip Design Methodology using QuartusII and SOPC Builder tools. René Beuchat LAP - EPFL Embedded Systems "System On Programmable Chip" Design Methodology using QuartusII and SOPC Builder tools René Beuchat LAP - EPFL rene.beuchat@epfl.ch 3 Tools suite Goals: to be able to design a programmable

More information

CSEE W4840 Embedded System Design Lab 1

CSEE W4840 Embedded System Design Lab 1 CSEE W4840 Embedded System Design Lab 1 Stephen A. Edwards Due February 3, 2011 Abstract Learn to use the Altera Quartus development envrionment and the DE2 boards by implementing a small hardware design

More information

Quartus II Introduction Using Verilog Designs. 1 Introduction. For Quartus II 12.0

Quartus II Introduction Using Verilog Designs. 1 Introduction. For Quartus II 12.0 Quartus II Introduction Using Verilog Designs For Quartus II 12.0 1 Introduction This tutorial presents an introduction to the Quartus II CAD system. It gives a general overview of a typical CAD flow for

More information

UNIVERSITI MALAYSIA PERLIS

UNIVERSITI MALAYSIA PERLIS UNIVERSITI MALAYSIA PERLIS SCHOOL OF COMPUTER & COMMUNICATIONS ENGINEERING EKT 124 LABORATORY MODULE INTRODUCTION TO QUARTUS II DESIGN SOFTWARE : INTRODUCTION TO QUARTUS II DESIGN SOFTWARE OBJECTIVES To

More information

GPIO Application Note for Altera DE2 Development and Education Board

GPIO Application Note for Altera DE2 Development and Education Board GPIO Application Note for Altera DE2 Development and Education Board Robert Miller ECE 492 University of Alberta 21 March, 2013 Robert Miller email: rnmiller@ualberta.ca University of Alberta 1 GPIO Application

More information

Exercise 1 In this exercise you will review the DSSS modem design using the Quartus II software.

Exercise 1 In this exercise you will review the DSSS modem design using the Quartus II software. White Paper DSSS Modem Lab Background The direct sequence spread spectrum (DSSS) digital modem reference design is a hardware design that has been optimized for the Altera APEX DSP development board (starter

More information

8051 Intermidiate Development Board. Product Manual. Contents. 1) Overview 2) Features 3) Using the board 4) Troubleshooting and getting help

8051 Intermidiate Development Board. Product Manual. Contents. 1) Overview 2) Features 3) Using the board 4) Troubleshooting and getting help 8051 Intermidiate Development Board Product Manual Contents 1) Overview 2) Features 3) Using the board 4) Troubleshooting and getting help 1. Overview 2. Features The board is built on a high quality FR-4(1.6

More information

FPGA Introductory Tutorial: Part 1

FPGA Introductory Tutorial: Part 1 FPGA Introductory Tutorial: Part 1 This tutorial is designed to assist in learning the basics of the Altera Quartus II v9.0 software. Part 1 of the tutorial will cover the basics of creating a Project,

More information

and 32 bit for 32 bit. If you don t pay attention to this, there will be unexpected behavior in the ISE software and thing may not work properly!

and 32 bit for 32 bit. If you don t pay attention to this, there will be unexpected behavior in the ISE software and thing may not work properly! This tutorial will show you how to: Part I: Set up a new project in ISE 14.7 Part II: Implement a function using Schematics Part III: Simulate the schematic circuit using ISim Part IV: Constraint, Synthesize,

More information

Using ModelSim to Simulate Logic Circuits for Altera FPGA Devices

Using ModelSim to Simulate Logic Circuits for Altera FPGA Devices Using ModelSim to Simulate Logic Circuits for Altera FPGA Devices This tutorial is a basic introduction to ModelSim, a Mentor Graphics simulation tool for logic circuits. We show how to perform functional

More information

CSE P567 - Winter 2010 Lab 1 Introduction to FGPA CAD Tools

CSE P567 - Winter 2010 Lab 1 Introduction to FGPA CAD Tools CSE P567 - Winter 2010 Lab 1 Introduction to FGPA CAD Tools This is a tutorial introduction to the process of designing circuits using a set of modern design tools. While the tools we will be using (Altera

More information

ECE-6170 Embedded Systems Laboratory Exercise 3

ECE-6170 Embedded Systems Laboratory Exercise 3 ECE-6170 Embedded Systems Laboratory Exercise 3 The purpose of this exercise is to learn how to connect simple input and output devices to an FPGA chip and use the Nios II processor to interface with parallel

More information

The development board used in this class is ALTERA s DE The board provides the following hardware:

The development board used in this class is ALTERA s DE The board provides the following hardware: Lab 1 The goal of this lab is to get familiar with the mechanics of designing digital systems using VHDL and ALTERA s FPGAs. The development board used in this class is ALTERA s DE2-115. The board provides

More information

Simulating Nios II Embedded Processor Designs

Simulating Nios II Embedded Processor Designs Simulating Nios II Embedded Processor Designs May 2004, ver.1.0 Application Note 351 Introduction The increasing pressure to deliver robust products to market in a timely manner has amplified the importance

More information

Laboratory Exercise 8

Laboratory Exercise 8 Laboratory Exercise 8 Memory Blocks In computer systems it is necessary to provide a substantial amount of memory. If a system is implemented using FPGA technology it is possible to provide some amount

More information

HyperBus Memory Controller (HBMC) Tutorial

HyperBus Memory Controller (HBMC) Tutorial Synaptic Labs' HyperBus Memory Controller (HBMC) Tutorial T005C: A Qsys based Nios II Reference design with a simple HyperFlash test device using S/Labs' HBMC IP and S/Labs' Memory Region Mapper IP This

More information

Laboratory 4 Design a Muti-bit Counter and Programming a FPGA

Laboratory 4 Design a Muti-bit Counter and Programming a FPGA Laboratory 4 Design a Muti-bit Counter and Programming a FPGA For your report: The problem written in English The flowchart or function table to solve the problem if it is necessary The design entry included

More information

Practical Hardware Debugging: Quick Notes On How to Simulate Altera s Nios II Multiprocessor Systems Using Mentor Graphics ModelSim

Practical Hardware Debugging: Quick Notes On How to Simulate Altera s Nios II Multiprocessor Systems Using Mentor Graphics ModelSim Practical Hardware Debugging: Quick Notes On How to Simulate Altera s Nios II Multiprocessor Systems Using Mentor Graphics ModelSim Ray Duran Staff Design Specialist FAE, Altera Corporation 408-544-7937

More information

Copyright 2011 R.S.R. Electronics, Inc. All rights reserved. 04/11. Ver. 1.0web

Copyright 2011 R.S.R. Electronics, Inc. All rights reserved. 04/11. Ver. 1.0web For XILINX WebPack Copyright 2011 R.S.R. Electronics, Inc. All rights reserved. 04/11 Ver. 1.0web 1 Table of Contents 1.0 INTRODUCTION...3 2.0 GENERAL DESCRIPTION...5 3.0 BRIEF DESCRIPTION Of PLDT-3 BOARD...6

More information

USB Debug Adapter. Power USB DEBUG ADAPTER. Silicon Laboratories. Stop. Run. Figure 1. Hardware Setup using a USB Debug Adapter

USB Debug Adapter. Power USB DEBUG ADAPTER. Silicon Laboratories. Stop. Run. Figure 1. Hardware Setup using a USB Debug Adapter C8051F38X DEVELOPMENT KIT USER S GUIDE 1. Kit Contents The C8051F38x Development Kit contains the following items: C8051F380 Target Board C8051Fxxx Development Kit Quick-start Guide Silicon Laboratories

More information

ECEN 449: Microprocessor System Design Department of Electrical and Computer Engineering Texas A&M University

ECEN 449: Microprocessor System Design Department of Electrical and Computer Engineering Texas A&M University ECEN 449: Microprocessor System Design Department of Electrical and Computer Engineering Texas A&M University Prof. Sunil P Khatri (Lab exercise created and tested by Ramu Endluri, He Zhou, Andrew Douglass

More information

Using Synplify Pro, ISE and ModelSim

Using Synplify Pro, ISE and ModelSim Using Synplify Pro, ISE and ModelSim VLSI Systems on Chip ET4 351 Rene van Leuken Huib Lincklaen Arriëns Rev. 1.2 The EDA programs that will be used are: For RTL synthesis: Synplicity Synplify Pro For

More information

SKP16C26 Tutorial 1 Software Development Process using HEW. Renesas Technology America Inc.

SKP16C26 Tutorial 1 Software Development Process using HEW. Renesas Technology America Inc. SKP16C26 Tutorial 1 Software Development Process using HEW Renesas Technology America Inc. 1 Overview The following tutorial is a brief introduction on how to develop and debug programs using HEW (Highperformance

More information

Lab 6: Integrated the Decoder with Muti-bit Counter and Programming a FPGA

Lab 6: Integrated the Decoder with Muti-bit Counter and Programming a FPGA Lab 6: Integrated the Decoder with Muti-bit Counter and Programming a FPGA For your report: The problem written in English The flowchart or function table to solve the problem if it is necessary The design

More information

Name EGR 2131 Lab #6 Number Representation and Arithmetic Circuits

Name EGR 2131 Lab #6 Number Representation and Arithmetic Circuits Name EGR 2131 Lab #6 Number Representation and Arithmetic Circuits Equipment and Components Quartus software and Altera DE2-115 board PART 1: Number Representation in Microsoft Calculator. First, let s

More information

Creating projects with Nios II for Altera De2i-150. By Trace Stewart CPE 409

Creating projects with Nios II for Altera De2i-150. By Trace Stewart CPE 409 Creating projects with Nios II for Altera De2i-150 By Trace Stewart CPE 409 CONTENTS Chapter 1 Hardware Design... 1 1.1 Required Features... 1 1.2 Creation of Hardware Design... 1 Chapter 2 Programming

More information

Getting Started with STK200 Dragon

Getting Started with STK200 Dragon Getting Started with STK200 Dragon Introduction This guide is designed to get you up and running with main software and hardware. As you work through it, there could be lots of details you do not understand,

More information

2 nd Year Laboratory. Experiment: FPGA Design with Verilog. Department of Electrical & Electronic Engineering. Imperial College London.

2 nd Year Laboratory. Experiment: FPGA Design with Verilog. Department of Electrical & Electronic Engineering. Imperial College London. Department of Electrical & Electronic Engineering 2 nd Year Laboratory Experiment: FPGA Design with Verilog Objectives By the end of this experiment, you should know: How to design digital circuits using

More information

Chapter 2 ICB Architecture Chapter 3 Board Components GPIO Interface RS-232 Interface RS-485 Interface...

Chapter 2 ICB Architecture Chapter 3 Board Components GPIO Interface RS-232 Interface RS-485 Interface... 1 CONTENTS Chapter 1 Introduction... 3 1.1 Features...3 1.2 About the Kit...4 1.3 Getting Help...5 Chapter 2 ICB Architecture... 6 2.1 Layout and Components...6 2.2 Block Diagram of the ICB...7 Chapter

More information

Laboratory Exercise 5

Laboratory Exercise 5 Laboratory Exercise 5 Bus Communication The purpose of this exercise is to learn how to communicate using a bus. In the designs generated by using Altera s SOPC Builder, the Nios II processor connects

More information

FPGA4U HowTo. 1 Introduction. 2 Minimum requirements. Recommended system. Operating systems

FPGA4U HowTo. 1 Introduction. 2 Minimum requirements. Recommended system. Operating systems FPGA4U HowTo 1 Introduction This document briefly describes how to install Altera s Softwares on your own personal computer, for use with our mini project. At the end of this tutorial, we expect that you

More information

Altera EP4CE6 Mini Board. Hardware User's Guide

Altera EP4CE6 Mini Board. Hardware User's Guide Altera Hardware User's Guide 1. Introduction Thank you for choosing the! is a compact FPGA board which is designed based on device. It's a low-cost and easy-to-use platform for learning Altera's Cyclone

More information

University Program 3 Kit

University Program 3 Kit University Program 3 Kit VLSI Tutorial : LEDs & Push Buttons Version 02.00 System Level Solutions Inc. (USA) 14702 White Cloud Ct. Morgan Hill, CA 95037 2 System Level Solutions Copyright 2003-2005 System

More information

NIOS Character. Last updated 7/16/18

NIOS Character. Last updated 7/16/18 NIOS Character Last updated 7/16/18 Character Buffer Block Diagram CLK RST Clock Reset_bar CLK RST PLL 25MHz* CPU Onchip Memory JTAG UART Timer System ID S M S S S S S M S Character Buffer DMA Dual Port

More information

NOTE: This tutorial contains many large illustrations. Page breaks have been added to keep images on the same page as the step that they represent.

NOTE: This tutorial contains many large illustrations. Page breaks have been added to keep images on the same page as the step that they represent. CSE 352 Tutorial # 4 Synthesizing onto an FPGA Objectives This tutorial will walk you through the steps of implementing a design made in Active-HDL onto the Altera Cyclone II FPGA NOTE: This tutorial contains

More information

Nios Embedded Processor Development Board

Nios Embedded Processor Development Board Nios Embedded Processor Development Board July 2003, ver. 2.2 Data Sheet Introduction Development Board Features Functional Overview This data sheet describes the features and functionality of the Nios

More information

Lab 2: Introduction to Verilog HDL and Quartus

Lab 2: Introduction to Verilog HDL and Quartus Lab 2: Introduction to Verilog HDL and Quartus September 16, 2008 In the previous lab you designed simple circuits using discrete chips. In this lab you will do the same but by programming the CPLD. At

More information

Chapter 3. HDL Editor. Introduction. Figure 3-1. HDL Editor Welcome Screen. Introduction 3-1

Chapter 3. HDL Editor. Introduction. Figure 3-1. HDL Editor Welcome Screen. Introduction 3-1 Introduction 3-1 Chapter 3 HDL Editor Introduction The HDL editor is used for entering and editing designs expressed by ABEL and VHDL programs statements. The HDL editor is invoked by clicking on the HDL

More information

Verilog Design Entry, Synthesis, and Behavioral Simulation

Verilog Design Entry, Synthesis, and Behavioral Simulation ------------------------------------------------------------- PURPOSE - This lab will present a brief overview of a typical design flow and then will start to walk you through some typical tasks and familiarize

More information

CSC / EE Digital Systems Design. Summer Sample Project Proposal 01

CSC / EE Digital Systems Design. Summer Sample Project Proposal 01 THE CATHOLIC UNIVERSITY OF AMERICA SCHOOL OF ENGINEERING DEPARTMENT OF ELECTRICAL ENGINEERING AND COMPUTER SCIENCE CSC / EE 519-01 Digital Systems Design Summer 2013 Sample Project Proposal 01 Thursday

More information

Error Correction Code (ALTECC_ENCODER and ALTECC_DECODER) Megafunctions User Guide

Error Correction Code (ALTECC_ENCODER and ALTECC_DECODER) Megafunctions User Guide Error Correction Code (ALTECC_ENCODER and ALTECC_DECODER) Megafunctions User Guide 11 Innovation Drive San Jose, CA 95134 www.altera.com Software Version 8. Document Version: 2. Document Date: June 28

More information

ECE383: Microcomputers Lab 6 Basic and Finite State Machine LED and Switch I/O Programming

ECE383: Microcomputers Lab 6 Basic and Finite State Machine LED and Switch I/O Programming ECE383: Microcomputers Lab 6 Basic and Finite State Machine LED and Switch I/O Programming Goals: The goals of this lab are to continue to instruct students in a PIC24-based hardware system using PIO ports

More information

Lab 0 Introduction to the MSP430F5529 Launchpad-based Lab Board and Code Composer Studio

Lab 0 Introduction to the MSP430F5529 Launchpad-based Lab Board and Code Composer Studio ECE2049 Embedded Computing in Engineering Design Lab 0 Introduction to the MSP430F5529 Launchpad-based Lab Board and Code Composer Studio In this lab, you will be introduced to the Code Composer Studio

More information

Using XILINX WebPACK Software to Create CPLD Designs

Using XILINX WebPACK Software to Create CPLD Designs Introduction to WebPACK Using XILINX WebPACK Software to Create CPLD Designs RELEASE DATE: 10/24/1999 All XS-prefix product designations are trademarks of XESS Corp. All XC-prefix product designations

More information

IMPLEMENTING COUNTERS

IMPLEMENTING COUNTERS EECS:6660:0xxField Programmable Gate Arrays s11l1_fpga.fm - 1 Lab Assignment #1 Due Thursday, March 31 2011 IMPLEMENTING COUNTERS 1. OBJECTIVES - learning the VHDL implementation process using Language

More information

University of California, Davis Department of Electrical and Computer Engineering. Lab 1: Implementing Combinational Logic in the MAX10 FPGA

University of California, Davis Department of Electrical and Computer Engineering. Lab 1: Implementing Combinational Logic in the MAX10 FPGA 1 University of California, Davis Department of Electrical and Computer Engineering EEC180B DIGITAL SYSTEMS II Winter Quarter 2018 Lab 1: Implementing Combinational Logic in the MAX10 FPGA Objective: This

More information

ECEN 449: Microprocessor System Design Department of Electrical and Computer Engineering Texas A&M University

ECEN 449: Microprocessor System Design Department of Electrical and Computer Engineering Texas A&M University ECEN 449: Microprocessor System Design Department of Electrical and Computer Engineering Texas A&M University Prof. Sunil Khatri TA: Monther Abusultan (Lab exercises created by A. Targhetta / P. Gratz)

More information