篮球比赛数字记分牌的设计方案文档格式.docx
《篮球比赛数字记分牌的设计方案文档格式.docx》由会员分享,可在线阅读,更多相关《篮球比赛数字记分牌的设计方案文档格式.docx(11页珍藏版)》请在冰豆网上搜索。
2系统设计…………………………
设计思路
系统原理
3系统实现……………………………………………
4系统仿真……………………………………………
5硬件验证(操作)说明………………………………
6总结…………………………………………………
7参考书目……………………………………………
一、课程设计题目、内容与要求
课程设计的题目:
课程设计内容:
二、系统设计
设计思路:
篮球比赛记分牌是记录两队比赛的得分情况,并能够进行纠错功能;
根据系统设计的要求,篮球记分牌的电路原理框图如下:
系统原理与设计说明
系统各个模块的功能如下:
1、D触发器电路模块实现翻转功能当出错时,输出为1,使电路回到上一个正确的状态。
2、4为二进制全加器电路模块实现加法计数功能。
3、移位寄存器电路模块保存比赛两队得分情况的4个相邻状态,出错时将调用上一个正确状态。
4、二选一数据选择器电路模块用来控制移位寄存器
5、LED数码管驱动电路模块
三、系统实现
各模块电路的源程序如下:
1、D触发器电路模块及程序:
set输入(Q=1),清零应该可以用复位键reset吧(Q=0)。
libraryieee;
use
entitysync_rsdffis
port(d,clk:
instd_logic;
set:
reset:
q,qb:
outstd_logic);
endsync_rsdff;
architecturertl_arcofsync_rsdffis
begin
process(clk)
if(clk'
eventandclk='
1'
)then
if(set='
0'
andreset='
q<
='
;
qb<
elsif(set='
else
=d;
=notd;
endif;
endprocess;
endrtl_arc;
2、移位寄存器模块电路及程序:
libraryIEEE;
useshft_regis
port(
DIR:
CLK:
CLR:
SET:
CE:
LOAD:
SI:
DATA:
instd_logic_vector(3downto0);
data_out:
outstd_logic_vector(3downto0)
);
endshft_reg;
architectureshft_reg_archofshft_regis
signalTEMP_data_out:
std_logic_vector(3downto0);
begin
process(CLK)
ifrising_edge(CLK)then
ifCE='
then
ifCLR='
TEMP_data_out<
="
0000"
elsifSET='
TEMP_data_out<
1111"
elsifLOAD='
=DATA;
else
ifDIR='
=SI&
TEMP_data_out(3downto1);
=TEMP_data_out(2downto0)&
SI;
data_out<
=TEMP_data_out;
endarchitecture;
3、二选一数据选择器电路模块及程序:
entitymuxis
port(do,d1:
inbit;
sel:
q:
outbit);
endmux;
architectureaofmuxis
=(doandsel)or(notselandd1);
enda;
4、加法计数器的电路模块及程序:
LIBRARYIEEE;
USEadd4IS
PORT(a1,a2,a3,a4:
INSTD_LOGIC;
b1,b2,b3,b4:
sum1,sum2,sum3,sum4:
OUTSTD_LOGIC;
cout4:
OUTSTD_LOGIC);
ENDadd4;
ARCHITECTUREadd_arcOFadd4IS
SIGNALcout1,cout2,cout3:
STD_LOGIC;
COMPONENThalfadd
PORT(a,b:
sum,hcarry:
ENDCOMPONENT;
COMPONENTfulladd
PORT(in1,in2,cin:
fsum,fcarry:
BEGIN
u1:
halfaddPORTMAP(a=>
a1,b=>
b1,sum=>
sum1,hcarry=>
cout1);
u2:
fulladdPORTMAP(in1=>
a2,in2=>
b2,cin=>
cout1,fsum=>
sum2,fcarry=>
cout2);
u3:
a3,in2=>
b3,cin=>
cout2,fsum=>
sum3,fcarry=>
cout3);
u4:
a4,in2=>
b4,cin=>
cout3,fsum=>
sum4,fcarry=>
cout4);
ENDadd_arc;
5、七段译码电路及程序:
usedeledis
port(
datain:
instd_logic_vector(3downto0);
qout:
outstd_logic_vector(6downto0)
enddeled;
architecturefuncofdeledis
process(datain)
begin
ifdatain="
thenqout<
="
1111110"
elsifdatain="
0001"
0110000"
0010"
1101101"
0011"
1111001"
0100"
0110011"
0101"
1011011"
0110"
1011111"
0111"
1110000"
1000"
1111111"
1001"
1111011"
elsenull;
endif;
endprocess;
endfunc;
四、系统仿真
1、D触发器电路模块仿真波形:
2、移位寄存器模块电路仿真波形:
3、二选一数据选择器电路模块仿真波形:
4、加法计数器的电路模块仿真波形:
5、七段译码电路仿真波形:
五﹑硬件验证说明
这次设计采用的硬件电路有芯片EP1K10TC100-3,实验板上标准时钟电路、LED显示等,
六、总结
此课题说明了使用VHDL语言设计数字电路的方法以及VHDL语言在数字电路设计仿真中的重要作用,仿真结果表明VHDL语言应用于数字电路仿真是切实可行的,该语言在电子设计领域受到了广泛的接受。
用VHDL硬件描述语言的形式来进行数字系统的设计方便灵活,利用EDA软件进行编译优化仿真极大地减少了电路设计时间和可能发生的错误,降低了开发成本,这种设计方法必将在未来的数字系统设计中发挥越来越重要的作用。
通过对本设计项目的研究,使我进一步了解了EDA、数字电路等多门课程,使得所学的专业知识有机地结合起来,得到了实践和运用的机会,且通过实践和运用巩固了相关的理论知识,提高了工程实践能力。
例如:
使用MAX+PLUSII软件和硬件实验平台都得到了充分的锻炼。
设计过程中,由于知识的局限性,我们遇到过很多困难,不知这样把各个功能模块很好的结合起来,耗费了大了量的时间,但我们并没放弃,克服困难,逐步摸索方法,找到问题所在,缩短了设计周期。
从本设计看出,要做真正的设计、研究,我们现在的知识还远远不够,还需学习更多、更广、更先进的知识才行!
七、参考书目
[1]《PLD与数字系统设计》李辉西安电子科技大学出版社2005
[2]《EDA技术及可编程逻辑器件应用实训》沈明山北京科学出版社2004
[3]《VHDL数字系统设计与高层次综合》林敏方颖立著北京:
电子工业出版社2002
[4]《VHDL程序设计》曾繁泰陈美金著北京:
清华大学出版社2001
[5]《EDA技术实验与课程设计》曹昕燕周风臣清华大学出版社2005
[6]《PLD器件与EDA技术》李冬梅北京广播学院出版社2000