zoukankan      html  css  js  c++  java
  • 关于信号的延迟---verilog

    关于信号的延迟---verilog

    `timescale 1ns / 1ps
    //////////////////////////////////////////////////////////////////////////////////
    // Company: 
    // Engineer: chensimin
    // 
    // Create Date: 2018/02/08 11:39:20
    // Design Name: 
    // Module Name: signal_detect
    // Project Name: 
    // Target Devices: 
    // Tool Versions: 
    // Description: 
    // 
    // Dependencies: 
    // 
    // Revision:
    // Revision 0.01 - File Created
    // Additional Comments:
    // 
    //////////////////////////////////////////////////////////////////////////////////
    
    
    module signal_detect(
    
        input wire clk,
        input wire rst,
        input wire signal_en
        //input wire signal
        //output wire signal_existence
        );
    
    
    
        reg signal;
        always @(posedge clk or posedge rst)
        begin
            if(rst)
                signal <= 1'b0;
            else if(signal_en)
                signal <= 1'b1;
            else
                signal <= 1'b0;
        end
    
    
    
        reg signal_delay;
        wire signal_rise;
        always @(posedge clk or posedge rst)
        begin
            if(rst)
                signal_delay <= 1'b0;
            else
                signal_delay <= signal;
        end
    
        assign signal_rise = !signal_delay && signal;
    
    
    endmodule
    
    
    
    
    /*
    
    add_force {/signal_detect/clk} -radix hex {1 0ns} {0 50000ps} -repeat_every 100000ps
    add_force {/signal_detect/rst} -radix hex {1 0ns} {0 150ns}
    add_force {/signal_detect/signal_en} -radix hex {0 0ns} {1 300ns} {0 400ns}
    
    
    */

    仿真波形:

    容易犯下这样一种错误:

    module signal_detect(
    
        input wire clk,
        input wire rst,
        input wire signal
        //input wire signal
        //output wire signal_existence
        );
    
    
        reg signal_delay;
        wire signal_rise;
        always @(posedge clk or posedge rst)
        begin
            if(rst)
                signal_delay <= 1'b0;
            else
                signal_delay <= signal;
        end
    
        assign signal_rise = !signal_delay && signal;
    
    
    endmodule
    
    
    
    
    /*
    
    add_force {/signal_detect/clk} -radix hex {1 0ns} {0 50000ps} -repeat_every 100000ps
    add_force {/signal_detect/rst} -radix hex {1 0ns} {0 150ns}
    add_force {/signal_detect/signal} -radix hex {0 0ns} {1 300ns} {0 400ns}
    
    
    */

    仿真波形:

    像这种写法,根本就起不到边沿检测的作用,只是对外部信号进行一次采集。

  • 相关阅读:
    李宏毅机器学习课程---1、机器学习介绍
    尚学python课程---15、python进阶语法
    尚学python课程---14、python中级语法
    尚学python课程---13、python基础语法
    Android4.2.2由于越来越多的物理按键(frameworks)
    ym——Android之ListView性能优化
    我学cocos2d-x (两) 采用Delegate(信托)
    mac提升yosemite后php 扩展修复
    JAVA学习课第五 — IO流程(九)文件分割器合成器
    第11周项目-2.2
  • 原文地址:https://www.cnblogs.com/chensimin1990/p/8431213.html
Copyright © 2011-2022 走看看