zynq高频小数据量PS闭环 抖动时间的测量

参考

zynq高频小数据量PS闭环的三个实验-第0课:目的和目标

zynq高频小数据量PS闭环的三个实验-第1课:PL搭建

zynq高频小数据量PS闭环的三个实验-第2课:Vitis裸机测试

zynq高频小数据量PS闭环的三个实验-第3课:Linux驱动测试

测量两个脉冲之间的时间差

闭环控制i_pulse2产生高之后还有短暂的确定时间,忽略不计

pulse_diff_measure.v

verilog 复制代码
module pulse_diff_measure (
    input  wire         i_clk,
    input  wire         i_rst_n,
    input  wire         i_pulse1,   // IRQ触发信号,拉高=开始测量
    input  wire         i_pulse2,   // ctrl_done,拉高=结束测量
    output reg          o_pulse_diff
);
always @(posedge i_clk or negedge i_rst_n) begin
    if(!i_rst_n) begin
        o_pulse_diff <= 1'b0;
    end
    else begin
        if(i_pulse2) begin
            o_pulse_diff <= 1'b0;
        end
        else if(i_pulse1) begin
            o_pulse_diff <= 1'b1;
        end
    end
end
endmodule

tb.v

verilog 复制代码
`timescale 1ns/1ps

module tb;


reg i_clk;
reg i_rst_n;
reg i_pulse1;
reg i_pulse2;
wire o_pulse_diff;

pulse_diff_measure u_pulse_diff_measure
(
    .i_clk(i_clk),
    .i_rst_n(i_rst_n),
    .i_pulse1(i_pulse1),
    .i_pulse2(i_pulse2),
    .o_pulse_diff(o_pulse_diff)
);


// 100MHz
always #5 i_clk = ~i_clk;



initial
begin
    i_clk = 0;
    i_rst_n  = 0;
    i_pulse1 = 0;
    i_pulse2 = 0;
    #20;
    i_rst_n = 1;
    // 等几个clk
    repeat(5) @(posedge i_clk);
    // pulse1 开始
    @(posedge i_clk);
    i_pulse1 <= 1'b1;
    @(posedge i_clk);
    i_pulse1 <= 1'b0;
    // 间隔10个clk
    repeat(10) @(posedge i_clk);
    // pulse2结束
    @(posedge i_clk);
    i_pulse2 <= 1'b1;
    @(posedge i_clk);
    i_pulse2 <= 1'b0;
    #100;
    $stop;

end

endmodule

测试

相关推荐
我命由我123451 小时前
Photoshop - Photoshop 矢量蒙版
学习·职场和发展·产品运营·求职招聘·职场发展·产品经理·photoshop
熊猫钓鱼>_>2 小时前
越顺,越空:当 AI 把学习 “优化“ 到消失
人工智能·学习·ai·llm·agent·ai编程·metaai
一条破秋裤2 小时前
02_注册设备号_从主次设备号到成对注销
学习
@codercjw2 小时前
企业实战电机和传感器选型
学习
zhangrelay3 小时前
用ROS2Lyrical实验报告册思路重做蓝桥云课ROS1实验并改进
linux·笔记·学习·ubuntu·机器人
m4Rk_3 小时前
【论文阅读】Agent 记忆机制(91):THEANINE——不删除过时记忆,让 Agent 记住事情是如何变化的
论文阅读·人工智能·学习·开源·github
我命由我123454 小时前
Photoshop - Photoshop 面板和菜单
学习·职场和发展·产品运营·求职招聘·职场发展·产品经理·photoshop
一木 之林4 小时前
RAG开发学习总结:从 LangChain 入门到检索增强生成链路的全栈实战-4/6
人工智能·学习·计算机视觉·langchain
LHR_friendship4 小时前
HCIP课程全部内容
网络·笔记·学习·hcip·华为ensp
海绵宝宝转agent5 小时前
Pico 学习笔记 Harness 设计、历史压缩、三类目录与缓存复用
笔记·学习·缓存