1、VHDL复习题一、选择题( A )1一个项目的输入输出端口是定义在:A. 实体中 B. 结构体中C. 任何位置 D. 进程体 ( B)2描述项目具有逻辑功能的是:A. 实体 B. 结构体C. 配置 D. 进程( A )3关键字ARCHITECTURE定义的是:A. 结构体 B. 进程C. 实体 D. 配置 ( D )4VHDL语言中变量定义的位置是:A. 实体中中任何位置 B. 实体中特定位置C. 结构体中任何位置 D. 结构体中特定位置 ( D )5VHDL语言中信号定义的位置是:A. 实体中任何位置 B. 实体中特定位置C. 结构体中任何位置 D. 结构体中特定位置( B )6变量是局部量
2、可以写在:A. 实体中 B. 进程中C. 线粒体 D. 种子体中 ( A )7变量和信号的描述正确的是:A. 变量赋值号是:= B. 信号赋值号是:=C. 变量赋值号是= D. 二者没有区别( B )8. 变量和信号的描述正确的是:A. 变量可以带出进程 B. 信号可以带出进程C. 信号不能带出进程 D. 二者没有区别( )9对于信号和变量的说法,哪一个是不正确的:A. 信号用于作为进程中局部数据存储单元 B. 变量的赋值是立即完成的C. 信号在整个结构体内的任何地方都能适用D. 变量和信号的赋值符号不一样( A )10下列关于变量的说法正确的是:A. 变量是一个局部量,它只能在进程和子程序中
3、使用 B. B. 变量的赋值不是立即发生的,它需要有一个延时C. 在进程的敏感信号表中,既可以使用信号,也可以使用变量D. 变量赋值的一般表达式为:目标变量名= 表达式( C )11可以不必声明而直接引用的数据类型是:A. STD_LOGIC B. STD_LOGIC_VECTORC. BIT D. 前面三个答案都是错误的( C )12STD_LOGIG_1164中定义高阻的字符是:A. X B. xC. z D. Z ( A )13STD_LOGIG_1164中字符H定义的是:A. 弱信号1 B. 弱信号0C. 没有这个定义 D. 初始值 ( B )14使用STD_LOGIG_1164中的数
4、据类型时:A. 可以直接调用 B. 必须在库和包集合中声明C. 必须在实体中声明 D. 必须在结构体中声明 ( B )15关于转化函数说法正确的是:A. 任何数据类型都可以通过转化函数相互转化B. 只有特定类型的数据类型可以转化 C. 任何数据类型都不能转化D. 前面说法都是错误的( C )16VHDL运算符优先级说法正确的是:A. 逻辑运算的优先级最高 B. 关系运算的优先级最高C. 逻辑运算的优先级最低 D. 关系运算的优先级最低( D )17VHDL运算符优先级说法正确的是:A. NOT的优先级最高 B. AND和NOT属于同一个优先级C. NOT的优先级最低 D. 前面的说法都是错误的
5、( D )18VHDL运算符优先级说法正确的是:A. 括号不能改变优先级 B. 不能使用括号C. 括号的优先级最低 D. 括号可以改变优先级 ( B )19如果a=1,b=0,则逻辑表达式(a AND b) OR( NOT b AND a)的值是:A. 0 B. 1C. 2 D. 不确定( B )20正确给变量X赋值的语句是:A. XNULLC. CASE语句中的选择值只能出现一次,且不允许有相同的选择值的条件语句出现D. CASE语句执行必须选中,且只能选中所列条件语句中的一条( D )29VHDL中,为目标变量赋值符号是:A. =: B. =C. 10 THEN Q1 0); - 置零 E
6、LSE Q1 = Q1 + 1 ; - 加1 END IF; END IF; END PROCESS ; ; - 输出END bhv;2以下程序是BCD码表示099计数器的VHDL描述,试补充完整。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE ;ENTITY cnt100b is port( clk, rst, en : in std_logic; cq : out std_logic_vector(7 downto 0); - 计数输出 cout: out std_logic); - 进位输出END ENTITY cnt100b; bhv of c
7、nt100b isBEGIN PROCESS (clk, rst, en) cqi : std_logic_vector(7 downto 0); BEGIN if rst = 1 then cqi := ; - 计数器清零 else if then - 上升沿判断 if en = 1 then if cqi(3 downto 0) 1001 then - 比较低4位 ; - 计数加1 else if cqi(7 downto 4) 0); end if; cqi ( ) := “0000”; - 低4位清零 end if; end if; ; end if; if cqi = “ ” the
8、n - 判断进位输出 cout = 1; else cout = 0; end if; ; END PROCESS;END ARCHITECTURE bhv;3以下程序是多路选择器的VHDL描述,试补充完整。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY bmux IS PORT ( sel : STD_LOGIC; A, B : IN STD_LOGIC_VECTOR(7 DOWNTO 0); Y : STD_LOGIC_VECTOR(7 DOWNTO 0) ;END bmux;ARCHITECTURE bhv OF bmux ISBEGIN
9、y = A when sel = 1 ;END ;4以下程序是10/4线优先编码器的VHDL描述,试补充完整。LIBRARY IEEE ;USE IEEE. .ALL;ENTITY coder IS PORT ( din : IN STD_LOGIC_VECTOR( ); output : STD_LOGIC_VECTOR(3 DOWNTO 0) );END coder;ARCHITECTURE behav OF IS SIGNAL SIN : STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN PROCESS ( ) BEGIN IF (din(9)=0) THEN SI
10、N = 1001 ; ELSIF ( ) THEN SIN = 1000 ; ELSIF (din(7)=0) THEN SIN = 0111 ; ELSIF (din(6)=0) THEN SIN = 0110 ; ELSIF (din(5)=0) THEN SIN = 0101 ; ELSIF (din(4)=0) THEN SIN = 0100 ; ELSIF (din(3)=0) THEN SIN = 0011 ; ELSIF (din(2)=0) THEN SIN = 0010 ; ELSIF (din(1)=0) THEN SIN = 0001 ; ELSE ; ; END PRO
11、CESS ; ;END behav;五、程序分析题1以下程序是四选一数据选择器的VHDL描述,请分析程序并画出原理图或详述其功能LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY multi_4v IS PORT(S : IN STD_LOGIC_VECTOR (1 DOWNTO 0); A,B,C,D : IN STD_LOGIC; Y : OUT STD_LOGIC);END multi_4v;ARCHITECTURE a OF multi_4v ISBEGINPROCESS BEGINIF (S=00) THEN Y = A; ELSIF (S
12、=01) THEN Y = B; ELSIF (S=10) THEN Y = C; ELSIF (S=11) THEN Y = D; END IF; END PROCESS;END a;2下面是同步清零可逆计数器的程序,请分析程序并画出原理图或详述其功能LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY countud ISPORT(clk :IN STD_LOGIC; clr :IN STD_LOGIC; dire :IN STD_LOGIC; q :BUFFER STD_LOGIC_
13、VECTOR(7 DOWNTO 0);END countud;ARCHITECTURE a OF countud ISBEGIN PROCESS(clk) BEGIN IF clkevent AND clk=1 THEN IF clr=0 THEN q=00000000; ELSIF dire=1 THEN q=q+1; ELSE q=q-1; END IF; END IF; END PROCESS;END a;3以下程序是上升沿计数器的VHDL描述,请分析程序并画出原理图或详述其功能LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY three I
14、S PORT(clk,d : IN STD_LOGIC; Dout : OUT STD_LOGIC );END;ARCHITECTURE bhv OF three IS SIGNAL tmp: STD_LOGIC; BEGIN P1: PROCESS(clk) BEGIN IF rising_edge(clk) THEN Tmp = d; dout = tmp; END IF; END PROCESS P1; END bhv; 六、程序阅读理解题1以下程序能实现加和减功能的计数器,请在划线空白处注释该句的功能Library ieee; Use ieee.std_logic_1164.all;
15、Use ieee.std_logic_unsigned.all;Entity up_down is Port(clk,rst,en,up: in std_logic; Sum: out std_logic_vector(2 downto 0); Cout: out std_logic);End up_down;Architecture a of up_down is Signal count: std_logic_vector(2 downto 0); BeginProcess(clk,rst) Begin If rst=0 then Count0) ; Elsif rising_edge(c
16、lk) then If en=1 then Case up is When 1 = countcount=count-1; End case; End if; End if; End process; Sum=count; Cout =1 when en=1 and (up=1 and count=7) or (up=0 and count=0) else 0; End a; 2仔细阅读下列程序,回答问题LIBRARY IEEE; - 1USE IEEE.STD_LOGIC_1164.ALL; - 2ENTITY LED7SEG IS - 3PORT ( A : IN STD_LOGIC_VE
17、CTOR(3 DOWNTO 0); - 4 CLK : IN STD_LOGIC; - 5 LED7S : OUT STD_LOGIC_VECTOR(6 DOWNTO 0); - 6END LED7SEG; - 7ARCHITECTURE one OF LED7SEG IS - 8 SIGNAL TMP : STD_LOGIC; - 9BEGIN - 10 SYNC : PROCESS(CLK, A) - 11 BEGIN - 12 IF CLKEVENT AND CLK = 1 THEN - 13 TMP LED7S LED7S LED7S LED7S LED7S LED7S LED7S LED7S = 0000111; - 27
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1