summaryrefslogtreecommitdiff
path: root/part_3/ex13/ex13_top.v
blob: d73043a849afa1852476270bd9683b9bac4423ca (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
module ex13_top (
	CLOCK_50,
	DAC_SDI,
	DAC_CS,
	DAC_LD,
	DAC_SCK,
	PWM_OUT
);
	input CLOCK_50;
	output DAC_SDI,DAC_CS,DAC_SCK,DAC_LD,PWM_OUT;

	wire CLOCK_DIVIDED;
	wire [9:0] A,D;
	
	divider_5000 DIV0 (CLOCK_50, CLOCK_DIVIDED);
	
	counter_16 COUNT0 (
		.clock(CLOCK_50),
		.enable(CLOCK_DIVIDED),
		.reset(1'b1),
		.count(A[9:0])
	);
	
	ROM ROM0 (
		.address(A),
		.clock(CLOCK_DIVIDED),
		.q(D[9:0])
	);
	
	spi2dac SPI0 (
		.sysclk(CLOCK_50), 
		.data_in(D[9:0]), 
		.load(CLOCK_DIVIDED), 
		.dac_sdi(DAC_SDI), 
		.dac_cs(DAC_CS), 
		.dac_sck(DAC_SCK), 
		.dac_ld(DAC_LD)
	);
		
	pwm PWM0 (
		.clk(CLOCK_50), 
		.data_in(D[9:0]), 
		.load(CLOCK_DIVIDED), 
		.pwm_out(PWM_OUT)
	);
	
endmodule