Verilog Design) and Dump Code Using Programmer. Test by Sliding Switches
Verilog Design) and Dump Code Using Programmer. Test by Sliding Switches
The aim of this project is to get familiarized with work with DE1-SoC that contains Altera Cyclone V
FPGA and ARM 9 processor. The project has 3 modules:
Module 1: The module introduces inputs and outputs that are on the DE1SoC. Using these a real time
clock is developed and used in Morse code communication.
Module 2: This deals with prompting the user to use ARM 9 HPS integrated with Cyclone V FPGA
as a multipurpose device using Assembly Level Programming on Altera Monitor Program 15.1. This
involves the effective use of interrupts and ARM Generic Interrupt Controller (GIC) where the HPS is
programmed as a Real Time Clock to display time in seconds and hundredth of a second, a counter
with constant speed, a Counter whose speed is decided by the user through KEYS[3:0].
Module 3: This deals with learning to communicate with HPS and FPGA fabric through AXI
(Advanced eXtensible Interface) bridge. It deals with generating an ARM execution file through
Quartus Prime EDS Suite 15.1 and operating LEDs on DE1-SoC.
Module 1
Objective
To learn how to connect simple input (switches) and output (LEDs, 7-segment displays)
devices to an FPGA chip and implement a circuit that uses these devices
To understand clocks in timed circuits and display timers using 7 segment displays
Procedure
Lab1
o
Part 1:
Create a Quartus file to link LEDs to Switches by assigning the LED vector
to the switch vector
Assign pins on board accordingly (follow Quartus II Introduction using
Verilog Design) and dump code using programmer. Test by sliding switches
Part 2:
Create a Quartus file to implement a 4 bit wide 2to1 mux
Assign switch 9 as the select s, and 7 through 4 as input Y and 3 through 0 as
input X and connect LEDs 3 through 0 as the output, while still probing LED
9 for input s
Make necessary pin assignments
Dump code using Programmer tool and test by sliding switches, observing
LEDs
Part 3:
Create a Quartus file to implement a 2 bit wide 3to1 mux
Assign switches 8 and 9 as select lines, and 5 through 0 as inputs U, V and W.
Also assign LEDs 0 and 1 as the output.
Make necessary pin assignments
Dump code using Programmer tool and test by sliding switches, observing
LEDs
Part 4:
Create a Quartus file to display using the 7 segment display
Write a VHDL entity to connect c1c0 to switches 0 and 1 and outputs of
decoder to HEX0 display (declared as a vector)
Lab5
o
Make pin assignments and dump code using programmer tool and test by
toggling switches 0 and 1
Part 5:
Include the entity given in Lab1_VHDL.pdf in D2L, in a new Quartus file
Connect switches 9 and 8 to inputs of the 3 instances of 2 bit wide 3 to 1
mux, and also connect switches 5 through 0 to each instance of the mux as
required to produce patterns as shown in the pdf mentioned above
Make necessary pin assignments and program the board using programmer
tool and test by toggling switches and observing LEDs
Part 6:
Using the entity developed in part 5, make a new Quartus file and change
switches 9 through 7 to select inputs
Make appropriate changes to pin planner and dump code using programmer
tool and test by switching 9 through 7 and observe 7 segment displays
Part 1:
Create a Quartus file to design a modulo k counter, with a VHDL file for an 8
bit counter to count with mod 20
Configure key0 as reset and key1 as manual clock, LEDs 7 through 0 as the
counter display and LED 9 as rollover
Make pin assignments, use programmer tool to dump code and then test
Part 2:
Using the basic modulo counter from part 1, interface three 7 segment
displays (HEX 2 through 0) and configure them to display as a three-digit
counter
Assign key0 as a reset to the counter and use the on board clock for all
Make pin assignments, use programmer tool to dump code and then test
Part 3:
Modify part 2 to display a real time clock by counting from 0 to 99
(hundredth of second) on HEX 1 and 0, 0 to 59 on HEX 3 and 2 and minutes
(0 to 59) on HEX 4 and 3
Use switches 0 through 7 to pre-set time and key0 as a reset
Make pin assignments, use programmer tool to dump code and then test
Part 4:
Using the timing knowledge accumulated in the above parts, we develop a
half second counter and use this to implement the Morse code
Switches 2 through 0 are to be configured to display A through H using an
LED. Also configure key0 as a reset
In lab5:
-
In lab 1:
Utilization for part 1: (Less than 1 %)
In lab5:
Fmax for part 1:
Lessons Learnt
-
Conclusion
Understood the working of switches, LEDs and HEX displays through exercises. Also understood the
working of timers and how to develop a real time clock and use it to communicate with Morse code.