前回に続いてBeMicro Max10をCPU無しで使います。NCOの出力にDACを繋いでオシロで波形を確認します。
小さなブレッドボードにR-2Rラダー型DACを組み込んで追加しました。ブレッドボードを固定している治具は3Dプリンター製です。電子工作に3Dプリンターは大活躍です。
QsysのNCOの設定を変更しました。
ピン配置にJ3コネクタのうち12本を追加します。
HDLの記述にもJ3コネクタのうち12本を追加します。
module ledtest (
RST_N,
CLK,
LED1, LED2, LED3, LED4, LED5, LED6, LED7, LED8,
DAC1, DAC2, DAC3, DAC4, DAC5, DAC6, DAC7, DAC8, DAC9, DAC10, DAC11, DAC12,
SCLK, CS_N, MOSI, MISO
);
input CLK, RST_N;
output LED1, LED2, LED3, LED4, LED5, LED6, LED7, LED8;
output DAC1, DAC2, DAC3, DAC4, DAC5, DAC6, DAC7, DAC8, DAC9, DAC10, DAC11, DAC12;
input SCLK, CS_N, MOSI;
output MISO;
wire [15:0] nco_out;
wire [15:0] dac_in;
wire [31:0] nco_in;
unsaved u0 (
.clk_clk (CLK), // clk.clk
.reset_reset_n (RST_N), // reset.reset_n
.spi_bridge_mosi_to_the_spislave_inst_for_spichain (MOSI), // spi_bridge.mosi_to_the_spislave_inst_for_spichain
.spi_bridge_nss_to_the_spislave_inst_for_spichain (CS_N), // .nss_to_the_spislave_inst_for_spichain
.spi_bridge_miso_to_and_from_the_spislave_inst_for_spichain (MISO), // .miso_to_and_from_the_spislave_inst_for_spichain
.spi_bridge_sclk_to_the_spislave_inst_for_spichain (SCLK), // .sclk_to_the_spislave_inst_for_spichain
.pio_nco_export (nco_in), // pio_nco.export
.nco_ii_0_in_valid (1'b1), // nco_ii_0_in.valid
.nco_ii_0_in_data (nco_in), // .data
.nco_ii_0_out_data (nco_out), // nco_ii_0_out.data
.nco_ii_0_out_valid () // .valid
);
assign dac_in = (nco_out[15] == 0) ? nco_out + 16'h8000 : nco_out - 16'h8000;
assign LED1 = ! dac_in[15];
assign LED2 = ! dac_in[14];
assign LED3 = ! dac_in[13];
assign LED4 = ! dac_in[12];
assign LED5 = ! dac_in[11];
assign LED6 = ! dac_in[10];
assign LED7 = ! dac_in[9];
assign LED8 = ! dac_in[8];
assign DAC1 = dac_in[15];
assign DAC2 = dac_in[14];
assign DAC3 = dac_in[13];
assign DAC4 = dac_in[12];
assign DAC5 = dac_in[11];
assign DAC6 = dac_in[10];
assign DAC7 = dac_in[9];
assign DAC8 = dac_in[8];
assign DAC9 = dac_in[7];
assign DAC10 = dac_in[6];
assign DAC11 = dac_in[5];
assign DAC12 = dac_in[4];
endmodule
NCOの周波数設定用入力はアドレス0x00000000のPIOに接続しています。QsysのNCO編集画面から1MHzを出力するにはNCOの周波数設定用入力に335544を入力すればいいので、動作確認用のWindowsアプリからアドレス0x00000000にデータ335544を書き込みます。
同様に336を書き込むと1kHzが出力されます。