您的当前位置:首页正文

VHDL复习资料

2022-11-24 来源:钮旅网


一. 填空(每空1分,共20分)

1.MAX+plusII是ALTERA 公司自己开发的 EDA 工具软件。

2. VHDL设计实体的基本结构由 库 、 程序包 、 实体 、 结构体 、 配置 等部分构成。

3.在VHDL中最常用的库 IEEE 标准库,最常用的包集合是 1164 。

4.在VHDL的端口声明语句中,端口方向包括 输入(in) 、 输出(out) 、输入|输出(inout) 、 缓冲 和 。

5.VHDL的顺序语句只能出现在 进程 、 函数 、 过程 中,是按程序书写顺序自 上而下,一条一条地执行。

6.VHDL的 块 语句是并行语句结构,它的内部是由并行语句构成的

7.VHDL的变量(VARIABLE)是一种局部量,只能在 进程 、 函数

和 过程 中声明和使用。

8.MAX+plusII支持 文本 、 原理图 、 波形 、 符号编辑 等不同的编辑方式。

9.MAX+plusII工具软件有 功能 、 时序 、 仿真 等功能。

第 1 页 共 25 页

10.MAX—PLUSⅡ的波形编辑文件分 波形输入 和 波形仿真 ,它们的文件扩展名分别是 W D F 和 S C F 。

11.VHDL的实体声明部分指定了设计单元的 输入输出端口 ,它是设计实体对外的通信界面,是外界可以看到的部分。

12.CPLD和FPGA的含义分别是 复杂可编程逻辑器件 , 现场可编程门阵列 。

13.在VHDL中,含WAIT语句的进程Process的括号不能再加 敏感量 ,否则是非

法的.

14.VHDL的Process(进程)语句是由 顺序语句 组成的,但其本身却是 并发语句 结构。

15.VHDL的子程序有 函数 和 过程 两种类型。

16.在VHDL中,标准逻辑位数据有 0和1 种逻辑值。

17.MAX—PLUSⅡ 的仿真分 功能仿真 和 时序仿真 。

18.VHDL的变量(VARIABLE)是一个 功能变量 ,只能在进程、函数和过程中声明和使用。

19.VHDL的数据对象包括 常数 、 变量 、 信号 和 文第 2 页 共 25 页

件 。

20. 实体 和 结构体 是设计实体的基本组成部分,它们可以构成最基本的VHDL程序。

20.VHDL语言的字符是以 字母的下划线 括起来的数字、字母和符号。

二.简答题(每题6分,共 30 分)

1.如何用VHDL语句描述时钟的下降沿和上升沿。

时钟上升沿if clk‘event and clk=“1”then

下降沿if clk‘event and clk =“0” then

2. 在VHDL中的IEEE标准中,预定义的标准是逻辑位数据STD-LOGIC与BIT有何区别。

只有当端口说明为BIT时该端口的信号取值只能是二进制数“0”和“1”

3.VHDL的信号(SIGNAL)与变量(VARIABLE)有什么的区别。

Signal可以在实体构造体等高层次环境中说明,对整个设计实体全局有效

Variable 在进程子函数等低层次环境中说明,只在说明的区域中局部有效

4. 叙述一个四位加法器及仿真的全过程。

第 3 页 共 25 页

5.现有两个半加器,一个两输入或门,试画出一个全加器

6.在一个构造体内,其执行语句的顺序有什么特点?

7.卫式BLOCK语句中的条件和PROCESS 语句中的敏感量的区别是什么(顺序),它们的执行过程如何?

Block块头主要用于信号的映射及参数的定义、process 并行执行进程语句

8. 为层次式电路,各层次的功能模块在存盘时要注意什么问题?

(在同一路径的文件夹内)

9.在MAX—PLUSⅡ中一般连线与总线有什么区别,在使用总线时必须注意什么问题?

10、现有一个两输入异或门,一个两输入与门,试画出半加器。

S=A⊕B

11.硬件描述语言描述硬件电路的基本构成是什么?

数字系统的结构,行为和功能;

硬件描述语言设计数字;

电路逻辑电路的过程和方法

第 4 页 共 25 页

12.解释端口方向说明,IN 、 OUT 、 INOUT 、 BUFFER和LINRAGE的含义?

In:输入型,信号从该端口进入实体;

out:输出型,信号从实体内部经该端口输出

Inout:输入输出型,信号既可以从该端口输入也可以输出

Buffer:缓冲型,与out类似但在结构内部可作反馈

Linrage:无指定方向,与任何方向的信号连接

13.数据类型BIT与STD-LOGIC ,BIT_ VECTOR与STD_LOGIC_VECTOR其共同点与不同点是什么?

Std-logic-vector:标准逻辑适量

Std-logic:标准逻辑位量

Bit:为数据类型取值只能是:“0”和“1”

Bit-vector:位矢量,数据类型

三.分析题 (共50分)

1.读懂下列程序,指出其完成什么功能?(20分)

第 5 页 共 25 页

(1) library ieee;

use ieee.std_logic_1164.all;

entity aaa is

port ( a,b,c,d: in std_logic;

y:out std_logic) ;

end aaa;

architecture aaa1 of aaa is

begin

p1:process (a,b,c,d)

variable tmp:std_logic_vector (3 downto 0 );

begin

tmp:=a&b&c&d;

case tmp is

第 6 页 共 25 页

when ″0000″=> y<= ′ 1′ ;

when ″0001″=> y<= ′ 1′ ;

when ″0010″= >y<= ′ 1′ ;

when ″0011″= > y<= ′ 1′ ;

when ″0101″=> y<= ′ 1′ ;

when ″0110″= > y<= ′ 1′ ;

when ″0111″=> y<= ′ 1′ ;

when ″1000″=> y<= ′ 1′ ;

when ″1001″=> y<= ′ 1′ ;

when ″1010″=> y<= ′ 1′ ; when ″1011″=> y<= ′ 1′ ;

when ″1110″= > y<= ′ 1′ ;

when ″1111″=> y<= ′ 0′ ;

第 7 页 共 25 页

when others =>y<=′ x′;

end case ;

end process p1;

end aaa1;

与非门

(2) library ieee;

use ieee.ste_logic_1164.all;

entity abc is

port ( clk: in std_logic;

r: in std_logic;

d: in std_logic_vector ( 3 downto 0);

q:out std_logic _vector ( 3 downto 0 );

end abc;

第 8 页 共 25 页

architecture rtl of abc is

signal q_temp :std_logic_vector ( 3 downto 0);

begin

process ( clk, r)

begin

if ( r=′1′ ) then

q_temp<=″0000″ ;

elseif ( clk ′event and clk=′1′ ) then

q_temp <=d;

end if;

q<= q_temp;

end process;

end rtl;

第 9 页 共 25 页

寄存器

(1)ENTITY abc IS

PORT (do,d1 ,y: IN BIT;

q: OUT BIT);

END abc ;

ARCHITECTURE connect OF BEGIN

Cale:

BLOCK

BEGIN

Tmp1<= d0 AND y ;

Tmp2<=d1 AND (NOT y ) ;

Tmp3<=tmp1 OR tmp2 ;

abc IS

第 10 页 共 25 页

q <=tmp3 ;

END BLOCK cale ;

END connect ;

二选一电路

(2)LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

ENTITY parity_check IS

PORT ( a: IN STD_LOGIC_VECTOR (7 DOWNTO 0);

y: OUT STD_LOGIC);

END parity_check;

ARCHITECTURE rtl OF parity_check IS

BEGIN

PROCESS( a)

第 11 页 共 25 页

VARIABLE tmp:STD_LOGIC;

BEGIN

tmp:=\"0\";

FOR i IN 0TO 7 LOOP

tmp:=tmp XOR a(i);

END LOOP;

y<=tmp;

END PROCESS;

END rtl奇偶效应

(1)

ENTITY abc IS

PORT (do,d1: IN BIT;

x: IN BIT ;

第 12 页 共 25 页

Q: OUT BIT);

END abc ;

ARCHITECTURE dataflow OF abc IS

BEGIN

Q<= (d0 AND x ) OR ( NOT x AND d1 END dataflow;二选一的数据选择器

(2)

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

ENTITY AAA IS

PORT

(Clock:IN STD_LOGIC;

CLKOUT:OUT STD_LOGIC);

第 13 页 共 25 页

);

END ;

ARCHITECTURE Behavior OF AAA IS

SIGNAL Clk:STD_LOGIC;

BEGIN

PROCESS(Clock)

BEGIN

IF rising_edge(Clock) THEN

CLK<=NOT Clk;

END IF;

END PROCESS;

Clkout<=Clk;

END;边沿触发器

2.下列程序是一个二选一电路,有四处错误,试指出并改正。(10分)

第 14 页 共 25 页

ENTITY mux IS

PROT ( d0,d1,sel : IN BIT ;

q: OUT BIT ) ;

END mux ;

ARCHITECTURE connect OF mux IS

BEGIN

Cale : PROCESS (d0,d1 SEL)

VARIABLE tmp1,tmp2,tmp3: BIT ;

BEGIN

Temp1: =d0 AND sel ;

Temp2: = d1 AND (NOT sel ) ;

Temp3:=tmp1 OR tmp2 ;

Q :< = tmp3 ;

第 15 页 共 25 页

END PROCESS ;

END connect ;

(3)ENTITY mux IS

PROT ( d0,d1,sel : IN BIT ;

q: OUT BIT) ;

END mux ;

ARCHITECTURE connect OF mux IS

BEGIN

Cale : PROCESS (d0 ,d1,sel )

VARIABLE tmp1,tmp2,tmp3: BIT ;

BEGIN

Temp1: =d0 AND sel ;

Temp2: = d1 AND (NOT sel ) ;

第 16 页 共 25 页

Temp3:=tmp1 OR tmp2 ;

Q :<= tmp3 ;

END PROCESS ;

END connect ;

3、下列程序是2输入“或非”门电路,在空格中填上适当的语句(10分)

LIBRARY IEEE ;

USE IEEE.STD_LOGIC_1164.ALL;

ENTITY nor2 IS

PORT (a,b: IN STD-LOGIC ;

y: OUT STD_LOGIC );

END nor2 ;

ARCHITECTURE nor2_2 OF NOR2 IS

BEGIN

第 17 页 共 25 页

t2:

PROCESS ( a,b)

VARIABLE comb: STD_LOGIC_VECTOR ( 1 DOWNTO 0);

BEGIN

Comb:=a & b ;

CASE comb IS

WHEN ″00″=>y<=′1′;

WHEN ″01″=>y<=′0′;

WHEN ″10″=>y<=′0′;

WHEN ″11″=>y<=′0′;

END CASE ;

END PROCESS t2;

END nor2_2;

第 18 页 共 25 页

(2)LIBRARY IEEE ;

USE IEEE.STD_LOGIC_1164.ALL;

ENTITY nor2 IS

PORT ( a,b : IN STD_LOGIC ;

y: OUT STD_LOGIC );

END nor2 ;

ARCHITECTURE nor2_2 OF nor2 IS

BEGIN

t2:

PROCESS ( a,b)

VARIABLE comb: STD_LOGIC_VECTOR ( 1 DOWNTO 0);

BEGIN

Comb:=a & b ;

第 19 页 共 25 页

CASE comb IS

WHEN ″00″=>y<=′1′;

WHEN ″01″=>y<=′0′;

WHEN ″10″=>y<=′0′;

WHEN ″11″=>y<=′0′;

END CASE ;

END PROCESS t2;

END nor2_2;

2 . 下列程序是四选一电路,在空格中填上适当的语句。LIBRARY IEEE ;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL ;

ENTITY mux4 IS

第 20 页 共 25 页

分)

(10

PORT ( i0,i1,i2,i3,a,b : IN STD-LOGIC ;

Q: OUT STD_LOGIC );

END mux4 ;

ARCHITECTURE behav OF mux4 IS

SIGNAL sel: INTEGER ;

BEGIN

WITH S SELECT

q <= i0 AFTER 10 ns WHEN 0,

i1 AFTER 10 ns WHEN 1,

i2 AFTER 10 ns WHEN 2,

i3 AFTER 10 ns WHEN 3,

′1′AFTER 10 ns WHEN OTHERS;

sel<=0 WHEN a=′0′ AND b=′0′ ELSE

第 21 页 共 25 页

1 WHEN a=′1′ AND b=′0′ ELSE

2 WHEN a=′0′ AND b=′1′ ELSE

3 WHEN a=′1′ AND b=′1′ ELSE

4 WHEN OTHERS ;

END behav;

3. 下列程序有四处错误,试指出并改正。(10分)

ENTITY mux IS

PROT ( d0,d1,sel : IN BIT ;

q: OUT BIT) ;

END mux ;

ARCHITECTURE connect OF mux IS

BEGIN

Cale : PROCESS (d0, d1, sel )

第 22 页 共 25 页

VARIABLE tmp1,tmp2,tmp3: BIT ;

BEGIN

Temp1: =d0 AND sel ;

Temp2: = d1 AND (NOT sel ) ;

Temp3:=tmp1 OR tmp2 ;

Q :<= tmp3 ;

END PROCESS ;

END connect ;

4.分析下列程序,指出其功能并说明其工作过程。(10分)

library ieee;

use ieee.std_logic_1164.all;

entity xyz is

port(a,clk1:in std_logic;

第 23 页 共 25 页

b:out std_logic);

end xyz;

architecture xyz1 of xyz is

signal tmp1:std_logic;

begin

process(clk1,a)

variable tmp3,tmp2:std_logic;

begin

if clk1′event and clk1 =′0′ then

tmp1<=a;

tmp2:=tmp1;

tmp3:=not tmp2;

end if;

第 24 页 共 25 页

b<=tmp1 and tmp3 and clk1;

end process;

end xyz1;(消除同步模块)

故当时钟脉冲下降沿到来时,变量tmp2和tmp3在赋值语句执行后立即分别得到新值:tmp1和tmp2的非值,而输入信号a经过一定时延时赋值给信号tmp1实现消抖同步的功能

第 25 页 共 25 页

因篇幅问题不能全部显示,请点此查看更多更全内容