저는 DAC의 sin 값과 상관시키기 위해 16 비트 값을 출력하는 카운터, 튜닝 워드 및 사인 LUT가있는 매우 기본적인 DDS 코어 (?)를 가지고 있습니다. Nexys 4 DDR board을 사용하고 있으며 DAC은 FPGA 전용으로 설계된 주변 장치 모듈입니다. 16 비트 DAC인데 왜 6 핀을 가지고 있으며 그 중 4 핀만 데이터 용입니까? 그리고 DAC가 성공적으로 변환을 수행하려면 16 비트 생성 sin 값에서 DAC로 이진 정보를 어떻게 보내야합니까? 여기FPGA의 디지털 출력을 DAC에 인터페이스하는 방법은 무엇입니까?
는 (I 제대로 DAC와 상호 작용하는 방법을 알고 나면 나는 그것의 기초, 용서해주십시오 실수를 알고, 내가 그들을 밖으로 작동합니다!) 내 코드이 DAC 보드
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