-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathaltera_tx.v
122 lines (112 loc) · 2.93 KB
/
altera_tx.v
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
//deps: sampler.v, spi.v, controller.v, fifo.v, iq_mod.v, phase_accum.v, pll.v, mult.v, altera_mf.v
`default_nettype none
`define FIFO
module altera_tx(/*AUTOARG*/
// Outputs
MISO, DAC_OUT,
// Inputs
CLOCK_50, MOSI, SCK, SSEL
);
input CLOCK_50;
input MOSI, SCK, SSEL;
output MISO;
output [7:0] DAC_OUT;
wire [7:0] i_mul, q_mul;
wire [7:0] phase;
wire clk, rst, en;
wire [7:0] spi_data_out;
wire [7:0] spi_data_in;
wire spi_data_stb;
wire spi_tsx_start;
/*AUTOWIRE*/
wire fifo_empty; // From fifo of fifo.v
wire fifo_full; // From fifo of fifo.v
wire [7:0] fifo_data; // From fifo of fifo.v
wire [12:0] fifo_space_free; // From fifo of fifo.v
wire fifo_rd, fifo_wr;
wire [7:0] fifo_data_in;
wire [7:0] freq_data; // From controller of controller.v
wire freq_wr_divf; // From controller of controller.v
wire freq_wr_divr; // From controller of controller.v
assign en = 1;
fpll pll(
// Outputs
.rst (rst),
.clk (clk),
// Inputs
.clkin (CLOCK_50));
iq_mod modulator(
// Outputs
.dac_data (DAC_OUT[7:0]),
// Inputs
.clk (clk),
.rst (rst),
.phase (phase[7:0]),
.i_mul (i_mul[7:0]),
.q_mul (q_mul[7:0]));
phase_accum vco(
// Outputs
.phase (phase[7:0]),
// Inputs
.clk (clk),
.rst (rst),
.en (en),
.data (freq_data[7:0]),
.wr_divr (freq_wr_divr),
.wr_divf (freq_wr_divf));
spi spi(
// Outputs
.MISO (MISO),
.spi_data_out (spi_data_out[7:0]),
.spi_data_stb (spi_data_stb),
.spi_tsx_start(spi_tsx_start),
// Inputs
.clk (clk),
.rst (rst),
.SCK (SCK),
.MOSI (MOSI),
.SSEL (SSEL),
.spi_data_in (spi_data_in[7:0]));
controller controller(
// Outputs
.spi_c_data_out (spi_data_in[7:0]),
.freq_data (freq_data[7:0]),
.freq_wr_divr (freq_wr_divr),
.freq_wr_divf (freq_wr_divf),
// Inputs
.clk (clk),
.rst (rst),
.spi_c_data_in (spi_data_out[7:0]),
.spi_c_data_stb (spi_data_stb),
.spi_tsx_start (spi_tsx_start),
.fifo_space_free (fifo_space_free[12:0]),
/*AUTOINST*/
// Outputs
.fifo_data_in (fifo_data_in[7:0]),
.fifo_wr (fifo_wr),
// Inputs
.fifo_empty (fifo_empty),
.fifo_full (fifo_full));
fifo fifo(
// Outputs
.empty (fifo_empty),
.full (fifo_full),
.fifo_data (fifo_data[7:0]),
.fifo_space_free (fifo_space_free[12:0]),
// Inputs
.clk (clk),
.fifo_data_in (fifo_data_in[7:0]),
.rdreq (fifo_rd),
.rst (rst),
.wrreq (fifo_wr));
sampler sampler(
// Outputs
.fifo_rd (fifo_rd),
.sample_i (i_mul[7:0]),
.sample_q (q_mul[7:0]),
// Inputs
.clk (clk),
.rst (rst),
.fifo_empty (fifo_empty),
.fifo_data_out (fifo_data[7:0]));
endmodule