Verilog判断信号上升沿、下降沿

Verilog判断信号上升沿、下降沿

判断信号上升沿、下降沿往往作为整体程序比较关键的一环;
在实践应用中不能仅仅依靠几个对被判断信号的跟随进行判断,在实践电路中如果被判断信号是根据系统时钟上升沿变化的被检测信号跳变与时钟可能会因为竞争或其他因素影响导致会滞后时钟上升沿几纳秒;
如果对判断电平有及时性或固定延时或其他苛刻条件的话,仅仅依靠时钟上升沿来判断可能会导致至少一个时钟的误差。
根据上面描述的这些情况,这段程序充分利用了系统时钟的上升沿和下降沿,判断被检测电平变化的反应精准控制在信号到来后的半个时钟。

module jud 
(judh,
judl,
tp,
clk);

output judh;                  //上升沿判断
output judl;                  //下降沿判断
input  tp;                    //被检测电平
input  clk;                   //系统时钟

reg judh;
reg judl;

reg delayh;                   //用系统时钟的上升沿跟随被检测电平


always@(posedge clk)
 begin
  delayh<=tp;
 end
 
 always@(negedge clk)         //下降沿判断被检测电平的上升下降电平跳变
 if(tp==1&&delayh==0)
  begin
   judh<=1;
  end
 else
 if(tp==0&&delayh==1)
  begin
   judl<=1;
  end
 else
  begin
   judh<=0;
	judl<=0;
  end

 
endmodule

在这里插入图片描述
在这里插入图片描述

  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
下降沿检测电路是一种用于检测输入信号下降沿的电路。在CPLD中,可以使用Verilog代码来实现下降沿检测电路。根据引用\[2\]中的代码示例,可以编写以下Verilog代码来实现CPLD下降沿检测电路: ```verilog module detect_cpld ( input sys_clk, // 时钟信号 input sys_rst_n, // 复位信号(低电平有效) input in, // 需要进行下降沿检测的输入信号 output in_neg // 输出的下降沿指示信号 ); reg in_d1; // 寄存一拍的信号 assign in_neg = ~in & in_d1; // 组合逻辑得到下降沿 always @(posedge sys_clk or negedge sys_rst_n) begin if (!sys_rst_n) in_d1 <= 1'b0; // 复位清零 else in_d1 <= in; // 寄存一拍 end endmodule ``` 这段代码使用了一个寄存器 `in_d1` 来存储输入信号的上一个时钟周期的值。通过比较当前输入信号和上一个时钟周期的输入信号,可以判断是否出现了下降沿。当输入信号为低电平且上一个时钟周期的输入信号为高电平时,输出的 `in_neg` 信号将会被置为高电平,表示检测到了下降沿。 请注意,这只是一个示例代码,具体的实现可能会根据具体的需求和CPLD的架构有所不同。 #### 引用[.reference_title] - *1* [Verilog判断信号上升沿下降沿](https://blog.csdn.net/Liangjiahe666/article/details/114010786)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [FPGA实现边沿检测电路(上升沿下降沿)](https://blog.csdn.net/wuzhikaidetb/article/details/112187021)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值