VerilogHDL流水灯设计_fpga创意流水灯设计
VerilogHDL流水灯设计由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“fpga创意流水灯设计”。
大规模数字逻辑
题目: 流水灯控制
专 业 电子信息科学与技术 班 级 学 号 学生姓名 设计时间 教师评分
2013年 12 月 10 日
目
录
一、概述.................................................1
二、设计目的.............................................1
三、设计内容.............................................1
四、设计原理图...........................................1
五、引脚分配情况.........................................2
六、源程序代码...........................................2 VerilogHDL 程序:.....................................2 分频器部分:..........................................5
七、心得体会.............................................6
八、参考文献.............................................6
一、概述
流水灯是一串按一定的规律像流水一样连续闪亮,流水灯控制是可编程控制器的一个应用,其控制思想在工业控制技术领域也同样适用。流水灯控制可用多种方法实现,但对现代可编程控制器而言,基于EDA技术的流水灯设计也是很普遍的。
二、设计目的1、熟悉利用Quartus II 开发数字电路的基本流程和Quartus II 软件的相关操作。
2、掌握基本的设计思路,软件环境参数配置,仿真,管脚分配,利用JTAG/AS进行下载等基本操作。
3、了解VerilogHDL 语言设计或原理图设计方法。
4、通过本此设计,了解流水灯的工作原理,掌握其逻辑功能及设计方法。
三、设计内容
1、用VerilogHDL语言设计一个流水灯,输入0的时候led~led7,1Hz正向流水3次,然后全亮;然后2Hz逆向流水5次全亮;循环。输入1的时候led0~led7,0.5Hz奇数流水2次,全亮,1Hz偶数流水4次,全亮,然后循环。
2、用QuartusII 软件进行编译,仿真,下载到实验平台进行验证。
四、设计原理图
en为可调输入,输出为8位数据,为流水灯实验,试用8个LED指示灯来表示,具体引脚分配见下。
五、引脚分配情况
六、源程序代码
VerilogHDL 程序:
module LED(clk,led,en);
input clk;
input en;
output [7:0]led;// 输出端口定义为寄存器型
reg [7:0] led;
reg [8:0] state1;
reg [8:0] state2;
always @(posedge clk)// always语句,表示每当CLK的上升沿到来时,完成begin-end之间语句的操作
if(!en)
begin state2 = 0;
state1 = state1 + 1;
// one clk,one state
case(state1)
1,2: led
3,4: led
5,6: led
7,8: led
9,10: led
11,12: led
13,14: led
15,16: led
17,18: led
19,20: led
21,22: led
23,24: led
25,26: led
27,28: led
29,30: led
31,32: led
33,34: led
35,36: led
37,38: led
39,40: led
41,42: led
43,44: led
45,46: led
47,48: led
49: led
50: led
51: led
52: led
53: led
54: led
55: led
56: led
57: led
58: led
59: led
60: led
61: led
62: led
63: led
64: led
65: led
66: led
67: led
68: led
69: led
70: led
71: led
72: led
73: led
74: led
75: led
76: led
77: led
78: led
79: led
80: led
81: led
82: led
83: led
84: led
85: led
86: led
87: led
88: led
89: led
90: led
91: begin led
default: state1 = 0;
endcase
end
else
begin state1 = 0;
state2 = state2 + 1;
// one clk,one state
case(state2)
1,2,3,4: led
5,6,7,8: led
9,10,11,12: led
13,14,15,16: led
17,18,19,20: led
21,22,23,24: led
25,26,27,28: led
29,30,31,32: led
33: led
34,35: led
36,37: led
38,39: led
40,41: led
42,43: led
44,45: led
46,47: led
48,49: led
50,51: led
52,53: led
54,55: led
56,57: led
58,59: led
60,61: led
62,63: led
64,65: led
66: led
67:begin led
default: state2 = 0;
// default,8'b11111110
endcase
end Endmodule
分频器部分:
module clk_div(clk_out,clk_in);
input clk_in;
output clk_out;
reg clk_out;
reg[25:0] counter;//50_000_000=1011_1110_1011_1100_0010_0000_00
parameter cnt=25_000_000;/// 50MHz is the sys clk,50_000_000=2FAF080
always @(posedge clk_in)
begin
counter
if(counter==cnt/2-1)
begin
clk_out
counter
end
end endmodule 5
七、心得体会
通过这次课程设计,我拓宽了知识面,锻炼了能力,综合素质得到较大提高。而安排课程设计的基本目的,是在于通过理论与实际的结合、人与人的沟通,进一步提高思想觉悟和领悟力。尤其是观察、分析和解决问题的实际工作能力。它的一个重要功能,在于运用学习成果,检验学习成果。运用学习成果,把课堂上学到的系统化的理论知识,尝试性地应用于实际设计工作,并从理论的高度对设计工作的现代化提出一些有针对性的建议和设想。检验学习成果,看一看课堂学习与实际工作到底有多大距离,并通过综合分析,找出学习中存在的不足,以便为完善学习计划,改变学习内容与方法提供实践依据。实际能力的培养至关重要,而这种实际能力的培养单靠课堂教学是远远不够的,必须从课堂走向实践。这也是一次预演和准备毕业设计工作。通过课程设计,让我们找出自身状况与实际需要的差距,并在以后的学习期间及时补充相关知识,为求职与正式工作做好充分的知识、能力准备,从而缩短从校园走向社会的心理转型期。课程设计促进了我系人才培养计划的完善和课程设置的调整。课程设计之后,我们普遍感到不仅实际动手说,这应该是个警示,在剩下的大学生活里,我应该好好珍惜,好好学习各方面的知识。
八、参考文献
[1] 全国大学生电子设计竞赛组委会.全国大学生电子设计获奖作品汇编[J].北京理工大学出版社,2005。
[2] 康华光.电子技术基础-数字部分[M].高等教育出版社,1998。[3] 谭会生等.EDA技术及应用[M].西安电子科技大学出版社,2001 [4] 潘松,等.EDA技术实用教程[M].科学出版社,2006 [5] 雷伏容 HDL电路设计[M].清华大学出版社,2006 [6] Charles H.Roth,等.数字系统设计与HDL[M].电子工业出版社,2008