eda考试重点程序Word文件下载.docx
《eda考试重点程序Word文件下载.docx》由会员分享,可在线阅读,更多相关《eda考试重点程序Word文件下载.docx(20页珍藏版)》请在冰豆网上搜索。
a1,b=>
tmp,s=>
s1,y=>
outy);
ENDARCHITECTUREone;
实验二时序逻辑电路的VHDL设计
3:
用VHDL语言设计D边沿触发器。
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYDFF1IS
PORT(CLK:
INSTD_LOGIC;
D:
Q:
OUTSTD_LOGIC);
END;
ARCHITECTUREbhvOFDFF1IS
SIGNALQ1:
STD_LOGIC;
BEGIN
PROCESS(CLK,Q1)
IFCLK'
EVENTANDCLK='
1'
THENQ1<
=D;
ENDIF;
ENDPROCESS;
Q<
=Q1;
ENDbhv;
4:
用VHDL语言设计D锁存器。
ENTITYDFF3IS
ARCHITECTUREbhvOFDFF3IS
PROCESS(CLK,D)
IFCLK='
THENQ<
实验三一般计数器的VHDL设计
5:
用VHDL设计含异步清0和同步时钟使能的十进制加法计数器
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYCNT10IS
PORT(CLK,RST,EN:
INSTD_LOGIC;
CQ:
OUTSTD_LOGIC_VECTOR(3DOWNTO0);
COUT:
ENDCNT10;
ARCHITECTUREBEHAVOFCNT10IS
BEGIN
PROCESS(CLK,RST,EN)
VARIABLECQI:
STD_LOGIC_VECTOR(3DOWNTO0);
IFRST='
THENCQI:
=(OTHERS=>
'
);
ELSIFCLK'
EVENTANDCLK='
THEN
IFEN='
IFCQI<
9THENCQI:
=CQI+1;
ELSECQI:
IFCQI=9THENCOUT<
='
;
ELSECOUT<
CQ<
=CQI;
ENDPROCESS;
ENDBEHAV;
6:
用VHDL设计含异步清0和同步时钟使能的十进制加减可控计数器。
ENTITYCNTIS
PORT(CLK,RST,EN,UD:
ENDCNT;
ARCHITECTUREBEHAVOFCNTIS
PROCESS(CLK,RST,EN,UD)
IFUD='
THEN
IFCQI=0THENCQI:
="
1001"
ELSIFCQI<
10THENCQI:
=CQI-1;
--ENDIF;
IFUD='
IFCQI=0THENCOUT<
实验四计数、译码显示电路的VHDL设计
7:
用VHDL语言设计七段数码显示译码器,实现16进制数的译码显示。
--USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYDECL7SIS
PORT(A:
INSTD_LOGIC_VECTOR(3DOWNTO0);
LED7S:
OUTSTD_LOGIC_VECTOR(6DOWNTO0));
ARCHITECTUREONEOFDECL7SIS
PROCESS(A)
CASEAIS
WHEN"
0000"
=>
LED7S<
0111111"
0001"
0000110"
0010"
1011011"
0011"
1001111"
0100"
1100110"
0101"
1101101"
0110"
1111101"
0111"
0000111"
1000"
1111111"
1101111"
1010"
1110111"
1011"
1111100"
1100"
0111001"
1101"
1011110"
1110"
1111001"
1111"
1110001"
WHENOTHERS=>
NULL;
ENDCASE;
ENDPROCESS;
8:
用VHDL语言描述图4.1所示计数、译码显示电路。
(DEC)
ENTITYDECIS
PORT(CLK0,RST0,ENA0:
LED:
OUTSTD_LOGIC_VECTOR(6DOWNTO0);
COUT0:
ENDDEC;
ARCHITECTUREONEOFDECIS
COMPONENTCNT16IS
PORT(CLK,RST,ENA:
CQ:
COUTY:
COMPONENTDECL7SIS
SIGNALTMP:
CNT16PORTMAP(CLK=>
CLK0,RST=>
RST0,ENA=>
ENA0,CQ=>
TMP,COUTY=>
COUT0);
DECL7SPORTMAP(A=>
TMP,LED7S=>
LED);
END;
(CNT16)
ENTITYCNT16IS
ENDCNT16;
ARCHITECTUREBEHAVOFCNT16IS
PROCESS(CLK,RST,ENA)
IFENA='
15THENCQI:
IFCQI=15THENCOUTY<
ELSECOUTY<
实验五8位数码扫描显示电路的VHDL设计
9:
用VHDL语言设计8位数码扫描显示电路,显示输出数据直接在程序中给出。
ENTITYsmxsIS
PORT(AI:
INOUTSTD_LOGIC_VECTOR(2DOWNTO0);
CLK,RST,EN:
A:
INOUTSTD_LOGIC_VECTOR(3DOWNTO0);
--A:
INSTD_LOGIC_VECTOR(3DOWNTO0);
K:
OUTSTD_LOGIC_VECTOR(7DOWNTO0);
--CQ:
OUTSTD_LOGIC_VECTOR(3DOWNTO0);
OUTSTD_LOGIC;
OUTSTD_LOGIC_VECTOR(6DOWNTO0));
ARCHITECTUREoneOFsmxsIS
SIGNALPASS:
STD_LOGIC_VECTOR(2DOWNTO0);
js:
VARIABLECQI:
STD_LOGIC_VECTOR(2DOWNTO0);
7THENCQI:
IFCQI=7THENCOUT<
PASS<
ENDPROCESSjs;
AI<
=PASS;
sm:
PROCESS(AI)
IFAI="
000"
THENK<
00000001"
ELSIFAI="
001"
00000010"
010"
00000100"
011"
00001000"
100"
00010000"
101"
00100000"
110"
01000000"
ELSEK<
10000000"
ENDPROCESSsm;
A<
="
xs:
PROCESS(A)
CASEAIS
ENDPROCESSxs;
ENDone;
10:
修改实验内容1的程序,增加8个4位锁存器作为输
出显示数据缓冲器,由外部输入8个待显示的十六进制数。
ENTITYSMSCXSIS
--CLK:
CLK0,CLK1,CLK2:
D0:
--COUT:
--Q0:
OUTSTD_LOGIC_VECTOR(3DOWNTO0));
ARCHITECTUREoneOFSMSCXSIS
COMPONENTD4
PORT(CLK:
INSTD_LOGIC_VECTOR(3DOWNTO0);
OUTSTD_LOGIC_VECTOR(3DOWNTO0));
ENDCOMPONENT;
SIGNALP0,P1,P2,P3,P4,P5,P6,P7:
STD_LOGIC_VECTOR(3DOWNTO0);
SIGNALD1,D2,D3,D9,D5,D6,D7,D8:
SC:
PROCESS(CLK2)
VARIABLEQI:
--IFRST='
IFCLK2'
EVENTANDCLK2='
--IFEN='
IFQI<
7THENQI:
=QI+1;
ELSEQI:
--IFCQI=7THENCOUT<
--ELSECOUT<
--PASS<
=QI;
CASEQIIS
D1<
=D0;
D2<
D3<
D9<
D5<
D6<
D7<
111"
D8<
NULL;
ENDPROCESSSC;
U1:
D4PORTMAP(CLK=>
CLK1,D=>
D1,Q=>
P0);
U2:
D2,Q=>
P1);
U3:
D3,Q=>
P2);
U4:
D9,Q=>
P3);
U5:
D5,Q=>
P4);
U6:
D6,Q=>
P5);
U7:
D7,Q=>
P6);
U8:
D8,Q=>
P7);
PROCESS(CLK0)
IFCLK0'
EVENTANDCLK0='
PASS<
=P0;
=P1;
=P2;
=P3;
=P4;
=P5;
=P6;
=P7;