polozpt 发表于 2011-4-1 19:20:32

求思路

输入:clk,ina,输出:outb。
要求:ina为脉冲信号,当ina脉宽大于五个时钟周期时,outb与ina相同,当等于5个时钟时outb输出为5个时钟周期的脉冲。

polozpt 发表于 2011-4-1 22:37:47

自己顶一下

至芯兴洪 发表于 2011-4-2 15:45:39

仅供参考:1,可以考虑利用状态机思想编写代码,2,需要定义脉冲宽度计数器,一个存储脉冲宽度的6位移位寄存器,和标志寄存器(用于标志计数所计脉冲宽度是否等于五或大于五)3,在开始的状态用判断脉冲是上升沿还是下降沿,若是上升沿跳到计数1的状态,若是下降沿跳到计数0的状态,计数器进行计数4,当跳到1或0状态后,计数器进行计数脉冲个数,判断条件是if(ina==0&&count==“计数值”)或if(ina==1&&count==“计数值”),当计数等于五时,进行一个标记,利用标记来输出outb,如果在if语句的条件不成立,跳回初始状态,说明是脉冲小于5,不进行标记输出outb。5,单独用一个always块来写outb的输出
说了那么多我的思想就是,截取ina正确脉冲暂时存在移位寄存器里,然后再输出,仅供参考,希望没误导你

polozpt 发表于 2011-4-7 13:22:51

回复 3# 至芯兴洪

谢谢啊 ,我试试吧。
页: [1]
查看完整版本: 求思路