2016-07-13 14 views
0

私は現在、非常に基本的なDDSコア(?)にカウンタ、チューニングワード、正弦LUTを持っており、DACのsin値と相関する16ビットの値を出力します。私はNexys 4 DDR boardを使用しています。私のDACは、FPGA専用に設計された周辺モジュールです。 16ビットDACの場合、なぜ6本のピンがありますか?そのうちの4本だけがデータ用です。そして、DACが成功した変換を行うためには、16ビットのsin値を生成してバイナリ情報をDACに送信する必要がありますか?ここでFPGAのデジタル出力を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 

答えて

4

このDACボードのデータシートそれはアナログ・デバイセズAD5541 DACを使用して書かれています:

http://www.analog.com/en/products/digital-to-analog-converters/da-converters/ad5541a.html

製品ページには、DACのデータシートへのリンクがあります。このデータシートから、私は以下の情報を引き出しました:このことはSPIインタフェースを使用しています。 A ライン(CS)を選択し、データを送信するDACを示すためにローにします。 A データ各単一ビットが提示されるライン(DIN)。そしてクロックライン(SCLK)は、DACをデータラインからビットがローからハイになる瞬間に読み出すようにします。

ここタイミング図AD5541 SPI timing

LDAC入力だ、ローに引き下げた場合、シリアル・データ・レジスタのすべての更新に出力するようにDACを伝えます。


エレクトロニクスを開発しているときに、ドキュメントを入手して読むことが重要なのです。私はさまざまなプロジェクトですでにいくつかのSPI DACを使用していますが、ADのものもあります。しかし、AD5541のものではありません。しかし、上記の回答全体は、関連するデータシートを数分間読んで得た情報を使用していました。 FPGAをプログラミングすることがあなたのものであれば、あなたは絶対にそのようなスキルを培わなければなりません。

関連する問題