EDA课程设计报告.docx
- 文档编号:23571532
- 上传时间:2023-05-18
- 格式:DOCX
- 页数:21
- 大小:93.88KB
EDA课程设计报告.docx
《EDA课程设计报告.docx》由会员分享,可在线阅读,更多相关《EDA课程设计报告.docx(21页珍藏版)》请在冰豆网上搜索。
EDA课程设计报告
课程设计报告
专业﹕08通信技术
姓名﹕黄福兰
学号﹕0806090119
日期﹕2010年07月10
设计名称﹕时钟与LED彩灯循环的结合
实验器材﹕计算机,EDA试验箱一台
实现功能:
实现正常的时钟功能,并可对其进行调试。
当开关切换时,可实现LED彩灯的循环状态,并可对其进行启动和暂停控制。
设计流程图:
VHDL程序:
一、通用模块
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYCNT10IS
PORT(CLK1,CLK2,CLK3:
INSTD_LOGIC;
KS1:
INSTD_LOGIC;
KS2:
INSTD_LOGIC;
KEY_IN1:
INSTD_LOGIC;
KEY_IN2:
INSTD_LOGIC;
KEY_IN3:
INSTD_LOGIC;
LED7S:
OUTSTD_LOGIC_VECTOR(6DOWNTO0);
F:
BUFFERSTD_LOGIC_VECTOR(7DOWNTO0);
CBA:
OUTSTD_LOGIC_VECTOR(2DOWNTO0));
END;
ARCHITECTUREoneofCNT10is
SIGNALCNT2:
STD_LOGIC_VECTOR(2DOWNTO0);
SIGNALCNT1:
STD_LOGIC_VECTOR(2DOWNTO0);
SIGNALCNT00:
STD_LOGIC_VECTOR(2DOWNTO0);
SIGNALA:
STD_LOGIC_VECTOR(3DOWNTO0);
SIGNALCO:
STD_LOGIC_VECTOR(3DOWNTO0);
SIGNALCR:
STD_LOGIC_VECTOR(1DOWNTO0);
SIGNALP:
STD_LOGIC_VECTOR(3DOWNTO0);
SIGNALM:
STD_LOGIC_VECTOR(3DOWNTO0);
SIGNALB:
STD_LOGIC_VECTOR(3DOWNTO0);
SIGNALT:
STD_LOGIC_VECTOR(3DOWNTO0);
SIGNALQ:
STD_LOGIC_VECTOR(7DOWNTO0);
SIGNALQ1:
STD_LOGIC_VECTOR(7DOWNTO0);
SIGNALQ2:
STD_LOGIC_VECTOR(7DOWNTO0);
SIGNALJISHU:
STD_LOGIC_VECTOR(4DOWNTO0);
SIGNALTEMP1:
STD_LOGIC_VECTOR(7DOWNTO0);
SIGNALTEMP2:
STD_LOGIC_VECTOR(7DOWNTO0);
SIGNALTEMP3:
STD_LOGIC_VECTOR(7DOWNTO0);
SIGNALCLK20:
STD_LOGIC;
SIGNALCOUT0:
STD_LOGIC;
SIGNALCOUT00:
STD_LOGIC;
SIGNALCOUT10:
STD_LOGIC;
SIGNALCOUT20:
STD_LOGIC;
SIGNALCOUT30:
STD_LOGIC;
SIGNALCOUT40:
STD_LOGIC;
SIGNALJI:
STD_LOGIC;
signalcouNt:
integerrange0to1000;
SIGNALCOUT1:
STD_LOGIC;
SIGNALJN:
STD_LOGIC_VECTOR(1DOWNTO0);
SIGNALCOUT2:
STD_LOGIC;
SIGNALCOUT3:
STD_LOGIC;
SIGNALCOUT4:
STD_LOGIC;
SIGNALCLK00:
STD_LOGIC;
SIGNALKEY_OUT1:
STD_LOGIC;
SIGNALKEY_OUT2:
STD_LOGIC;
SIGNALKEY_OUT3:
STD_LOGIC;
SIGNALCLK4:
STD_LOGIC;
SIGNALCLK22:
STD_LOGIC;
SIGNALD0:
STD_LOGIC_VECTOR(3DOWNTO0);
SIGNALD1:
STD_LOGIC_VECTOR(3DOWNTO0);
SIGNALD2:
STD_LOGIC_VECTOR(3DOWNTO0);
SIGNALD3:
STD_LOGIC_VECTOR(3DOWNTO0);
SIGNALD4:
STD_LOGIC_VECTOR(3DOWNTO0);
SIGNALD5:
STD_LOGIC_VECTOR(3DOWNTO0);
SIGNALD6:
STD_LOGIC_VECTOR(3DOWNTO0);
SIGNALD7:
STD_LOGIC_VECTOR(3DOWNTO0);
SIGNALA1:
STD_LOGIC_VECTOR(3DOWNTO0);
SIGNALA2:
STD_LOGIC_VECTOR(3DOWNTO0);
SIGNALA3:
STD_LOGIC_VECTOR(3DOWNTO0);
SIGNALA4:
STD_LOGIC_VECTOR(3DOWNTO0);
SIGNALA5:
STD_LOGIC_VECTOR(3DOWNTO0);
SIGNALA6:
STD_LOGIC_VECTOR(3DOWNTO0);
SIGNALA7:
STD_LOGIC_VECTOR(3DOWNTO0);
SIGNALA8:
STD_LOGIC_VECTOR(3DOWNTO0);
SIGNALL:
STD_LOGIC_VECTOR(3DOWNTO0);
SIGNALcnt8:
STD_LOGIC_VECTOR(2DOWNTO0);
SIGNALCNT:
STD_LOGIC_VECTOR(2DOWNTO0);
BEGIN
PROCESS(KS2,CLK2,JI,CNT8,A,A1,A2,A4,A3,A5,A6,A7,A8,T,P,JN,F,JISHU,TEMP1,TEMP2,TEMP3)--控制LED灯和时钟的切换
BEGIN
CASEKS2IS
WHEN'1'=>CASEJIIS
WHEN'0'=>CLK22<=CLK2;
WHEN'1'=>CLK22<='0';
WHENOTHERS=>CLK22<='0';
ENDCASE;
CASEJNIS
WHEN"00"=>CBA<="000";B(3DOWNTO0)<=T(3DOWNTO0);
WHEN"01"=>CBA<="001";B(3DOWNTO0)<=T(3DOWNTO0);
WHEN"10"=>CBA<="010";B(3DOWNTO0)<=T(3DOWNTO0);
WHENOTHERS=>CBA<="110";B(3DOWNTO0)<=P;
ENDCASE;
CASEJISHUIS
WHEN"00000"=>F<=TEMP1;
WHEN"00001"=>F<=TEMP1;
WHEN"00010"=>F<=TEMP1;
WHEN"00011"=>F<=TEMP1;
WHEN"00100"=>F<=TEMP1;
WHEN"00101"=>F<=TEMP1;
WHEN"00110"=>F<=TEMP1;
WHEN"00111"=>F<=TEMP1;
WHEN"01000"=>F<=TEMP1;
WHEN"01001"=>F<=TEMP2;
WHEN"01010"=>F<=TEMP2;
WHEN"01011"=>F<=TEMP2;
WHEN"01100"=>F<=TEMP2;
WHEN"01101"=>F<=TEMP2;
WHEN"01110"=>F<=TEMP2;
WHEN"01111"=>F<=TEMP2;
WHEN"10000"=>F<=TEMP2;
WHEN"10001"=>F<=TEMP2;
WHEN"10010"=>F<=TEMP3;
WHEN"10011"=>F<=TEMP3;
WHEN"10100"=>F<=TEMP3;
WHEN"10101"=>F<=TEMP3;
WHEN"10110"=>F<=TEMP3;
WHEN"10111"=>F<=TEMP3;
WHEN"11000"=>F<=TEMP3;
WHEN"11001"=>F<=TEMP3;
WHEN"11010"=>F<=TEMP3;
WHENOTHERS=>F<="00000000";
ENDCASE;
WHEN'0'=>CLK22<='0';F<="00000000";B(3DOWNTO0)<="1111";
CASECNT8IS
WHEN"000"=>CBA<="000";B(3DOWNTO0)<=A1(3DOWNTO0);
WHEN"001"=>CBA<="001";B(3DOWNTO0)<=A2(3DOWNTO0);
WHEN"010"=>CBA<="010";B(3DOWNTO0)<=A3(3DOWNTO0);
WHEN"011"=>CBA<="011";B(3DOWNTO0)<=A4(3DOWNTO0);
WHEN"100"=>CBA<="100";B(3DOWNTO0)<=A5(3DOWNTO0);
WHEN"101"=>CBA<="101";B(3DOWNTO0)<=A6(3DOWNTO0);
WHEN"110"=>CBA<="110";B(3DOWNTO0)<=A7(3DOWNTO0);
WHEN"111"=>CBA<="111";B(3DOWNTO0)<=A8(3DOWNTO0);
WHENOTHERS=>CBA<="010";B(3DOWNTO0)<=P;
ENDCASE;
WHENOTHERS=>CLK22<='0';CBA<="010";B(3DOWNTO0)<=P;F<="00000000";B(3DOWNTO0)<="1111";
ENDCASE;
ENDPROCESS;
PROCESS(B)---数字对应数码管的段码
BEGIN
CASEBIS
WHEN"0000"=>LED7S<="0111111";
WHEN"0001"=>LED7S<="0000110";
WHEN"0010"=>LED7S<="1011011";
WHEN"0011"=>LED7S<="1001111";
WHEN"0100"=>LED7S<="1100110";
WHEN"0101"=>LED7S<="1101101";
WHEN"0110"=>LED7S<="1111101";
WHEN"0111"=>LED7S<="0000111";
WHEN"1000"=>LED7S<="1111111";
WHEN"1001"=>LED7S<="1101111";
WHEN"1110"=>LED7S<="1000000";
WHEN"1111"=>LED7S<="0000000";
WHENOTHERS=>LED7S<="0000000";
ENDCASE;
ENDPROCESS;
END;
二、时钟模块
PROCESS(CLK20)--秒个位计数
BEGIN
IFCLK20'EVENTANDCLK20='1'THEN
IFQ(3DOWNTO0)<9
THENQ(3DOWNTO0)<=Q(3DOWNTO0)+1;
COUT0<='0';
ELSEQ(3DOWNTO0)<="0000";
COUT0<='1';
ENDIF;
ENDIF;
ENDPROCESS;
PROCESS(COUT00)--秒十位计数
BEGIN
IFCOUT00'EVENTANDCOUT00='1'THEN
IFQ(7DOWNTO4)<5
THENQ(7DOWNTO4)<=Q(7DOWNTO4)+1;
COUT1<='0';
ELSEQ(7DOWNTO4)<="0000";
COUT1<='1';
ENDIF;
ENDIF;
ENDPROCESS;
PROCESS(COUT10)--分个位计数
BEGIN
IFCOUT10'EVENTANDCOUT10='1'THEN
IFQ1(3DOWNTO0)<9
THENQ1(3DOWNTO0)<=Q1(3DOWNTO0)+1;
COUT2<='0';
ELSEQ1(3DOWNTO0)<="0000";
COUT2<='1';
ENDIF;
ENDIF;
ENDPROCESS;
PROCESS(COUT20)--分十位计数
BEGIN
IFCOUT20'EVENTANDCOUT20='1'THEN
IFQ1(7DOWNTO4)<5
THENQ1(7DOWNTO4)<=Q1(7DOWNTO4)+1;
COUT3<='0';
ELSEQ1(7DOWNTO4)<="0000";
COUT3<='1';
ENDIF;
ENDIF;
ENDPROCESS;
PROCESS(COUT30)--小时个位计数
BEGIN
IFCOUT30'EVENTANDCOUT30='1'THEN
IFQ2(7DOWNTO4)<2THEN
IFQ2(3DOWNTO0)<9
THENQ2(3DOWNTO0)<=Q2(3DOWNTO0)+1;
COUT4<='0';
ELSEQ2(3DOWNTO0)<="0000";
COUT4<='1';
ENDIF;
ELSE
IFQ2(3DOWNTO0)<3
THENQ2(3DOWNTO0)<=Q2(3DOWNTO0)+1;
COUT4<='0';
ELSEQ2(3DOWNTO0)<="0000";
COUT4<='1';
ENDIF;
ENDIF;
ENDIF;
ENDPROCESS;
PROCESS(COUT40)--小时十位计数
BEGIN
IFCOUT40'EVENTANDCOUT40='1'THEN
IFQ2(7DOWNTO4)<2
THENQ2(7DOWNTO4)<=Q2(7DOWNTO4)+1;
ELSEQ2(7DOWNTO4)<="0000";
ENDIF;
ENDIF;
ENDPROCESS
PROCESS(CLK3,KEY_IN1)--按键1去抖动
VARIABLETMP1:
STD_LOGIC_VECTOR(7DOWNTO0);
BEGIN
IFCLK3'EVENTANDCLK3='1'THEN
TMP1(7DOWNTO0):
=TMP1(6DOWNTO0)&KEY_IN1;
IFTMP1="11111111"THEN
KEY_OUT1<='1';
ELSE
KEY_OUT1<='0';
ENDIF;
ENDIF;
ENDPROCESS;
PROCESS(CLK3,KEY_IN2)--按键2去抖动
VARIABLETMP2:
STD_LOGIC_VECTOR(7DOWNTO0);
BEGIN
IFCLK3'EVENTANDCLK3='1'THEN
TMP2(7DOWNTO0):
=TMP2(6DOWNTO0)&KEY_IN2;
IFTMP2="11111111"THEN
KEY_OUT2<='1';
ELSE
KEY_OUT2<='0';
ENDIF;
ENDIF;
ENDPROCESS;
PROCESS(KEY_OUT1)--调时钟对CBA的选择
BEGIN
IFKEY_OUT1'EVENTANDKEY_OUT1='1'THEN
IFCNT<7THEN
CNT<=CNT+1;
ELSECNT<="000";
ENDIF;
ENDIF
ENDPROCESS;
PROCESS(CLK1)---动态扫描的时钟与显示
BEGIN
IFCLK1'EVENTANDCLK1='1'THEN
IFCNT8<7THEN
CNT8<=CNT8+1;
ELSECNT8<="000";
ENDIF;
ENDIF;
ENDPROCESS;
PROCESS(CLK1)--0.5秒取反
BEGIN
IFCLK1'EVENTANDCLK1='1'THEN
IF(COUNT=499)THEN
CLK4<=NOTCLK4;
COUNT<=0;
ELSE
COUNT<=COUNT+1;
ENDIF;
ENDIF;
ENDPROCESS;
PROCESS(CLK4,Q,Q1,Q2,P,L)--送闪烁的数
BEGIN
CASECLK4IS
WHEN'1'=>D0<=Q(3DOWNTO0);D1<=Q(7DOWNTO4);D3<=Q1(3DOWNTO0);D4<=Q1(7DOWNTO4);
D6<=Q2(3DOWNTO0);D7<=Q2(7DOWNTO4);D2<=L;D5<=L;
WHEN'0'=>D0<=P;D1<=P;D3<=P;D4<=P;D7<=P;D6<=P;
WHENOTHERS=>D0<=P;D1<=P;D3<=P;D4<=P;D7<=P;D6<=P;D2<=P;D5<=P;
ENDCASE;
ENDPROCESS;
L<="1110";
P<="1111";
PROCESS(KS1,D0,D1,D2,D3,D4,D5,D6,D7,Q,Q1,Q2,CNT,P,KEY_OUT2,CLK2,COUT0,COUT1,COUT2,COUT3,COUT4)--进入调时状态
BEGIN
CASEKS1IS
WHEN'1'=>CASECNTIS
WHEN"000"=>A1(3DOWNTO0)<=D0;A2(3DOWNTO0)<=Q(7DOWNTO4);A3(3DOWNTO0)<=D2;A4(3DOWNTO0)<=Q1(3DOWNTO0);
A5(3DOWNTO0)<=Q1(7DOWNTO4);A6(3DOWNTO0)<=D5;A7(3DOWNTO0)<=Q2(3DOWNTO0);A8(3DOWNTO0)<=Q2(7DOWNTO4);
CLK20<=KEY_OUT2;COUT00<='0';COUT10<='0';COUT20<='0';COUT30<='0';COUT40<='0';
WHEN"001"=>A2(3DOWNTO0)<=D1;A1(3DOWNTO0)<=Q(3DOWNTO0);A3(3DOWNTO0)<=D2;A4(3DOWNTO0)<=Q1(3DOWNTO0);
A5(3DOWNTO0)<=Q1(7DOWNTO4);A6(3DOWNTO0)<=D5;A7(3DOWNTO0)<=Q2(3DOWNTO0);A8(3DOWNTO0)<=Q2(7DOWNTO4);
COUT00<=KEY_OUT2;CLK20<='0';COUT10<='0';COUT20<='0';COUT30<='0';COUT40<='0';
WHEN"010"=>A3(3DOWNTO0)<=D2;A1(3DOWNTO0)<=Q(3DOWNTO0);A2(3DOWNTO0)<=Q(7DOWNTO4);A4(3DOWNTO0)<=Q1(3DOWNTO0);
A5(3DOWNTO0)<=Q1(7DOWNTO4);A6(3DOWNTO0)<=D5;A7(3DOWNTO0)<=Q2(3DOWNTO0);A8(3DOWNTO0)<=Q2(7DOWNTO4);
CLK20<='0';COUT00<='0';COUT10<='0';COUT20<='0';COUT30<='0';
COUT40<='0';
WHEN"011"=>A4(3DOWNTO0)<=D3;A1(3DOWNTO0)<=Q(3DOWNTO0);A2(3DOWNTO0)<=Q(7DOWNTO4);A3(3DOWNTO0)<=D2;
A5(3DOWNTO0)<=Q1(7DOWNTO4);A6(3DOWNTO0)<=D5;A7(3DOWNTO0)<=Q2(3DOWNTO0);A8(3DOWNTO0)<=Q2(7DOWNTO4);
COUT10<=KEY_OUT2;CLK20<='0';COUT00<='0';COUT20<='0';COUT30<='0';COUT40<='0';
WHEN"100"=>A5(3DOWNTO0)<=D4;A1(3DOWNTO0)<=Q(3DOWNTO0);A2(3DOWNTO0)<=Q(7DOWNTO4);A3(3DOWNTO0)<=D2;
A4(3DOWNTO0)<=Q1(3DOWNTO0);A6(3DOWNTO0)<=D5;A7(3DOWNTO0)<=Q2(3DOWNTO0);A8(3DOWNTO0)<=Q2(7DOWNTO4);
COUT20<=KEY_OUT2;CLK20<='0';COUT00<='0';COUT10<='0';COUT30<='0';COUT40<='0';
WHEN"101"=>A6(3DOWNTO0)<=D5;A5(3DOWNTO0)<=Q1(7DOWNTO4);A1(3DOWNTO0)<=Q(3DOWNTO0);A2(3DOWNTO0)<=Q(7DOWNTO4);A3(3DOWNTO
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- EDA 课程设计 报告