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

测试

相关推荐
学长毕设5 小时前
基于SpringBoot的青少年编程学习平台系统-附源码
spring boot·学习·青少年编程
小小de风呀8 小时前
de风——【从零开始学习Linux】(九):进程基础 —— 从冯诺依曼体系到 fork 创建进程
linux·学习
李某学编程9 小时前
基于ARM的微机原理学习笔记(一)
arm开发·笔记·学习
Song_RsHt9 小时前
Redis 与微服务,什么场景下无可替代
java·redis·后端·学习·微服务
~kiss~12 小时前
PRO-LONG: Programmatic Memory Enables Long-Horizon Reasoning 程序式记忆赋能长程推理
学习
程序猿编码12 小时前
不依赖 vLLM/llama.cpp:一套面向学习的 DeepSeek-R1 CUDA 推理实现
c++·学习·语言模型·llama·vllm·大模型推理
ms72wx13 小时前
Docker 命令学习笔记:从入门到进阶的实战指南
笔记·学习·docker
外收内放14 小时前
FastAPI猜字谜实战(4):让AI主持人开口
开发语言·python·学习·fastapi
叶子野格14 小时前
《JAVA学习:前置知识》
学习
小猪佩奇TONY14 小时前
Linux 内核学习(19) --- linux swap 机制
linux·学习·swap·kswapd