文档介绍:、单项选择题(30分,每题2分)
A. STD_LOGIC_ARITH
1 .以下关于适配描述错误的是B
,
使之产生最终的下载文件
■j答
I
;不
a
■
三、程序填空题(20分,每空2分)
以下是一个模为 60 (0〜59)的8421BCDK加法计数器 VHDL苗述,
请补充完整
LIBRARY IEEE;
Use logic
END PROCESS ;
GE <= GE1;
SHI<=SHI1
END bhv;
四、程序改错题(仔细阅读下列程序后回答问题,12分)
ENTITY ta IS
PORT ( CLK : IN STD_LOGIC ;
SHI : OUT INTEGER RANGE 0 TO 9;
GE:OUT INTEGER RANGE 0 TO 9);
END ;
ARCHITECTURE bhv OF ta IS
SIGNAL SHI1,GE1 :INTEGER RANGE 0 TO
1 LIBRARY IEEE;
BEGIN
PROCESS( CLK )
BEGIN
IF CLK 'EVENT AND CLK= T
then
IF GE1 = 9 THEN
GE1 <= 0 ;
IF SHI1=5THEN
SHI1<=0;
ELSE SHI1<=SHI+1;
END IF;
ELSE
GE1<=GE1+1;
END IF;
END IF
USE ;
ENTITY ga IS
PORT ( CLK : IN STD_LOGIC ;
Q : OUT STD_LOGIC_VECTOR(3
DOWNTO 0));
END gb;
ARCHITECTURE bhv OF ga IS
SIGNAL Q1 : STD_LOGIC_VECTOR(3DOWNTO 0);
BEGIN
PROCESS (CLK)
BEGIN
IF RISING_EDGE(CLK) begin
IF Q1 <“1001” THEN
Q1<=Q1 + 1 ;
ELSE
Q1<=(OTHERS => '0');
END IF;
END IF;
END PROCESS ;
Q <= Q1;
END bhv;
;封
程序编译时,提示的错误为:
Error: Line 12: File e:\mywork\test\: VHDL syntax error: If statement must
have THEN, but found BEGIN instead
Error: Line 14: File e:\mywork\test\ga .vhd:Subprogram error:can ' t interpret
subprogram call
请回答问题:在程序中存在两处错误,试指出并修改正确
出应该插入的行号
答:
⑴ 12 行 begin
⑵第2行和第
Begin
IF S= 0' Then Q<=A;
ELSE Q<=B;
END IF;
END PROCESS '
END bhv;
(如果是缺少语句请指
改为then
3 行见力 口 USE ;
五、程序设计题(28分)
1 .试用VHDLEBi一个外部特性如图所示的数据选择器,
S为控制端口
(10 分)
Library IEEE;
Use ;
Entity sjxz IS
Port(A,B,S:in std_logic;
Q:out std_logic);
END entity sjxz;
Architecture bhv of sjxz IS
Process(S)
,试
VHDL®言描述这一状态机
用(18分)
S0
0000
S3
1111
V J
Library IEEE;
S1
1001
1s00
Use ;
Use