Ich habe derzeit einen sehr, sehr grundlegenden DDS-Kern (?) Mit einem Zähler, Tuning-Wort und Sinus-LUT, der 16 Bit-Werte ausgibt, um mit einem Sinus-Wert für einen DAC zu korrelieren. Ich benutze die Nexys 4 DDR board und meine DAC ist ein Peripheriemodul, das ausschließlich für FPGAs entwickelt wurde. Wenn es ein 16-Bit-DAC ist, warum hat es 6 Pins, von denen nur 4 für Daten sind? Und wie sollte ich die binären Informationen von meinem 16-Bit erzeugten Sin-Wert an den DAC senden, damit der DAC eine erfolgreiche Konvertierung durchführen kann?Wie wird der digitale Ausgang von FPGA an einen DAC angeschlossen?
Hier ist mein Code (ich seine rudimentären wissen, bitte vergib die Fehler, ich werde sie trainieren, wenn ich richtig wissen, wie mit dem DAC interact!)
module sin_LUT(
input clk,
input [0:3] M,
input rst,
output reg [16:0] data_out,
output reg [32:0]test
);
//counter
//declaring constant
integer i;
integer int_M;
always @(M)
int_M = M;
always @(posedge(clk))
begin
if (rst)
i <= 0;
else if (i >= 29)
i <= 0;
else
i <= i + M;
end
//testing purposes
always @(i)
test = i;
//sine LUT
always @(i) begin
case (i)
0: data_out = 16'D32768;
1: data_out = 16'D39812;
2: data_out = 16'D46526;
3: data_out = 16'D52598;
4: data_out = 16'D57742;
5: data_out = 16'D61718;
6: data_out = 16'D64341;
7: data_out = 16'D65487;
8: data_out = 16'D65103;
9: data_out = 16'D63208;
10: data_out = 16'D59889;
11: data_out = 16'D55302;
12: data_out = 16'D49661;
13: data_out = 16'D43230;
14: data_out = 16'D36310;
15: data_out = 16'D29225;
16: data_out = 16'D22305;
17: data_out = 16'D15874;
18: data_out = 16'D10233;
19: data_out = 16'D5646;
20: data_out = 16'D2327;
21: data_out = 16'D432;
22: data_out = 16'D48;
23: data_out = 16'D1194;
24: data_out = 16'D3817;
25: data_out = 16'D7793;
26: data_out = 16'D12937;
27: data_out = 16'D19009;
28: data_out = 16'D25723;
29: data_out = 16'D32768;
default: data_out = 16'b0000111100001111;
endcase
end
endmodule