使用IP核:
///
//产生 XADC 读时序
always @(posedge dclk or negedge rst_n) begin
if(!rst_n) begin
den_in <= 1'b0;
dwe_in <= 1'b0;
daddr_in <= 7'd0;
di_in <= 7'd0;
end
else if(eoc_out) begin
daddr_in <= {2'b00, channel_out}; //XADC 数据读取寄存器地址 直接连接到通道选择输出channel_out[4:0]
den_in <= 1'b1; //产生den_in一个时钟周期的高电平
end
else begin
daddr_in <= 7'd0;
den_in <= 1'b0;
end
end
///
//读 XADC 输出数据
always @(posedge dclk or negedge rst_n) begin
if(!rst_n) begin
XADC_A0_Data <= 0;
XADC_A1_Data <= 0;
XADC_A2_Data <= 0;
end
else if(drdy_out) begin
case(channel_out[4:0])
5'h14: begin
XADC_A0_Data <= do_out[15:4];
end
5'h15: begin
XADC_A1_Data <= do_out[15:4];
end
5'h16: begin
XADC_A2_Data <= do_out[15:4];
end
default: begin