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

测试

相关推荐
那年窗外下的雪.3 分钟前
STM32嵌入式学习 03:TIM2 定时器更新中断
stm32·单片机·学习
问天_观心4 分钟前
深入学习Transformer(二)
深度学习·学习·transformer
人邮异步社区7 分钟前
如何系统地学习 C++ 语言?
开发语言·c++·学习
知识分享小能手18 分钟前
概理论与数理统计学习教程,从入门到精通,在数理统计中应用R软件(21)
开发语言·学习·r语言
浔溺2 小时前
al+大数据每日学习笔记28
笔记·学习
xian_wwq9 小时前
【学习笔记】-深度认知系列-第2讲-大模型到底是什么?——拆解“参数、训练、推理”
笔记·学习·深度认知
lzhdim10 小时前
12、JavaScript常见的内存泄露问题 - JavaScript学习系列文章
开发语言·前端·javascript·学习·ecmascript
那年窗外下的雪.12 小时前
AIDC 学习日志|第 15 天|EVPN 多归属故障收敛与撤销机制
网络·学习·php
M78佐菲13 小时前
Linux学习笔记:进程
linux·笔记·学习·算法
我命由我1234514 小时前
人脸识别 - 勒克斯(光线照射到物体表面上的明亮程度)
android·java·学习·java-ee·人脸识别·学习方法·android runtime