当前位置: 首页 > news >正文

zynq纯PL读取XADC

BD

在这里插入图片描述

#时序约束
create_clock -period 20.000 -name sys_clk [get_ports sys_clk]
#IO引脚约束
#----------------------系统时钟---------------------------
set_property -dict {PACKAGE_PIN U18 IOSTANDARD LVCMOS33} [get_ports sys_clk]
#----------------------系统复位---------------------------
set_property -dict {PACKAGE_PIN N16 IOSTANDARD LVCMOS33} [get_ports sys_rst_n]## 外部模拟信号 VAUXP0/VAUXN0
set_property PACKAGE_PIN C20 [get_ports vauxp0]
set_property IOSTANDARD LVCMOS33 [get_ports vauxp0]
set_property ANALOG true [get_ports vauxp0]
set_property PACKAGE_PIN B20 [get_ports vauxn0]
set_property IOSTANDARD LVCMOS33 [get_ports vauxn0]
set_property ANALOG true [get_ports vauxn0]

xadc_pl_reader.v

参考 ug480_7Series_XADC

module xadc_pl_reader (input  wire        i_clk,        // 50MHz 系统时钟input  wire        i_rst_n,      // 异步复位,低有效input  wire        i_vauxp0,     // VAUX0 正端输入input  wire        i_vauxn0,     // VAUX0 负端输入output reg  [11:0] o_adc_data,   // 12bit ADC 数据output reg         o_data_valid, // ADC 数据有效标志output wire        o_alm,        // 报警输出output wire        o_ot          // 过温报警输出
);// -------------------------------------------------// DRP 接口信号reg  [6:0]  r_drp_addr;reg         r_drp_en;reg         r_drp_we;reg  [15:0] r_drp_di;wire [15:0] w_drp_do;wire        w_drp_drdy;// -------------------------------------------------// 状态机状态reg [1:0] r_state;localparam S_IDLE  = 2'd0,S_START = 2'd1,S_WAIT  = 2'd2,S_READ  = 2'd3;// -------------------------------------------------// DCLK 分频到 50MHz(XADC DRP 时钟要求 <= 50MHz)reg r_dclk_50mhz = 1'b0;always @(posedge i_clk) beginr_dclk_50mhz <= ~r_dclk_50mhz;end// -------------------------------------------------// XADC IP 实例化XADC #(.INIT_40(16'h9000),  // 校准系数平均禁用.INIT_41(16'h2ef0),  // 外部通道平均16次,连续模式,启用校准.INIT_42(16'h0400),  // DCLK 分频4 → 50MHz.INIT_48(16'h4701),  // 使能温度、VCCINT、VCCAUX、VCCBRAM.INIT_49(16'h0001)   // 使能 VAUX0) u_xadc (.CONVST(1'b0),.CONVSTCLK(1'b0),.DADDR(r_drp_addr),.DCLK(r_dclk_50mhz),.DEN(r_drp_en),.DI(r_drp_di),.DWE(r_drp_we),.RESET(~i_rst_n),.VAUXN({15'd0, i_vauxn0}),  // 只用 VAUX0.VAUXP({15'd0, i_vauxp0}),.ALM(o_alm),.BUSY(),.CHANNEL(),.DO(w_drp_do),.DRDY(w_drp_drdy),.EOC(),.EOS(),.JTAGBUSY(),.JTAGLOCKED(),.JTAGMODIFIED(),.OT(o_ot),.MUXADDR(),.VP(1'b0),.VN(1'b0));// -------------------------------------------------// XADC DRP 状态机always @(posedge i_clk or negedge i_rst_n) beginif (!i_rst_n) beginr_state      <= S_IDLE;r_drp_addr   <= 7'd0;r_drp_en     <= 1'b0;r_drp_we     <= 1'b0;r_drp_di     <= 16'd0;o_adc_data   <= 12'd0;o_data_valid <= 1'b0;end else begincase (r_state)S_IDLE: beginr_drp_en     <= 1'b0;r_drp_we     <= 1'b0;o_data_valid <= 1'b0;r_state      <= S_START;endS_START: beginr_drp_addr <= 7'h10; // VAUX0 DRP 地址r_drp_en   <= 1'b1;r_drp_we   <= 1'b0;r_state    <= S_WAIT;endS_WAIT: beginif (w_drp_drdy)r_state <= S_READ;endS_READ: begino_adc_data   <= w_drp_do[11:0]; // 12bit ADC 数据o_data_valid <= 1'b1;r_drp_en     <= 1'b0;r_state      <= S_IDLE;endendcaseendendendmodule

测试

在这里插入图片描述

http://www.dtcms.com/a/402925.html

相关文章:

  • 【FastMCP】中间件
  • bigo二面总结
  • 个人网站建设思路省级别网站建设方案
  • 测试自动化教程:Parasoft如何流重定向与单元测试自动化
  • 开源AI大模型、AI智能名片与S2B2C商城小程序在价值观型社群构建与运营中的价值与应用
  • 郑州 网站建设公司阿里企业邮箱收费标准一年多少钱
  • Day03:小程序的常用操作
  • 交互的脉络:小程序事件系统详解
  • 自助建站免费平台深圳建设管理中心网站首页
  • LVS虚拟调度器学习
  • 【LVS入门宝典】LVS-TUN模式原理与配置:跨越网络界限的负载均衡解决方案
  • 【LVS入门宝典】LVS-TUN模式配置实战以及配置关键点:Real Server的路由表调整、ipip模块加载
  • LVS、Nginx、HAProxy 的区别
  • 是什么让边缘电脑真正工业化?
  • html5手机网站开发环境怎样建设淘宝客导购网站
  • 国检集团官网UI设计展示——专业界面设计实力呈现
  • 【双光相机配准】红外-可见光双光相机的坐标转换原理与实现
  • 图漾相机-ROS2-SDK-Ubuntu 4.X.X版本编译
  • ToF相机之flying pixel
  • 网站建设都需要什么技术人员网站版面做的很好的公司
  • 检测网站是否为WordPress鑫菲互动网站建设公司
  • 小说阅读网站建设微网站在线制作
  • 网站内页百度不收录短视频关键词seo优化
  • SageMaker Studio 高级篇:自动化训练管道与性能优化实战
  • 海誉网站定制做美容一般在哪个网站团购比较好
  • 博山做网站公司岳阳设计网站推荐
  • node怎么做网站秦皇岛网站关键词推广
  • 电子商务网站推广怎么做专业微网站制作
  • 生物科技公司网站建设网站建设在后台哪里查看
  • 华容网站定制怎样在百度打广告