EDA跑马灯设计_跑马灯的设计eda
EDA跑马灯设计由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“跑马灯的设计eda”。
目录
任务书
第一章 系统分析与设计方案......................................................................................................................1
1.1 设计原理................................................................................................................................................1 第二章 子模块设计及程序...............................................................................................................................2
2.1 分频器....................................................................................................................................................2 2.2显示模式模块.........................................................................................................................................4 2.3 显示LED灯模块..................................................................................................................................6 第三章 调试仿真及结果...................................................................................................................................7 3.1顶层原理图..............................................................................................................................................7 3.2 仿真图....................................................................................................................................................7
3.2.1 引脚锁定图...............................................................................................................................7 3.2.2 波形仿真图.............................................................................................................................8
第四章 心得体会................................................................................................................................................11
第一章 系统分析与设计方案
1.1 设计原理
在掌握常用数字电路功能和原理的基础上,根据EDA技术课程所学知识,以及平时实验的具体操作内容,利用硬件描述语言HDL,EDA软件QuartusⅡ进行一个简单的电子系统设计,本次试验我所完成的内容是跑马灯的设计,下面我简单的进行一下原理的阐述。
跑马灯课程设计的要求是控制8个LED进行花样显示,设计四种显示模块:第一种显示是从左向右逐个点亮LED。第二种显示:从右向左逐个点亮LED。第三种显示:从两边向中间逐个点亮LED。第四种显示:从中间到两边逐个点亮LED。四种显示模式循环切换,并带有一位复位键控制系统的运行停止。为了完成要求的效果显示,由于要求比较简单,所以不用分为很多模块来具体控制,所以我先择利用赋值语句来完成灯的点亮,根据了解我们实验箱上的LED灯属于共阴极接法,当给于高电平时点亮,那么当我们需要点亮某位LED灯时,只需在该位上赋予高电平即可,比如:如果我们要实现8个数码灯从左到右依次点亮,那么我们就可以给这8个数码灯分别赋值10000000,经过一段时间的延时后再给其赋值01000000,再经过一段时间延时后再给其赋值00100000,依次类推,则最后一种赋值状态为00000001,这样就得到了相应的现象。同理,要实现数码灯从右向左依次点亮,从中间向两端依次点亮,从两端向中间依次点亮都可以采用这样赋值的方法。在延时的程序编写的过程中,我们采用计数时钟脉冲个数的方式来实现。结合具体程序来说就是,在每个时钟上升沿将clk_cnt变量加一,当达到499999后,就进入显示进程做下一步的赋值操作以显示相应接续的状态。为了达到四种显示模式循环切换的目的,可以将以上的所有赋值语句以顺序语句的形式置于进程中,这样在完成了一种显示方式后就会自动进入下一种设定好的显示模式,如此反复循环。当需要程序复位时,只需按下rst键即可,程序不管走都那里,执行那条语句,只要确定复位键按下时,程序立刻返回到程序执行语句的第一步,程序接着进行新的循环点亮。系统工作流程如下图所示,在没有外界输入控制时,中央控制器将反复循环输入预先设定的编码,因此8个数码灯将在四种显示模式中循环显示。若复位端被置0,则系统被重置,无论当前处于什么状态,都重新从最开始的状态开始重新执行。
图1 总体设计框图第二章 子模块设计及程序
2.1 分频器
输入一个CLK信号,通过分频器模块分别输送到显示模式模块和显示LED模块生成分频器程序: module FPQ(rst,clk,sel,fp);
input clk,rst;input [1:0]sel;output fp;reg[1:0]temp;reg fp;always@(posedge clk or negedge rst)if(!rst)begin temp
end else case(sel)2'b00: if(temp==2)begin fp
end 2'b01: if(temp==3)begin fp
2'b11:fp
图2 分频器模块
2.2显示模式模块
在实验箱上显示彩灯运行的模式,分别有1-4种模式生成数码管显示程序: module moshi(state,led,rst,clk,);input [1:0] state;input rst,clk;output[7:0] led;reg [7:0]led;reg [2:0]temp;always@(posedge clk or negedge rst)if(!rst)
temp
3'b101:led
图3 显示模式模块2.3 显示LED灯模块
通过8个LED灯显示4种显示模式:1模式,从左到右逐个点亮LED;2模式,从右到左逐个点亮LED;3模式,从两边到中间逐个点亮LED;4模式,从中见到两边逐个点亮LED。生成LED灯模块程序: module SEG7(ms,clk,rst,seg7);input clk,rst;input [1:0]ms;output [6:0]seg7;reg[6:0]seg7;always@(posedge clk or negedge rst)if(!rst)seg7
case(ms)2'b00:seg7
endcase endmodule
图4 显示LED模块
第三章 调试仿真及结果
3.1顶层原理图
原理图如下:
图5原理图
3.2 仿真图
3.2.1 引脚锁定图
图6 引脚锁定图3.2.2 波形仿真图
图7 从左到右灯依次点亮
图8 从右到左灯依次熄灭
图9 中间两个灯先亮
图10从中间两个灯向两边同时点亮
图11 从两边向中间灯逐一同时熄灭
根据引脚锁定,完成实验箱硬件电路部分的线路连接。
再次编译,设定好编程下载方式后,将导线与相应数码管及开关谅解好就可以进行硬件下载测试了。最后,将程序下载入芯片后,观察硬件运行结果,即数码灯显示情况。经测试,所编写的程序完全达到了课程设计的要求,并得要了相应的结果。
第一种显示是从左向右逐个点亮LED。第二种显示:从右向左逐个点亮LED。第三种显示:从两边向中间逐个点亮LED。第四种显示:从中间到两边逐个点亮LED。在每个显示模式之间都有一次8位led全亮,接着全灭的显示过程,四种显示模式通过手动切换,并带有一位复位键控制系统的运行停止。当rst按键按下时,led停止显示,保持按下前的状态,如过不按rst,八位led灯四种模式通过手动控制模式显示。
第四章 心得体会
在这为期近一周的EDA课程设计过程中,从刚开始看到题目大脑一片空白,没有一点思路,因为这门课真的没有仔细学过。然后听武老师讲了一下数字音节发生器设计的大致思路后我回到宿舍就上网开始查了起来。通过大量的查阅资料,最后终于弄出了程序,并得到了想要的结果。
这次的EDA课设我学到了并不仅仅只是状态机流程思路的设计,在此次的课设中不仅对书本知识有了更全面更深刻的理解,还重新熟悉了一下QuartusⅡ这款软件,更加熟练地画出了原理图、在整个课设过程中遇到了很多的困难,引脚的设定,顶层文件的建立,画图中连线的区分,都是小细节,但都必须注意,否则就会影响整个设计的实验的过程使我明白了,要想避免实验中走弯路,首先程序要逻辑清晰,简洁明了,避免不必要的嵌套与条用,其次要适当地给程序加上注解文字,提高可读性,以方便之后的程序出错时进行查找,最后充分利用仿真软件提供的各项编译工具与报错消息,按图索骥,有方向的完成程序调试。网上搜集的一些资料也给予了我很大的帮助。
在这短短几天的课设中,加深了我对EDA的理解,认识。对QuartusⅡ软件的使用更加得心应手,在以后的学习和工作中又多了一门技能。
书本上的知识学会知识了解,必须在实践中才能深入的掌握所学的知识,要不就是纸上谈兵,不论说的多么华丽,只有在实践中才能体现知识的价值,也才能考研一个人的真正能力。
这次EDA课设对我受益匪浅,谢谢学校能给我们这次动手实践的机会,让我们充分掌握这门知识技术。