verilog 流水灯 编程问题
刚学verilog现在想实现一个功能就是,按一次键,流水灯自左向右的亮灯的速度会慢一点,也就是说,按键一次,流水灯亮的间隔为0.1s,再按下一次,流水灯再慢一秒。而且到1...
刚学verilog 现在想实现一个功能就是,按一次键,流水灯自左向右的亮灯的速度会慢一点,也就是说,按键一次,流水灯亮的间隔为0.1s,再按下一次,流水灯再慢一秒。而且到1s再按键就流水灯的时间间隔就不会发生变化了。请问这个到底怎么实现呀?REG [26:0]这样的分频器到底有什么用啊。。
写错了!是刚开始流水灯间隔是0.1S,再按键0.2s,一直到1S 按键不起作用了。谢谢! 展开
写错了!是刚开始流水灯间隔是0.1S,再按键0.2s,一直到1S 按键不起作用了。谢谢! 展开
1个回答
展开全部
逻辑上最简单的就是,用一个状态机,有十条分支,第一条分支是0.1秒间隔,第二条是0.2秒,以此类推。
同时你定义一个内部寄存器,来存储你按键的次数,用来判断到底选择哪条分支。
你说的那种分频器使用,可以直接百度,有相应文档的
同时你定义一个内部寄存器,来存储你按键的次数,用来判断到底选择哪条分支。
你说的那种分频器使用,可以直接百度,有相应文档的
追问
那您给我复制一个吧 我刚学verilog的 一点都不熟悉 debug就要好久 就要这个 按K1 tc则从0.1sclk变到0.2sclk 再按一次k1 状态变到0.2sclk 一直到1s 按K2则减速 即从0.2sclk 转至0.1sclk 他们的最大最小值是从0.1s到1s 就是10个状态
谢谢您~
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询