Skip to content
This repository has been archived by the owner on Aug 23, 2021. It is now read-only.

Full system integration #6

Merged
merged 44 commits into from
Apr 18, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
1e0413b
finished search
jiulingz Mar 25, 2021
3e15a87
finished polyphony
jiulingz Mar 29, 2021
ba7c3c3
quartus compiles
jiulingz Mar 29, 2021
eb2cdf5
initial code complete
Apr 2, 2021
f16b293
trying to compile
Apr 2, 2021
ec6b4ef
Merge branch 'main' into dac
Apr 2, 2021
8087d1f
corrected syntax errors for compilation, but cannot compile as progre…
Apr 2, 2021
c75d1eb
resolving merge conflict
Apr 2, 2021
47d997c
merge dispatcher
jiulingz Apr 4, 2021
342ae1e
change project structure
jiulingz Apr 4, 2021
fc38f5a
output only
jiulingz Apr 4, 2021
7313ece
uart finished
jiulingz Apr 5, 2021
89e367c
finished midi decoder and parameter control
jiulingz Apr 5, 2021
03f349e
add audio sampling to dac_driver
jiulingz Apr 5, 2021
65f5709
refactor lfsr
jiulingz Apr 5, 2021
1ef98c1
finished dispatcher
jiulingz Apr 5, 2021
97b085c
refactor tests
jiulingz Apr 5, 2021
0d36090
finished mixer
jiulingz Apr 5, 2021
891f99b
small fix
jiulingz Apr 5, 2021
67d51f0
remove program change from MIDI handler
jiulingz Apr 7, 2021
cfb9092
finished pipeline
jiulingz Apr 7, 2021
a8f900e
ignore .hex file
jiulingz Apr 7, 2021
5df908d
fix GPIO assignment
jiulingz Apr 7, 2021
57c1d3c
minor fix
jiulingz Apr 7, 2021
4869b84
fix period table
jiulingz Apr 7, 2021
d89da8b
implemented more features, added TODO
jiulingz Apr 7, 2021
0f2f5d5
fix TODO comment
jiulingz Apr 7, 2021
1e5df8b
change uart_rx GPIO pin number
jiulingz Apr 13, 2021
3200c84
fix dac_driver
jiulingz Apr 13, 2021
acc2566
fix period table generation
jiulingz Apr 13, 2021
896b8d2
add debug information for midi
jiulingz Apr 13, 2021
8f51d31
fix uart bit order
jiulingz Apr 13, 2021
513754d
fix midi decoder
jiulingz Apr 13, 2021
b52298f
increase uart debounce
jiulingz Apr 14, 2021
d01d13b
fix midi decoder
jiulingz Apr 14, 2021
2ee23b4
add polyphony debug info
jiulingz Apr 14, 2021
d120fd4
add duty cycle param control
jiulingz Apr 14, 2021
12218a3
fix oscillator
jiulingz Apr 14, 2021
9b0867f
fix polyphony
jiulingz Apr 14, 2021
f941008
add volume indicator
jiulingz Apr 14, 2021
7cea100
set default parameters
jiulingz Apr 14, 2021
07fe266
add wave selection with switch
jiulingz Apr 14, 2021
55a1bd8
format
jiulingz Apr 14, 2021
1090be4
add timing file
jiulingz Apr 14, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
34 changes: 30 additions & 4 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,27 +1,53 @@
# Exclude all files, then include in only the required ones, or by hand
*

# Allow scripts
!scripts/
!scripts/*/

# Allow source directory
!src/
!src/*/
!src/device/
!src/device/submodules/
!src/includes/
!src/midi/
!src/dispatcher/
!src/pipeline/
!src/mixer/

!src/wvfm_osc/lut
!src/wvfm_osc/sv
!src/*/lut/

!src/*/tests/
!src/*/tests/simulation/
!src/*/tests/synthesis/

# Allow for gitignore files
!.gitignore

# Allow for readme files
!/README.md

# Allow for Makefile
!Makefile
!*.mk

# Allow for Verilog and System Verilog files
!*.sv
!*.v
!*.vh

# Allow for Altera IP files
!*.qip

# Allow for Matlab files
!*.m

# Allow for C++ and hex files
!*.cpp
!*.hex

# Allow for memory files
!*.vm

# Allow for project assignment and timing files
!*.qsf
!*.sdc
199 changes: 88 additions & 111 deletions DE2-115.qsf

Large diffs are not rendered by default.

1,219 changes: 0 additions & 1,219 deletions src/DE2-115.qsf

This file was deleted.

54 changes: 0 additions & 54 deletions src/Top.sv

This file was deleted.

119 changes: 119 additions & 0 deletions src/chip_interface.sv
Original file line number Diff line number Diff line change
@@ -0,0 +1,119 @@
`default_nettype none

`include "includes/config.vh"
`include "includes/midi.vh"

module ChipInterface (
// CLOCK
input logic CLOCK_50,
// LED
output logic [ 8:0] LEDG,
output logic [17:0] LEDR,
// KEY
input logic [ 3:0] KEY,
// SW
input logic [17:0] SW,
// SEG7
output logic [ 6:0] HEX7,
output logic [ 6:0] HEX6,
output logic [ 6:0] HEX5,
output logic [ 6:0] HEX4,
output logic [ 6:0] HEX3,
output logic [ 6:0] HEX2,
output logic [ 6:0] HEX1,
output logic [ 6:0] HEX0,
// GPIO
inout logic [35:0] GPIO
);

logic clock_50_000_000;
logic clock_16_934_400;
logic reset_l;
logic uart_rx;
logic [ CONFIG::BYTE_WIDTH-1:0] data_in;
logic data_in_ready;
logic i2s_bit_clock;
logic i2s_left_right_clock;
logic i2s_data;
logic [CONFIG::AUDIO_BIT_WIDTH-1:0] audio_out;
// debug display
logic [ 5:0][3:0] midi_info;
logic [ 5:0] midi_info_en;
logic [ 3:0] pipeline_info;
logic [ 17:0] wave_switch;

assign clock_50_000_000 = CLOCK_50;
assign reset_l = KEY[0];
assign wave_switch = SW;
assign uart_rx = GPIO[7];
assign GPIO[0] = i2s_bit_clock;
assign GPIO[1] = i2s_data;
assign GPIO[2] = i2s_left_right_clock;

AudioPLL audio_pll (
.ref_clk_clk (clock_50_000_000),
.ref_reset_reset (!reset_l),
.audio_clk_clk (clock_16_934_400),
.reset_source_reset()
);

UARTDriver #(
.BAUD_RATE(MIDI::BAUD_RATE)
) uart_driver (
.clock_50_000_000,
.uart_rx,
.reset_l,
.data_in,
.data_in_ready
);

conFFTi conffti (
.clock_50_000_000,
.reset_l,
.data_in,
.data_in_ready,
.wave_switch,
.audio_out,
// debug display
.midi_info,
.midi_info_en,
.pipeline_info
);

DACDriver dac_driver (
.clock_16_934_400,
.reset_l,
.audio_out,
.i2s_bit_clock,
.i2s_left_right_clock,
.i2s_data
);

SevenSegmentDriver seven_segment_driver (
.value ({8'b0, midi_info}),
.en ({2'b00, midi_info_en}),
.segment({HEX7, HEX6, HEX5, HEX4, HEX3, HEX2, HEX1, HEX0})
);

assign LEDG[3:0] = pipeline_info;

assign LEDR[0] = audio_out > 24'd0;
assign LEDR[1] = audio_out > 24'd932067;
assign LEDR[2] = audio_out > 24'd1864135;
assign LEDR[3] = audio_out > 24'd2796202;
assign LEDR[4] = audio_out > 24'd3728270;
assign LEDR[5] = audio_out > 24'd4660337;
assign LEDR[6] = audio_out > 24'd5592405;
assign LEDR[7] = audio_out > 24'd6524472;
assign LEDR[8] = audio_out > 24'd7456540;
assign LEDR[9] = audio_out > 24'd8388608;
assign LEDR[10] = audio_out > 24'd9320675;
assign LEDR[11] = audio_out > 24'd10252743;
assign LEDR[12] = audio_out > 24'd11184810;
assign LEDR[13] = audio_out > 24'd12116878;
assign LEDR[14] = audio_out > 24'd13048945;
assign LEDR[15] = audio_out > 24'd13981013;
assign LEDR[16] = audio_out > 24'd14913080;
assign LEDR[17] = audio_out > 24'd15845148;

endmodule : ChipInterface