彩灯变换控制器设计.docx
《彩灯变换控制器设计.docx》由会员分享,可在线阅读,更多相关《彩灯变换控制器设计.docx(11页珍藏版)》请在冰豆网上搜索。
彩灯变换控制器设计
学号
EDA技术及应用A
课程设计说明书
彩灯变换控制器设计
起止日期:
2015年12月28日至2015年12月31日
学生姓名
班级
13电信科1班
成绩
指导教师(签字)
计算机与信息工程学院电子信息工程系
2015年12月31日
课程设计任务书
2015—2016学年第1学期
计算机与信息工程学院电子信息工程系13电信科专业1班
课程设计名称:
EDA技术及应用A
设计题目:
彩灯变换控制器设计
完成期限:
自2015年12月28日至2015年12月31日共1周
一.课程设计依据
在掌握常用数字电路原理和技术的基础上,根据EDA技术及应用课程所学知识,利用硬件描述语言(VHDL或VerilogHDL),EDA软件(QuartusⅡ)和硬件开发平台(达盛试验箱CycloneⅡFPGA)进行初步数字系统设计。
二.课程设计内容
设计彩灯控制器,实现16个三色LED花样显示,具有4种显示模式:
s0,从左到右逐个点亮LED;s1,从右到左逐个点亮LED;s2,从两边到中间逐个点亮;s3,从中见到两边逐个点亮。
每个模式有4档速度,快、稍快、中速、慢速;设计时序逻辑实现模式的自动循环切换,速度切换,颜色手动切换。
(提示:
可把各种图形存储在片内ROM中,通过数据读取实现)。
扩展设计:
LED通过串行移位寄存器进行连接(串行驱动采用HC595或MBI5026驱动)。
三.课程设计要求
1.要求独立完成设计任务。
2.课程设计说明书封面格式要求见《天津城建大学课程设计教学工作规范》附表1
3.课程设计的说明书要求简洁、通顺,计算正确,图纸表达内容完整、清楚、规范。
4.测试要求:
采用modelsim或Quartus进行时序仿真,并在实验箱上验证设计结果。
5.课设说明书要求:
1)说明题目的设计原理和思路、采用方法及设计流程。
2)对各子模块的功能以及各子模块之间的关系作明确的描述。
3)对实验和调试过程,仿真结果和时序图进行说明和分析。
4)包含系统框图、电路原理图、HDL设计程序、仿真测试图。
指导教师(签字):
教研室主任(签字):
批准日期:
2015年12月24日
第1章设计方案及原理1
1.1设计方案1
1.2设计原理及流程1
第2章设计程序3
2.1VerilogHDL程序3
第3章原理图及仿真波形7
3.1原理图7
3.1.1顶层文件原理图7
3.2仿真波形8
3.3仿真结果分析9
3.4硬件联接10
3.4.1引脚分配10
3.4.2实验箱硬件电路部分的线路连接10
总结11
参考文献12
第1章设计方案及原理
1.1设计方案
本次课程设计采用VerilogHDL硬件描述语言编写控制程序,应用QuartusⅡ软件实现仿真测试。
拟定系统方案框图,画出系统框图中每框的名称、信号的流向,各框图间的接口。
使用VerilogHDL设计软件画出原理图,采用FPGA芯片对LED灯进行控制,使其达到流水跑马灯显示的效果,LED灯采用共阳极接法,当给它一个低电平时,LED点亮,我们利用移位寄存器使各输出口循环输出高低电平,达到控制的目的。
1.2设计原理及流程
本次试验我的内容是彩灯变换控制器设计的设计,下面我简单的进行一下原理的阐述。
设计方案流程图如图1-1所示:
图1-1方案流程图
彩灯控制器课程设计的要求是控制16个LED进行花样显示,具有4种显示模式,所以应设计四种显示模块:
第一种显示是从左向右顺序点亮LED。
第二种显示:
从右向左顺序点亮LED。
第三种显示:
从两边向中间顺序点亮LED。
第四种显示:
从中间到两边顺序点亮LED。
每个模式有4档速度,快、稍快、中速、慢速;四种显示模式自动循环切换,速度切换,颜色手动切换。
为了完成要求的效果显示,我准备以下方案。
由于要求比较简单,所以不用分为很多模块来具体控制,所以我先利用移位寄存来完成灯的点亮,并采用LED灯共阳极接法,当给LED低电平时LED灯点亮,那么当我们需要点亮某位LED灯时,只需在该位上赋予低电平即可。
本次设计中我要实现16个LED灯从左到右依次点亮,那么就可以给这16个数码灯分别赋值0111111111111111,经过一段时间的延时后再给其赋值1011111111111111,再经过一段时间延时后再给其赋值110111*********,依次类推,则最后一种赋值状态为111111*********0,这样就实现要求中所要求的。
同理,要实现数码灯从右向左依次点亮,从中间向两端依次点亮,从两端向中间依次点亮都可以采用这样赋值的方法。
为了达到四种显示模式循环切换的目的,可以将以上的所有赋值语句以顺序语句的形式置于进程中,这样在完成了一种显示方式后就会自动进入下一种设定好的显示模式,如此反复循环。
任务中要求实现每种模式有四种速率循环方式,这里我采用了硬件连接拨码开关控制速率,共用慢速、中速、稍快、快四档速度。
设计中我还为程序增添了复位功能,当需要程序复位时,只需按下rst键,此时程序不管走都那里,只要执行这条语句,确定复位键按下时,程序立刻返回到程序执行语句的第一步,程序接着进行新的循环点亮。
第2章设计程序
2.1VerilogHDL程序
modulemuxone(clk,rst,Q,DIN,CLK);
inputclk,rst;
input[1:
0]DIN;//DIN为变换速度档
outputsigned[15:
0]Q;//Q为15个LED
outputCLK;//自定义时钟
parameterDOUT=16'b01111111_11111111;
regCLK;
reg[16:
0]x;
reg[1:
0]cs;
reg[15:
0]Q;
always@(posedgeclk)
begin
x<=15'b0000000000000000;CLK=0;
case(DIN)
0:
begin
x<=x+1'b1;
if(x==30)begin
x<=15'b0;
CLK=~CLK;
end
end
1:
begin
x<=x+1'b1;
if(x==25)begin
x<=15'b0;
CLK=~CLK;
end
end
2:
begin
x<=x+1'b1;
if(x==20)begin
x<=15'b0;
CLK=~CLK;
end
end
3:
begin
x<=x+1'b1;
if(x==15)begin
x<=15'b0;
CLK=~CLK;
end
end
defaultbegin
x<=x+1'b1;
if(x==20)begin
x<=15'b0;
CLK=~CLK;
end
end
endcase
end
always@(posedgeCLKornegedgerst)begin
if(!
rst)begin
Q<=DOUT;cs<=2'b00;
end
elsebegin
case(cs)
0:
beginQ<=Q>>1;Q[15]<=1'b1;
if(Q==16'b11111111_11111110)begin
Q<=16'b11111111_11111101;
cs<=2'b01;
end
end
1:
beginQ<=Q<<1;Q[0]<=1'b1;
if(Q==16'b01111111_11111111)begin
Q<=16'b01111111_11111110;
cs<=2'b10;
end
end
2:
beginQ[15:
8]<=Q[15:
8]>>1;
Q[7:
0]<=Q[7:
0]<<1;
Q[15]<=1'b1;
Q[0]<=1'b1;
if(Q==16'b11111110_01111111)begin
Q<=16'b11111101_10111111;
cs<=2'b11;
end
end
3:
beginQ[15:
8]<=Q[15:
8]<<1;
Q[7:
0]<=Q[7:
0]>>1;
Q[8]<=1'b1;
Q[7]<=1'b1;
if(Q==16'b01111111_11111110)begin
Q<=16'b01111111_11111111;
cs<=2'b00;
end
end
defaultbegin
Q<=DOUT;
cs<=2'b00;
end
endcase
end
end
endmodule
第3章原理图及仿真波形
3.1原理图
3.1.1顶层文件原理图
编译上述程序,并创建图形的symbol,打开原理图编辑器,命名为jie.bdf,在快捷菜单对话框中的project里选择已生成好的命为jie的图形symbol,根据已编程序添加引脚,得原理图如下:
图3-1顶层文件原理图
3.2仿真波形
利用编译工具quartusII对程序进行编译,准确无误后进行时序仿真,仿真结果图如下面四个图所示,代表了不同速率相同总时长下的移位情况,即先从左到右,再从右到左,再从中间到两边,最后从两边到中间的移位寄存过程。
图3-2速度最慢移位波形图
图3-3速度中速移位波形图
图3-4速度稍速移位波形图
图3-5速度最速移位波形图
3.3仿真结果分析
根据程序可知,当输入DIN为00时选择慢速档,CLK的周期大约为30us,此时根据仿真结果我们可以看出,当rst选为高电平时程序运行,随着CLK上升沿的到来输出Q做移位变化,开始从左向右移,然后从右向左移,然后从中间向两边移,最后从两边向中间移,之后循环显示。
因为设定了复位功能,所以无论程序运行到哪个位置时,当按下复位键rst时系统运行停止,回到最初设定值状态,第一个灯点亮。
当输入DIN为01时选择中速档,CLK的周期大约为25us,执行以上循环显示。
当输入DIN为10时选择稍快档,CLK的周期大约为20us,执行以上循环显示。
当输入DIN为11时选择最快档,CLK的周期大约为15us,
执行以上循环显示。
3.4硬件联接
3.4.1引脚分配
仿真结束准确无误后开始硬件连接,先分配引脚信息,本次设计共需21个引脚分配引脚信息截图如图3-4-1所示。
图3-6硬件引脚分配图
3.4.2实验箱硬件电路部分的线路连接
再次编译,设定好编程下载方式后,根据引脚锁定,将导线与相应数码管及开关连接好就可以进行硬件下载测试了。
硬件连接如图3-4-2所示。
最后,将程序下载入芯片后,观察硬件运行结果,即LED灯的显示情况。
经测试,所编写的程序达到了课程设计的要求,并得要了相应的结果。
第一种显示是从左向右逐个点亮LED。
第二种显示:
从右向左逐个点亮LED。
第三种显示:
从两边向中间逐个点亮LED。
第四种显示:
从中间到两边逐个点亮LED。
在每个显示模式之间没有多余显示结果,直接进入下一种模式,直至四种模式全部循环完再开始下一轮循环。
四种显示模式通过自动切换,并带有一位复位键控制系统的运行停止。
当rst按键按下时,led停止显示,保持按下前的状态,如过不按rst,十六位led灯四种模式通过自动循环模式显示。
DIN所连接的两个拨码开关控制循环速度,共有慢速,中速,稍快,快四个档速分别靠手动预置实现。
图3-7硬件连接图
总结
为期近一周的EDA课程设计终于结束了,回顾这一周真的觉得自己受益匪浅,不仅对书本知识有了更全面更深刻的理解,还掌握了QuartusⅡ这款软件的基本用法。
为以后的工作又增加了一门新技能。
在上机操作的过程中,刚开始我们遇到了很多的困难,引脚的设定,顶层文件的建立,画图中连线的区分,这些虽然都是小细节,但都必须注意,否则就会影响整个设计的实验,经过对最简单的模型的设计及仿真练习过后,我们基本掌握了软件的使用方法,通过软件仿真及对各个参数的设置,我们不断调试仿真出来的波形。
在这个过程中我明白了,要想避免实验中走弯路,首先程序要逻辑清晰,简洁明了,避免不必要的嵌套与条用,其次要适当地给程序加上注解文字,提高可读性,以方便之后的程序出错时进行查找。
虽然软件的仿真功能很强大,但是还是需要操作人员仔细的进行观察及调试的,否则也容易出现仿真错误。
最后充分利用仿真软件提供的各项编译工具与报错消息,按图索骥,有方向的完成程序调试。
网上搜集的一些资料也给予了我很大的帮助。
这次的学习开阔了我们的视野,使我们了解了更多的专业方面的实际应用,在生产应用方面的用处等,以及专业方面的发展方向等……随着电子技术和计算机技术的不断发展,在涉及通信、国防、航天、工业自动化、仪器仪表等领域的电子系统设计工作中,EDA技术的含量正以惊人的速度上升,它已成为当今电子技术发展的前沿之一。
EDA技术发展迅猛,完全可以用日新月异来描述。
EDA技术的应用广泛,现在已涉及到各行各业。
EDA水平不断提高,设计工具趋于完美的地步,所以我们更加应该多多掌握这方面的知识。
书本上的知识要想学会并且了解,必须在实践中才能深入的掌握所学的知识,要不就是纸上谈兵,不论说的多么华丽,只有在实践中才能体现知识的价值,也才能考验一个人的真正能力。
这次EDA课设对我受益匪浅,谢谢在设计中帮助过我的老师和同学,团结的力量是伟大的。
参考文献
[1]潘松,黄继业编著.EDA技术与VHDL[M].北京:
清华大学出版社,2005
[2]边计年主编.用VHDL设计电子线路[M].北京:
清华大学出版社,2000(8)
[3]王金明,杨吉斌编著.数字系统设计与VerilogHDL[M].北京:
电子工业出版社,2002
(1)
[4]徐志军,徐光辉编著.CPLD/FPGA的开发与应用[M].北京:
电子工业出版社,2002
[5]潘松,黄继业,潘明编著.EDA技术实用教程[M].科学出版社,2010