verilog hdl中每当处于上升沿下降沿时都触发产生上升脉冲程序如何

如题所述

好的方向是用一个高速时钟去检测低速时钟的上升沿及下降沿,需满足最低采样率要求,给你个例子
reg scl_r;
wire scl_pos = ({scl_r,scl}==2'b10);
wire scl_neg = ({scl_r,scl}==2'b01);

always@(posedge clk or negedge reset_n)
if(!reset_n)
scl_r <= 1;
else
scl_r <= scl;追问

我的两个输入波形分别是Ain  Bin(就是编码器的两个输入波形),输出需要是Aout1。

就是类似这样的波形图A(Ain)、B(Bin)输入。cp(Aout1)是输出。(如何写

verilog 程序)

追答

你没说你要实现怎么样的逻辑呀,就是CP与A/B的关系

追问

就是用A和B实现cp呀?程序该如何写?就是A、B两路信号,如何实现cp路?求解,拜托了

追答

reg rA, rB;
always@(posedge clk)
rA<=A;
always@(posedge clk)
rB<=B;

wire A_pos = ({rA,A}==2'b10);
wire A_neg = ({rA,A}==2'b01);
wire B_pos = ({rB,B}==2'b10);
wire B_neg = ({rB,B}==2'b01);

reg cp
always@(posedge clk)
if(cp)
cp<=0;

else if(A_pos || A_neg || B_pos || B_neg)

cp<=1;

都给了你思路了,其实很容易的

追问

非常感谢

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-11-14
不建议这样使用,如果真要这样还不如把时钟提高一倍在使用
相似回答