文档库 最新最全的文档下载
当前位置:文档库 › eda答案提示板

eda答案提示板

燕山大学

课程设计说明书

题目:答案提示板

学院(系):电气工程学院

年级专业: 10级应用电子

学号: 100103030010 学生姓名:张腾

指导教师:陈白郑兆兆

教师职称:实验师实验师

燕山大学课程设计(论文)任务书

院(系):电气工程学院基层教学单位:电子实验中心

说明:此表一式四份,学生、指导教师、基层教学单位、系部各一份。

2013年 1月 4 日

目录

第一章摘要 (4)

第二章引言 (5)

第三章设计分析 (6)

3.1 设计技术参数 (6)

3.2 设计思路 (6)

3.3 模块介绍 (6)

3.4 真值表 (7)

第四章 Verilog HDL设计源程序 (9)

第五章波形仿真图 (14)

第六章管脚锁定及硬件连线 (17)

第七章总结 (19)

参考文献 (20)

20世纪90年代,国际上电子和计算机技术较先进的国家,一直在积极探索新的电子电路设计方法,并在设计方法、工具等方面进行了彻底的变革,取得了巨大成功。在电子技术设计领域,可编程逻辑器件(如CPLD、FPGA)的应用,已得到广泛的普及,这些器件为数字系统的设计带来了极大的灵活性。面对当今飞速发展的电子产品市场,电子设计人员需要更加实用、更加快捷的EDA工具,使用统一的集成化设计环境,改变传统设计思路,即优先考虑具体物理实现方式,而将精力集中到设计思路、方案比较和寻找最优化设计等方面,以最快的速度开发出性能优良、质量一流的电子产品。而今天EDA 工具将向着功能强大、简单易学、实用方便的方向发展。

这次EDA课程设计,我做的课题是答案提示板,基于基本要求,从Verilog HDL语言入手。首先简单介绍一下EDA,VHDL等的有关知识,然后介绍我的设计思想,并用硬件描述语言写出设计源程序,还附上各个模块的仿真波形图,最后是我这次EDA课设的一些心得体会。

2.1 EDA简介

EDA是电子设计自动化(Electronic Design Automation)的缩写,EDA技术,就是以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述的主要表达方式,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计工具,通过有关的开发软件,自动完成用软件的方式设计的电子系统到硬件系统的逻辑编译、逻辑化简、逻辑分割、逻辑综合及优化、逻辑布局布线、逻辑仿真,直至完成对于特定目标芯片的适配编译、逻辑映射、编程下载等工作,最终形成集成电子系统或专用集成芯片的一门新技术。EDA 技术的出现,极大地提高了电路设计的效率和可行性,减轻了设计者的劳动强度。

2.2 Verilog HDL简介

Verilog HDL是目前应用最为广泛的硬件描述语言之一,被IEEE采纳为IEEESTD.1364-1995(也称为Verilog-1995)和IEEE STD。Verilog HDL可以进行算法级(Algorithm)、寄存器输出级(RTL),逻辑级(Logic)、门级(Gate)和版图级(Layout)等各个层次的电路设计和描述。设计者只需要利用计算机的强大功能,在EDA工具的支持下,通过Verilog HDL的描述,完成数字电路和系统的设计即可,从而提高了设计效率,降低了设计者的劳动强度。

Verilog HDL程序设计是由模块(module)构成的,一个完整的Verilog HDL设计模块包括端口定义、I/O声明、变量类型声明和功能描述等4个部分。Verilog HDL语言特点:

(1) Verilog HDL语法规则与C语言十分相像。

(2) Verilog HDL语法检查不严格。

(3) Verilog HDL自身带有仿真指令。

第三章设计分析

3.1设计技术参数

1采用双色点阵。

2 双色点阵显示红色的“×”或绿色的“√”

3通过拨码开关选择是显示红色的“×”还是显示绿色的“√”

4显示“×”时,报警:响5秒停2秒,循环

5“×”或“√”显示超过1分钟后,自动灭

3.2设计思路

本设计名称为答案提示板,我设置了两个频率的时钟信号,中频1024HZ的clk1信号和低频1HZ的clk2信号,分别用来控制点阵的扫描和蜂鸣器的响5秒停2秒的循环以及计时一分钟。当拨码开关为高电平时,点阵显示绿色的“√”,计时一分钟自动灭;当拨码开关拨到低电平时,点阵显示红色的“×”,蜂鸣器开始响5秒停2秒,并循环,也是计时一分钟后自动灭。当点阵不显示时(即显示“×”或“√”一分钟后自动灭),改变拨码开关的状态,点阵会继续显示“×”或“√”。这就是我的设计思路。

3.3模块介绍

根据设计要求,我用了一个模块实现,模块中包含了两个always块。第一个always 块,中频信号扫描,当拨码开关switch处于高电平时,显示绿色的“√”;当拨码开关switch处于低电平时,显示红色的“×”。第二个always块中,使用低频clk2信号,利用变量c控制m蜂鸣信号,继而控制蜂鸣器实现响5秒停2秒,循环;无论是显示红色的“×”还是绿色的“√”,用q变量计数,q从0开始计数到59,计满60个数(即1分钟),进位oc=1,并在第一个always块中判断oc是否为1,如果oc为1,则使点阵行信号全为1,列信号全为0,实现点阵亮一分钟后自动灭,如果之前显示的是红色的“×”,当计数满60时,使m蜂鸣信号为低电平,蜂鸣停止;我又增添了一个变量d,

使d为拨码开关switch的原状态,判断当拨码开关状态改变时,使oc为0,q为0,重新开始计时。

3.4真值表

(1)点阵显示红色的“×”的真值表

(2)点阵显示绿色的“√”真值表

(3)蜂鸣器的真值表

(4)计时一分钟的进位与输出的关系真值表

第四章 Verilog HDL设计源程序设计题目的源程序如下:

module daantishiban(switch,clk1,clk2,m,row, r, g); input switch,clk1,clk2; //拨码开关及时钟信号

output m; //蜂鸣器信号

output[7:0] row; //点阵行信号

output[7:0] r; //点阵红色列信号

output[7:0] g; //点阵绿色列信号

reg m;

reg[7:0] row;

reg[7:0] r;

reg[7:0] g;

reg[2:0] a; //case语句执行中间变量

reg[2:0] b; //case语句执行中间变量

reg[3:0] c; //case语句执行中间变量

reg[5:0] q; //循环计数定义

reg d; //判断switch是否改变的中间变量

reg oc; //计数进位

always@(posedge clk1)

begin

if(switch) //switch为高电平时,点阵显示绿色的“√”begin

r='b00000000;

case(a)

0:begin row=8'b10111111; g=8'b00000001;a=a+1;end

1:begin row=8'b11011111; g=8'b00000010;a=a+1;end

2:begin row=8'b11101111; g=8'b01000100;a=a+1;end

3:begin row=8'b11110111; g=8'b00101000;a=a+1;end

4:begin row=8'b11111011; g=8'b00010000;a=a+1;end endcase

if(a==5) a=0;

end

else //switch为低电平时点阵显示红色的“×”

begin

g=8'b00000000;

case(b)

0:begin row=8'b10111111; r=8'b01000010;b=b+1; end 1:begin row=8'b11011111; r=8'b00100100;b=b+1; end 2:begin row=8'b11101111; r=8'b00011000;b=b+1; end

3:begin row=8'b11110111; r=8'b00011000;b=b+1; end 4:begin row=8'b11111011; r=8'b00100100;b=b+1; end 5:begin row=8'b11111101; r=8'b01000010;b=b+1; end endcase

if(b==6) b=0;

end

if(oc) //进位为1,点阵灭

begin

row=8'b11111111;

r=8'b00000000;

g=8'b00000000;

end

end

always@(posedge clk2)

begin

if (switch) m=0; //显示绿色的“√”时,蜂鸣器不响else //显示红色的“×”时,蜂鸣器响5秒停2秒begin

case(c)

'b0000:m=1;

'b0001:m=1;

'b0010:m=1;

'b0011:m=1;

'b0100:m=1;

'b0101:m=0;

'b0110:m=0;

endcase

c=c+1;

if(c>'b0110) c='b0000;

end

if(d==!switch) //判断switch是否改变begin oc=0;q=0;d=switch;end

if(q<6'b111100) //计时一分钟

begin

q=q+1;

oc=0;

end

else

if(q==6'b111100) //一分钟时,进位为1 begin

oc=1;

m=0;

end

end

endmodule

第五章波形仿真图(1)例题的波形仿真图

(2)点阵显示绿色的“√”的波形仿真图

(3)点阵显示红色的“×”的波形仿真图

(4)蜂鸣器的波形仿真图

(5)“×”或“√”显示超过1分钟后,自动灭的波形仿真图

(6)点阵灭后,通过改变拨码开关switch可使点阵显示的波形仿真图

第六章管脚锁定及硬件连线

5.1管脚锁定及硬件连接

clk1——PIN7 IO——CLOCK11

clk 2——PIN9 IO——CLOCK21

switch——PIN74 IO——SW9

row0——PIN172 IO——ROW1

row1——PIN71 IO——ROW2

row2——PIN73IO——ROW3

row3——PIN70 IO——ROW4

row4——PIN69 IO——ROW5

row5——PIN68 IO——ROW6

row6——PIN198 IO——ROW7

row7——PIN197 IO——ROW8

g0——PIN196 IO——GA1

g1——PIN195 IO——GA2

g2——PIN192 IO——GA3

g3——PIN193 IO——GA4

g4——PIN191 IO——GA5

g5——PIN190 IO——GA6

g6——PIN189 IO——GA7

g7——PIN187 IO——GA8

r0——PIN179 IO——RA1

r1——PIN177 IO——RA2

r2——PIN176 IO——RA3

r3——PIN175 IO——RA4

r4——PIN174 IO——RA5

r5——PIN173 IO——RA6 r6——PIN93 IO——RA7 r7——PIN92 IO——RA8 m——PIN38IO——SPEAKER

第七章总结

通过这两周的EDA课程设计我学到了很多有用的知识。通过点阵控制、蜂鸣器控制设计学会了MAX+plusII的基本操作,了解了Verilog HDL语言的基础知识,学会了运用简单的语句编写程序的基本模块和管脚锁定及硬件连线等,学会了如何得到波形仿真图,并能通过波形仿真图判断程序是否符合设计要求,了解了实验箱上各个功能模块的原理和使用方法,下载程序并在实验箱上显示结果的过程

听过此次课程设计我初步了解了EDA。EDA是电子设计自动化(Electronic Design Automation)的缩写。EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言HDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。在课设过程中,我体会到了EDA技术功能的强大和便捷。

本次课程设计在编程实现时,将程序下载到实验箱上,由于编程时没有考虑到显示一分钟后点阵灭,之后要通过拨码开关switch状态的改变,使点阵重新显示这一点,实现的功能不是很完美。之后我又重新修改了程序,在仿真波形正确的情况下,最终实现了功能。这次的课程设计锻炼了我的动手能力和编程逻辑分析的能力,也通过实际现象加深了我对程序的理解。

最后要感谢指导老师和同学的耐心指导和帮助。

参考文献

1 常丹华. 数字电子技术基础.电子工业出版社,2011年

2张强、郑兆兆、吕宏诗.燕山大学EDA课程设计A指导书.2012年

相关文档
相关文档 最新文档