guruguru123’s diary

かなり雑な作業日記です。

DDS,DAC用データ格納アドレス指定

DDSとADコンバータ用のデータをSerDes経由で受信を行い、SDRAMへ格納する際に、今までは0番地から書き込みしていたものを、アドレスを指定して書き込みができるように改良していく。

具体的には以下画像のようにRS232Cでアドレスを指定する。これはSDRAMからの読み出しの際のアドレス指定の様子だが、書き込みも同様である。reqwおよびreqrのコマンドを受付ると始めに書き込み、読み出し開始アドレスを聞かれる。これが終わるとreqwの場合はSerDesの受信をデータが終わるまで受信を行う。reqrの場合は読み出し終了アドレスを聞かれて、入力が終わると読み出しが開始される。

f:id:guruguru123:20171226162851p:plain

このときbankを2bit、rowを12bit、colを6bitで指定する。それぞれbit数がわかっているため、以下のように文字列を出力するようにした。アドレス幅はgenericで指定するようにしていく。

f:id:guruguru123:20171226165746p:plain

アドレス指定する機構ができたため、SerDes受信だけでなくユーザが単発のデータをSDRAMに書き込みするコマンドもできそうだ。

これに追加して、SDRAMに書き込みすることなくDDS、DACをパラメータを直接書き込みするコマンドも作っていく。

 

前回のところで書き忘れたが、文字列を送信する際には文字列に付随してカウンタにその文字数を指定する必要がある(n.num_dがそのカウンタ)。

f:id:guruguru123:20171226165556p:plain