EDA课程设计报告模板.docx
《EDA课程设计报告模板.docx》由会员分享,可在线阅读,更多相关《EDA课程设计报告模板.docx(12页珍藏版)》请在冰豆网上搜索。
![EDA课程设计报告模板.docx](https://file1.bdocx.com/fileroot1/2023-2/3/b1bee28b-c38b-4dc6-af26-c8558a6ddb0a/b1bee28b-c38b-4dc6-af26-c8558a6ddb0a1.gif)
EDA课程设计报告模板
《EDA技术综合设计》
课程设计报告
报告题目:
数字秒表设计
作者所在系部:
电子工程系
作者所在专业:
自动化
作者所在班级:
作者姓名:
指导教师姓名:
完成时间:
2010/12/3
内容摘要
秒表共有6个输出显示,分别为百分之一秒、十分之一秒、秒、十秒、分、十分,所以共有6个计数器与之相对应,6个计数器的输出全都为BCD码输出,这样便于和显示译码器的连接。
当计时达60分钟后,蜂鸣器鸣响10声。
除此之外,整个秒表还需有一个启动信号和一个归零信号,以便秒表能随意停止及启动。
秒表的逻辑结构较简单,它主要由显示译码器、分频器、十进制计数器、六进制计数器和报警器组成。
四个10进制计数器:
用来分别对百分之一秒、十分之一秒、秒和分进行计数;
两个6进制计数器:
用来分别对十秒和十分进行计数;
分频器:
用来产生100HZ计时脉冲;
显示译码器:
完成对显示的控制。
根据电路持点,用层次设计概念将此设计任务分成若干模块,规定每一模块的功能和各模块之间的接口。
。
按适配划分后的管脚定位,同相关功能块硬件电路接口连线。
用VHDL语言描述所有底层模块。
清零信号为异步清零。
当最高位记到6时停止计数显示译码器全部显示零,并发出十声警报声。
按下复位按钮后继续计数。
关键词:
EDA、可编程逻辑器件、计数器、显示器
目录
十进制计数器‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧5
六进制计数器‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧6
选择数码管‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧7
显示数码管‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧8
响铃装置‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧9
总设计电路图‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧10
课题名称
数字秒表设计
完成时间
2010/12/3
指导教师
职称
学生姓名
班级
总体设计要求和技术要点
秒表共有6个输出显示,分别为百分之一秒、十分之一秒、秒、十秒、分、十分,所以共有6个计数器与之相对应,6个计数器的输出全都为BCD码输出,这样便于和显示译码器的连接。
当计时达60分钟后,蜂鸣器鸣响10声。
除此之外,整个秒表还需有一个启动信号和一个归零信号,以便秒表能随意停止及启动。
秒表的逻辑结构较简单,它主要由显示译码器、分频器、十进制计数器、六进制计数器和报警器组成。
在整个秒表中最关键的是如何获得一个精确的100HZ计时脉冲。
工作内容及时间进度安排
课程设计成果
课程设计任务书
十进制计数器模块
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
entityjsq_10is
port(clk,en,rst:
instd_logic;
C10:
outstd_logic_vector(3downto0);
C:
outstd_logic);
endjsq_10;
architectureoneofjsq_10is
signalq:
std_logic_vector(3downto0);
begin
process(clk,en,rst)
begin
if(clk'eventandclk='1')then
if(rst='0')thenq<="0000";
elsif(en='1')then
if(q="1001")thenq<="0000";C<='1';
elseq<=q+1;C<='0';
endif;
endif;
endif;
endprocess;
C10<=q;
endone;
十二进制计数器模块
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
entityjsq_12is
port(clk,en,rst:
instd_logic;
C12:
outstd_logic_vector(3downto0));
endjsq_12;
architectureoneofjsq_12is
signalq:
std_logic_vector(3downto0);
begin
process(clk,en,rst)
begin
if(clk'eventandclk='1')then
if(rst='0')thenq<="0000";
elsif(en='1')then
if(q="1011")thenq<="0000";
elseq<=q+1;
endif;
endif;
endif;
endprocess;
C12<=q;
endone;
十六进制可逆计数器模块
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
entityjsq_16_knis
port(clk,rst,en,plus_sub:
instd_logic;
C16_SHI,C16_GE:
outstd_logic_vector(3downto0));
endjsq_16_kn;
architectureoneofjsq_16_knis
signaldout:
std_logic_vector(7downto0);
begin
process(clk,rst,en,plus_sub)
begin
if(clk'eventandclk='1')then
if(rst='0')then
dout<="00000000";
elsif(en='0')then
dout<=dout;
else
if(plus_sub='1')then
if(dout=9)then
dout<=dout+7;
elsif(dout=21)then
dout<="00000000";
else
dout<=dout+1;
endif;
elsif(plus_sub='0')then
if(dout=16)then
dout<=dout-7;
elsif(dout=0)then
dout<="00010101";
else
dout<=dout-1;
endif;
endif;
endif;
endif;
endprocess;
C16_SHI<=dout(7)&dout(6)&dout(5)&dout(4);
C16_GE<=dout(3)&dout
(2)&dout
(1)&dout(0);
endone;
六十进制计数器模块
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
entityjsq_60is
port(
clk,rst,en:
instd_logic;
C60_shi:
bufferstd_logic_vector(3downto0);
C60_ge:
bufferstd_logic_vector(3downto0));
endjsq_60;
architectureoneofjsq_60is
signaldout:
std_logic_vector(7downto0);
signaldout_3_0:
std_logic_vector(3downto0);
begin
dout_3_0<=C60_ge;
process(clk,rst)
begin
if(clk'eventandclk='1')then
if(en='1')then
if((rst='0')or(dout=89))then
dout<="00000000";
else
if(dout_3_0=9)then
dout<=dout+7;
else
dout<=dout+1;
endif;
endif;
endif;
endif;
endprocess;
C60_shi<=dout(7)&dout(6)&dout(5)&dout(4);
C60_ge<=dout(3)&dout
(2)&dout
(1)&dout(0);
endone;
数码管显示模块
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
useieee.std_logic_arith.all;
entityjsq_dispis
port
(
CLK,RESET:
instd_logic;
C10,C12,C16_GE,C16_SHI,C60_GE,C60_SHI:
std_logic_vector(3downto0);
SEL:
outstd_logic_vector(2downto0);
LED:
outstd_logic_vector(6downto0)
);
endjsq_disp;
architectureabc_bcdofjsq_dispis
signalCOUNT:
std_logic_vector(2downto0);
signalDOUT:
std_logic_vector(6downto0);
signalABC:
std_logic_vector(3downto0);
begin
SEL<=COUNT;
LED<=DOUT;
process(CLK,RESET)
begin
if(RESET='0')then
COUNT<="000";
elsif(CLK'eventandCLK='1')then
if(COUNT>="101")THEN
COUNT<="000";
else
COUNT<=COUNT+1;
endif;
endif;
caseCOUNTIS
WHEN"000"=>ABC<=C10;
WHEN"001"=>ABC<=C12;
WHEN"010"=>ABC<=C16_GE;
WHEN"011"=>ABC<=C16_SHI;
WHEN"100"=>ABC<=C60_GE;
WHEN"101"=>ABC<=C60_SHI;
whenothers=>ABC<="0000";
endcase;
caseABCis
when"0000"=>DOUT<="1111110";
when"0001"=>DOUT<="0110000";
when"0010"=>DOUT<="1101101";
when"0011"=>DOUT<="1111001";
when"0100"=>DOUT<="0110011";
when"0101"=>DOUT<="1011011";
when"0110"=>DOUT<="1011111";
when"0111"=>DOUT<="1110000";
when"1000"=>DOUT<="1111111";
when"1001"=>DOUT<="1111011";
when"1010"=>DOUT<="1110111";
when"1011"=>DOUT<="0011111";
when"1100"=>DOUT<="1001110";
when"1101"=>DOUT<="0111101";
when"1110"=>DOUT<="1001111";
when"1111"=>DOUT<="1000111";
whenothers=>DOUT<="0000000";
endcase;
endprocess;
endabc_bcd;
指导教师评语及设计成绩
评语
课程设计成绩:
指导教师:
日期:
年月日