Просто до безобразия, гонит без предыху в ЦАП все, что ухватит по входам
- Код: Выделить всё
module AD7303
(
input Clk50M, //50Mhz osc
input [7:0] HDAC_A,
input [7:0] HDAC_B
output DAC_SCLK,
output DAC_Sync,
output DAC_Data,
);
reg [15:0] DAC_SFR = 16'hFFFF;
reg [5:0] DAC_cnt = 0;
reg DAC_AB = 0;
assign DAC_SCLK = DAC_cnt[0];
assign DAC_Sync = DAC_cnt[5];
assign DAC_Data = DAC_SFR[15];
always@(posedge Clk50M)
begin
DAC_cnt <= DAC_cnt + 1;
if (DAC_cnt[0])
begin
DAC_SFR[15:1] <= DAC_SFR[14:0];
DAC_SFR[0] <= 0; //just in case
end
if (DAC_cnt[5] & DAC_cnt[0]) //(DAC_cnt == 33)
begin
DAC_AB <= ~DAC_AB;
DAC_SFR[15:8] <= DAC_AB ? 8'b11100111 : 8'b11100011; //AD7303 config
DAC_SFR[7:0] <= DAC_AB ? HDAC_A : HDAC_B;
DAC_cnt <= 0;
end
end
endmodule