欢迎来到天天文库
浏览记录
ID:6807735
大小:135.50 KB
页数:11页
时间:2018-01-26
《大规模数字逻辑课程设计-流水灯设计》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、大规模数字逻辑课程设计题目:流水灯设计学号:XXX姓名:XXX班级:XXX11目录1.流水灯控制的实验要求与思路31.1实验要求31.2实验思路32.系统逻辑设计:43.源程序代码4(1)分频器部分4(2)控制模块54.实验步骤:75.实验原理图:76.分配管脚87.运行界面:88.总结与体会109.参考文献101.流水灯控制的实验要求与思路1.1实验要求11在流水灯控制系统中,要求开发板上的8个LED灯依次以0.5S的时间间隔从上到下再下到上的顺序点亮,然后分别以1S、1.5S、2S的时间间隔和相同顺序点亮8个LED灯,以此为一个循
2、环,重复以上四个步骤就可以实现流水灯系统的自动循环运作。1.2实验思路根据时钟信号的脉冲输入,我们以改变每个LED点亮状态的保持的时间来改变LED的变换间隔时间,根据LED的循环点亮和时间间隔的改变设计成为一个直观的LED流水灯自动循环系统,由此思路我们就可以很容易的着手流水灯控制程序的设计。1.系统逻辑设计:根据以上的设计要求,运用模块化的设计思路,我们在QuartusII8.0软件系统中设计了LED流水灯控制模块、分频器模块,并通过各个模块程序之间的端口合理连接和协调,成功设计出LED流水灯灯控制电路,得到逻辑结构原理图,即为整个
3、流水灯控制电路的逻辑结构。使用VerilogHDL语言设计相应的模块。3.源程序代码(1)//分频器部分,获得便于试验观察的时钟信号moduleclk_div(clk_out,clk_in);inputclk_in;outputclk_out;regclk_out;integercounter;parametercnt=25_000_000;always@(posedgeclk_in)begincounter<=counter+1;11if(counter==cnt/2-1)beginclk_out<=!clk_out;counter
4、<=0;endendendmodule(2)//控制模块:modulelsd(clk,led);inputclk;output[7:0]led;//输出端口定义为寄存器型reg[7:0]count;reg[7:0]count1;reg[7:0]count2;reg[7:0]led;reg[3:0]state;always@(posedgeclk)//always语句,表示每当CLK的上升沿到来时,完成begin-end之间语句的操作begincount<=count+1;if(count<17)beginstate=state+4'b
5、0001;//oneclk,onestatecase(state)4'b0000:led<=8'b;//the1ststate4'b0001:led<=8'b;4'b0010:led<=8'b;4'b0011:led<=8'b;114'b0100:led<=8'b;4'b0101:led<=8'b;4'b0110:led<=8'b;4'b0111:led<=8'b;4'b1000:led<=8'b;4'b1001:led<=8'b;4'b1010:led<=8'b;4'b1011:led<=8'b;4'b1100:led<=8'b;4
6、'b1101:led<=8'b;4'b1110:led<=8'b;4'b1111:led<=8'b;default:state=4'b0000;//default,8'bendcaseendelseif(count<49)beginif(count%2==0)beginstate=state+4'b0001;//oneclk,onestatecase(state)4'b0000:led<=8'b;//the2ststate4'b0001:led<=8'b;4'b0010:led<=8'b;4'b0011:led<=8'b;4'b010
7、0:led<=8'b;4'b0101:led<=8'b;4'b0110:led<=8'b;4'b0111:led<=8'b;114'b1000:led<=8'b;4'b1001:led<=8'b;4'b1010:led<=8'b;4'b1011:led<=8'b;4'b1100:led<=8'b;4'b1101:led<=8'b;4'b1110:led<=8'b;4'b1111:led<=8'b;default:state=4'b0000;//default,8'bendcaseendendelseif(count<97)beginc
8、ount1<=count1+1;if(count1%3==0)beginstate=state+4'b0001;//oneclk,onestatecase(state)4'b0000:led<=8'b;//the3sts
此文档下载收益归作者所有