有关FPGA跑马灯的程序问题
时间:10-02
整理:3721RD
点击:
实验3:流水灯实验:
完成一个8路流水灯控制实验,要求有以下3种花型:
1)8路灯同时亮灭;
2)从左至右再从右至左逐个亮(每次只有1路亮);
3)8路灯每次4路灯亮,4路灯灭,且亮灭相间,交替亮灭。
用3个按键控制3种花型。按下花型按键就一直显示相应花型,再按该键可暂停。可设置1个复位键关闭显示。
这个eda程序要怎么写?求大神指教。
下面是我写的程序,可是不懂错误要如何修改?



if的逻辑关系就有错误,你仔细看看,其他的你再找找
代码发xtajmhfhn@163.com.帮你看看。
之前的问题解决了。但是现在结果发现我的程序思路有问题?那我发给你,麻烦你帮我看看怎么写程序,才能实现我的实验要求。谢谢了。
多个always块对同一个变量赋值
新手、入门的兄弟姐妹可以加群咱相互交流学习哈,FPGA入门学习交流群 466511993
RTL设计是不推荐for语句的,因为写的不好的情况下for语句无法综合,就算能够综合的也是在简单的自动复制几遍代码,Testbench可以使用for语句来产生信号。
建议小编要将这个小实验分拆一下,按键的处理消抖按键检测独立出来,然后状态机一个,专门针对状态机设计一个always,然后再有一个always来控制LED灯,这样条理会清晰一些
刚学fpga,不懂什么是状态机
状态机就是控制程序的执行状态的描述,比如你的这个按键的问题,用语言描述的话大概是这样
- state:状态机
- if(reset_key)
- state=reset;
- else if(state==reset)
- begin
- if(key1) state=led1;
- else if(key2) state=led2;
- else if(key3) state=led3;
- else state=state;
- else if(led1)
- if(key1) state=led1pause;
- else if(key2) state=led2;
- else if(key3) state=led3;
- else state=state;
- .
- .
- .
- .
这个如果用图形表示的话就叫做状态转移流程图....
然后后面的显示逻辑去排定state的状态做相应的显示动作就行了。
