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

测试

相关推荐
鱼听禅9 分钟前
C# 学习笔记-使用 类型化客户端搭建HTTP客户端服务
学习·http·c#·工厂方法模式
高亦真32 分钟前
今天是学习嵌入式的第38天
linux·学习·算法
传奇开心果编程1 小时前
【Rust入门知识点学与练】第33课:异步编程入门(async/await)强化
开发语言·学习·rust
传奇开心果编程1 小时前
【Rust入门知识点学与练】第34课:所有权与借用
开发语言·学习·rust
AAA代码批发商2 小时前
DAY43 ARM 体系结构学习笔记|嵌入式入门,从硬件组件到流水线、内存与栈帧
arm开发·笔记·学习
彧azz2 小时前
初学Unity:编辑器
笔记·学习·unity·游戏引擎
明德扬2 小时前
AD9653单通道波形怎么看?幅度、频率与基础测量入门
学习·fpga开发·fpga
幼儿园蛋小黄2 小时前
学习ARM
学习
今年下半年3 小时前
mysql数据库备份详细操作流程
学习·mysql
湘美书院--湘美谈教育3 小时前
湘美书院夜谈录:AI时代的体验感与选择价值观念
人工智能·深度学习·学习·安全·生活