目录。1、 设计要求 1
2、 电路符号 1
3、 设计原理 1
4、 设计方法 1
5、 结果分析 1
6、 收获和体会 3
7、 参考资料 3
8、 附录 3
控制16个led进行花式显示。设计4中显示模式:①从左到右逐个点亮led;②从右到左逐个点亮led;③从中间到两边逐个点亮led;④从两边到中间逐个点亮led。
4种模式循环切换,由复位键rst控制系统的运行与停止。
跑马灯的电路符号如图2.1所示。输入信号:时钟信号clk;系统复位ret。模式切换:mode输出信号ledout
图2.1跑马灯课程设计的要求是控制16个led进行花样显示,设计四种显示模块:第一种显示是从左向右逐个点亮led。
第二种显示:从右向左逐个点亮led。第三种显示:
从两边向中间逐个点亮led。第四种显示:从中间到两边逐个点亮led。
四种显示模式循环切换,并带有一位复位键控制系统的运行停止。为了完成要求的效果显示,由于要求比较简单,所以不用分为很多模块来具体控制,所以我先择利用移位寄存器来完成灯的点亮,我们将led灯采用共阴极接法,当给于高电平时点亮,那么当我们需要点亮某位led灯时,只需在该位上赋予低电平即可,比如:如果我们要实现16个数码灯从左到右依次点亮,那么我们就可以给这16个数码灯分别赋值1000000000000000,经过一段时间的延时后再给其赋值0100000000000000,再经过一段时间延时后再给其赋值0010000000000000,依次类推,则最后一种赋值状态为0000000000000001,这样就得到了相应的现象。
同理,要实现数码灯从右向左依次点亮,从中间向两端依次点亮,从两端向中间依次点亮都可以采用这样赋值的方法。为了达到四种显示模式循环切换的目的,可以将以上的所有赋值语句以顺序语句的形式置于进程中,这样在完成了一种显示方式后就会自动进入下一种设定好的显示模式,如此反复循环。当需要程序复位时,只需按下rst键即可,程序不管走都那里,执行那条语句,只要确定复位键按下时,程序立刻返回到程序执行语句的第一步,程序接着进行新的循环点亮。
采用文本编辑法,利用verilog hdl语言来描述跑马灯,**如下:
以下**是描述了跑马灯从左到右逐个点亮led。
if(rst==0)
begin
ledout=16'b0000000000000000;
state<=0;
end else
if(mode_change)
state<=8'b1;
elseif (mode==3'b000)
begincase(state)
8'b00000001:ledout=16'b0000000000000001;
8'b00000010:ledout=16'b0000000000000010;
8'b00000011:ledout=16'b0000000000000100;
8'b00000100:ledout=16'b0000000000001000;
8'b00000101:ledout=16'b0000000000010000;
8'b00000110:ledout=16'b0000000000100000;
8'b00000111:ledout=16'b0000000001000000;
8'b00001000:ledout=16'b0000000010000000;
8'b00001001:ledout=16'b0000000100000000;
8'b00001010:ledout=16'b0000001000000000;
8'b00001011:ledout=16'b0000010000000000;
8'b00001100:ledout=16'b0000100000000000;
8'b00001101:ledout=16'b0001000000000000;
8'b00001110:ledout=16'b0010000000000000;
8'b00001111:ledout=16'b0100000000000000;
8'b00010000:ledout=16'b1000000000000000;
default:ledout=16'b0000000000000000;
endcase
其余4种模式**如模式1的**类似。
跑马灯有4种模式,依次**,得出的以下4种**结果,从左到右,从右到左,从中间到两边,从两边到中间。
图1从左到右。
图2从右到左。
图3从中间到两边。
图4从两边到中间。
通过本次实验,这次的学习开阔了我们的视野,使我们了解了更多的专业方面的实际应用,在生产应用方面的用处等,以及专业方面的发展方向等……随着微电子技术和计算机技术的不断发展,在涉及通信、国防、航天、工业自动化、仪器仪表等领域的电子系统设计工作中,eda技术的含量正以惊人的速度上升,它已成为当今电子技术发展的前沿之一。eda技术发展迅猛,完全可以用日新月异来描述。eda技术的应用广泛,现在已涉及到各行各业。
eda水平不断提高,设计工具趋于完美的地步,所以我们更加应该多多掌握这方面的知识。
[1] 潘松、黄继业编著。 eda技术与vhdl,北京:清华大学出版社。
2] 边计年主编。用vhdl设计电子线路, 北京:清华大学出版社。
3] 王金明,杨吉斌编著。数字系统设计与verilog hdl.北京:电子工业出版社。
module pmd(
input clk,input rst,input [2:0] mode,output reg [15:0] ledout
reg [7:0] state;
reg[2:0] mode_delay;
wire mode_change;
always @ posedge clk)
mode_delay <=mode;
assign mode_change=(mode!=mode_delay)?1:0;
always @ posedge clk)
begin
if(rst==0)
begin
ledout=16'b0000000000000000;
state<=0;
end else
if(mode_change)
state<=8'b1;
elseif (mode==3'b000)
begincase(state)
8'b00000001:ledout=16'b0000000000000001;
8'b00000010:ledout=16'b0000000000000010;
8'b00000011:ledout=16'b0000000000000100;
8'b00000100:ledout=16'b0000000000001000;
8'b00000101:ledout=16'b0000000000010000;
8'b00000110:ledout=16'b0000000000100000;
8'b00000111:ledout=16'b0000000001000000;
8'b00001000:ledout=16'b0000000010000000;
8'b00001001:ledout=16'b0000000100000000;
8'b00001010:ledout=16'b0000001000000000;
8'b00001011:ledout=16'b0000010000000000;
8'b00001100:ledout=16'b0000100000000000;
8'b00001101:ledout=16'b0001000000000000;
8'b00001110:ledout=16'b0010000000000000;
8'b00001111:ledout=16'b0100000000000000;
8'b00010000:ledout=16'b1000000000000000;
default:ledout=16'b0000000000000000;
endcase
state=state+8'b00000001;
if(state==8'b00010001) state=8'b00000001;
endelse
if (mode==3'b001)
begincase(state)
8'b00000001:ledout=16'b1000000000000000;
8'b00000010:ledout=16'b0100000000000000;
8'b00000011:ledout=16'b0010000000000000;
8'b00000100:ledout=16'b0001000000000000;
8'b00000101:ledout=16'b0000100000000000;
8'b00000110:ledout=16'b0000010000000000;
8'b00000111:ledout=16'b0000001000000000;
8'b00001000:ledout=16'b0000000100000000;
8'b00001001:ledout=16'b0000000010000000;
8'b00001010:ledout=16'b0000000001000000;
8'b00001011:ledout=16'b0000000000100000;
8'b00001100:ledout=16'b0000000000010000;
8'b00001101:ledout=16'b0000000000001000;
8'b00001110:ledout=16'b0000000000000100;
8'b00001111:ledout=16'b0000000000000010;
8'b00010000:ledout=16'b0000000000000001;
default:ledout=16'b0000000000000000;
endcase
state=state+8'b00000001;
if(state==8'b00010001) state=8'b00000001;
endelse
if (mode==3'b010)
EDA课程设计
题目一 数字钟设计 学号1 15 一 实验目的。学习并掌握数字钟的原理 设计方法。二 实验内容。计数始终由模60秒计数器 模60分计数器 模24小时计数器 报时模块 分 时设定模块及输出显示模块构成。可以采用同步计数器或异步计数器设计方法。三 实验要求。计时范围为0小时0分0秒至23小时59分59秒...
eda课程设计
哈尔滨工业大学 威海 信电学院电子信息工程。一 软硬件介绍。1软件部分介绍。1.1 quartus ii 是altera公司的综合性pld fpga开发软件,支持原理图 vhdl veriloghdl以及ahdl altera hardware description language 等多种设计输...
eda课程设计
目录。1 引言 2 1.1 课程设计的目的与任务 2 1.2 课程设计的内容 2 1.3课程设计仪器设备 2 1.4 课程设计的题目 2 1.5 方案的选择 2 2设计方案 3 2.1 设计原理 3 2.2各功能模块的原理及其源程序 3 2.2.1控制模块 3 2.2.2分频模块 4 2.2.3计时...