课 程 设 计 任 务 书
(2011 ~2012 学年第一学期)
设 计 题 目: EDA与数字系统课程设计 学 院 名 称: 电气与自动化工程学院
专 业(班 级): 09电气五班 姓 名(学 号): 金志君(20092411)
起 讫 日 期: 2011年12月 指 导 教 师: 刘春 、胡存刚
下发任务书日期 2011 年 10月 24日
1
合肥工业大学课程设计任务书
设计题目 EDA与数字系统课程设计 了解各种PLD器件的基本结构,掌握MAX+Plus2的使用方法,用图形输入主要内容 法和Verilog HDL完成规定的基本练习题,在此基础上完成一个数字系统设计题的设计、仿真、下载(FPGA实现)。 应收集的资 1.《EDA与数字系统设计》李国丽 朱维勇 栾铭主编 料 2.《数字电子技术基础》 阎石主编 讲课: EDA简介 实验一:Max+Plus2使用练习,完成一个简单门电路的图形设计输入、编译、仿真、管脚分配、下载。(4学时) 实验二:图形设计输入3-8译码器, 同步十进制加法计数器、同步六十进制计数器。 用六十进制计数器制作十二进制计数器(01~12),二十四进制计数器(00~23)和百进制计数器。设计输入、编译、仿真、管脚分配、下载。(4学时) 实验三:完成以上实验的Verilog HDL设计输入。(4学时) 讲课:扫描显示电路原理,数码管驱动方式,对应于实验箱的扫描模块介绍。(2学时) 实验四:完成扫描显示1-4-1,1-4-2。 (4学时) 讲课:布置一个数字系统设计题,讲解设计要求、原理框图、设计提示。 方案设计、设计调试、下载验证。 (12学时) 设计考核验收,写课程设计报告。(4学时), 1 李国丽,朱维勇.电子技术实验指导书.合肥:中国科技大学出版社,2000 2 王金明编,杨吉斌.数字系统设计与Verilog HDL.北京:电子工业出版社,2002 3 潘松,黄继业. EDA技术实用教程.北京:科学出版社,2002 按照设计进度计划要求完成每一步任务 备注 设计 进度 计划 主要参考文 献 指导教师意 见 2
目录
中文摘要--------------------------------------------4 1.实验一 Max+Plus2使用练习-------------------------5 2.实验二 3-8译码器---------------------------------5 3.实验三 同步十进制加法计数器----------------------6 4.实验四 同步六十进制计数器------------------------6 5.实验五 数码管显示--------------------------------7 6.实验六 十二进制及六十进制计数显示----------------7 7.竞赛抢答器的设计----------------------------------9 结论------------------------------------------------17
参考文献-----------------------------------------------------17
3
中文摘要
在现在社会中,智力竞赛作为一种生动活泼而又有趣味的活动,深为人们所喜爱,而在各种各样的竞赛之中,往往会对抢答器的功能做出诸多的要求。基于此点,本课程设计便以竞赛抢答器的设计为最终目的,从利用MAX+plus2进行简单的图形设计,到对数字系统设计进行仿真、下载;从利用VHDL语言进行电路编制,到对竞赛抢答器的设计、运用,本课程设计对有关的知识均有一定的叙述。首先是对EDA
中的简单图形的输入、编译、仿真以及下载 的论述,其次是3-8译码器、同步十进制加法计数器与同步六十进制计数器等的图形设计的介绍,第三是本课程设计的重点,即竞赛抢答器的设计。鉴于其功能,本课程设计对其做了一定的模块化处理,并对之做了相应的描述。最后,是本设计的一些总结,以及相应的电路图。
关键词:锁存;鉴别;计时;计分
4
实验一:Max+Plus2使用练习,完成一个简单门电路的图形设计输入、编译、仿真、管脚分配、下载。
实验二:图形设计输入3-8译码器
5
实验三:同步十进制加法计数器
实验四:同步六十进制计数器module
jsq60(qh,ql,clk,reset); output[3:0]qh; output[3:0]ql; reg [3:0] qh; reg [3:0] ql; input clk,reset;
always @(posedge clk or negedge reset) begin
if(~reset){qh,ql}<=0; else begin
6
if({qh,ql}==8'h59){qh,ql}<=0;
else begin if(ql==9)begin ql<=0;qh<=qh+1;end else ql<=ql+1; end end end endmodule
实验五:设计一个电路,使八个数码管依次显示0、1、2、„A、B、„E F
实验六:设计一个电路,使两个数码管显示112的十二进制计数,两个数码管显示059的六十进制计数
注:z38为实验二中的3-8译码器,z60为六十进制计数器,z12为十 进制计数器
mux8_1及z12的程序文档为
module mux8_1(sel,d0,d1,d2,d3,d4,d5,d6,d7,q0,q1,q2,q3); input[2:0] sel ;
input[3:0] d0,d1,d2,d3,d4,d5,d6,d7; output q0,q1,q2,q3; reg q0,q1,q2,q3;
always @ (sel or d0 or d1 or d2 or d3 or d4 or d5 or d6 or d7) begin
7
case(sel)
3'd0: {q3,q2,q1,q0}=d0;
3'd1: {q3,q2,q1,q0}=d1;
3'd2: {q3,q2,q1,q0}=d2; 3'd3: {q3,q2,q1,q0}=d3; 3'd4: {q3,q2,q1,q0}=d4; 3'd5: {q3,q2,q1,q0}=d5; 3'd6: {q3,q2,q1,q0}=d6; 3'd7: {q3,q2,q1,q0}=d7;
default:{q3,q2,q1,q0}=4'bxxxx; endcase end
endmodule
module z12(qh,ql,clk,reset); output[3:0]qh; output[3:0]ql;
封装后为:
reg [3:0] qh; reg [3:0] ql;
input clk,reset;
always @(posedge clk or negedge reset) begin
if(~reset){qh,ql}<=0; else begin
if({qh,ql}==8'h11){qh,ql}<=0; else begin
if(ql==9)begin ql<=0;qh<=qh+1;end else
ql<=ql+1; end end end
endmodule
8
设计题目:数字式竞赛抢答器 设计要求:
1.设计一个可容纳4组参赛的数字式抢答器, 每组设一个按钮,供抢答使用。
2.抢答器具有第一信号鉴别和锁存功能,使除第一抢答者外的按钮不起作用。
3.设置一个主持人“复位”按钮。
4.主持人复位后,开始抢答,第一信号鉴别锁存电路得到信号后,有指示灯显示抢答组别。
5.设置一个计分电路,每组开始预置10分,主持人记分,答对一次加1分,答错一次减1分。 数字抢答器系统框图:
9
数字抢答器硬件系统示意图:
设计思路:
1.此设计问题的关键是准确判断出第一抢答者并将其锁存,实现的方法可使用触发器或锁存器,在得到第一信号后将输入封锁,使其它组的抢答信号无效。
2.形成第一抢答信号后,用编码、译码及数码显示电路显示第一抢答者的组别,用第一抢答信号控制一个具有2种工作频率交替变化的音频振荡器工作,推动扬声器发出2种笛音音响。
3.计分电路采用十进制加/减计数器、数码管扫描显示,设置复位信号reset1、加分信号up,减分信号down,reset1=1时,方可以正常加减分数。
10
设计内容:
1.鉴别锁存单元 本设计中使用74161作为锁存主体部分,利用74161的置数功能采集抢答信号,之后再以或门返回输出信号将置数功能取消,并利用保持功能令输出不变,以此来实现鉴别锁存功能。
2.犯规单元 当judge输入为低电平时,若有抢答信号(c1-c4)输入,则输出犯规信号。
11
3.定时报警单元 本设计中采用两片74160芯片来实现定时功能,图中为100进制定时器的结构图。
封装并组合后可得qdfgds单元为:
在上图中,qdyufg电路由鉴别锁存及犯规单元组成,xianshiqi电路由定时报警单元封装而来,再将整个电路封装可得到qdfgds单元为:
12
4.计分单元
本设计中采用74190来实现计分功能,当reset1=0时,得分归为10分;当reset1=1时,主持人可通过加减控制端UD及脉冲开关Tzmc来进行分数的调整。
单个计分电路及总体计分电路为:
13
封装后为:
单个计分 总体计分
5.显示单元
本设计中的显示单元采用了编程的方式,相应的程序为: module
sel(in1,in2,in3,in4,in5,in6,in7,in8,clk,ms1,ms2,ms3,ms4,ms5,ms6,ms7,ms8,a,b,c,d,e,f,g); input clk; input [3:0]
in1,in2,in3,in4,in5,in6,in7,in8; output
ms1,ms2,ms3,ms4,ms5,ms6,ms7,ms8,a,b,c,d,e,f,g;
14
reg
ms1,ms2,ms3,ms4,ms5,ms6,ms7,ms8,a,b,c,d,e,f,g; reg [3:0] temp; reg [2:0] flag; always@(posedge clk) begin
{ms1,ms2,ms3,ms4,ms5,ms6,ms7,ms8}=8'b00000000; flag=flag+1; case (flag)
0:begin temp=in1;ms1=1;end
1:begin temp=in2;ms2=1;end 2:begin temp=in3;ms3=1;end 3:begin temp=in4;ms4=1;end 4:begin temp=in5;ms5=1;end 5:begin temp=in6;ms6=1;end 6:begin temp=in7;ms7=1;end 7:begin temp=in8;ms8=1;end endcase case(temp)
4'd0:{a,b,c,d,e,f,g}=7'b1111110;
4'd1:{a,b,c,d,e,f,g}=7'b0110000;
4'd2:{a,b,c,d,e,f,g}=7'b1101101;
4'd3:{a,b,c,d,e,f,g}=7'b1111001;
4'd4:{a,b,c,d,e,f,g}=7'b0110011;
4'd5:{a,b,c,d,e,f,g}=7'b1011011;
4'd6:{a,b,c,d,e,f,g}=7'b1011111;
4'd7:{a,b,c,d,e,f,g}=7'b1110000;
4'd8:{a,b,c,d,e,f,g}=7'b1111111;
4'd9:{a,b,c,d,e,f,g}=7'b1111011;
4'hA:{a,b,c,d,e,f,g}=7'b1110111;
4'hB:{a,b,c,d,e,f,g}=7'b0011111;
4'hC:{a,b,c,d,e,f,g}=7'b1001110;
4'hD:{a,b,c,d,e,f,g}=7'b0111101;
4'hE:{a,b,c,d,e,f,g}=7'b1001111;
4'hF:{a,b,c,d,e,f,g}=7'b1000111;
default:{a,b,c,d,e,f,g}=7'b1111110;
15
endcase end 封装后为:
endmodule
数字抢答器完整电路图:
16
结论
这次EDA课程设计的日子,可以说是苦多于甜,但是可以学的到很多很多的东西,同时不仅可以巩固以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次设计,进一步加深了对EDA的了解,让我对它有了更加浓厚的兴趣。特别是当每一个子模块编写调试成功时,心里特别的开心。但是在编写顶层文件的程序时,遇到了不少问题,特别是各元件之间的连接,以及信号的定义,总是有错误,在细心的检查下,终于找出了错误和警告。另外,在设计抢答模块时,我曾经对自己的方案改之又改,虽然说投入了大量的时间,但我却学到了不少东西。总的来说,这次的EDA设计还是较为成功的,因为它不仅让我巩固了以前的知识,锻炼了自己的动手能力,而且还让理论终得以付诸于实践,为我带来了自信心。
参考文献:
1 李国丽,朱维勇.电子技术实验指导书.合肥:中国科技大学出版社,2000
2 王金明编,杨吉斌.数字系统设计与Verilog HDL.北京:电子工业出版社,2002
3 潘松,黄继业. EDA技术实用教程.北京:科学出版社,2002
17
因篇幅问题不能全部显示,请点此查看更多更全内容