搜档网
当前位置:搜档网 › VHDL复习题

VHDL复习题

VHDL复习题
VHDL复习题

习题

3、1比较常用硬件描述语言VHDL、Verilog与ABEL语言得优劣。

1、VHDL:描述语言层次较高,不易控制底层电路,因而对综合器得性能要求较高。有多种EDA 工具选择,已成为IEEE标准。

应用VHDL进行工程设计得优点就是多方面得,具体如下:

(1) 与其她得硬件描述语言相比,VHDL具有更强得行为描述能力。

(2) VHDL具有丰富得仿真语句与库函数,使得在任何大系统得设计早期,就能查验设计系统得功能可行性,随时可对系统进行仿真模拟,使设计者对整个工程得结构与功能可行性做出判断。

(3) VHDL语句得行为描述能力与程序结构,决定了它具有支持大规模设计得分解与已有设计得再利用功能。

(4) 用VHDL完成一个确定得设计,可以利用EDA工具进行逻辑综合与优化,并自动把VHDL 描述设计转变成门级网表(根据不同得实现芯片)。

(5) VHDL对设计得描述具有相对独立性。

(6) VHDL具有类属描述语句与子程序调用等功能,对于完成得设计,在不改变源程序得条件下,只需改变类属参量或函数,就能轻易地改变设计得规模与结构。

2、Verilog:设计者需要了解电路得结构细节,对综合器得性能要求较低。有多种EDA工具选择,已成为IEEE标准。

3、ABEL: 设计者需要了解电路得结构细节,对综合器得性能要求较低。支持ABEL得综合器只有一家,ABEL正朝国际化标准努力。

3、2 VHDL程序一般包括几个组成部分?每部分得作用就是什么?

(1)三个基本组成部分:库、程序包使用说明,实体描述与实体对应得结构体描述。

(2)库、程序包使用说明:用于打开调用本设计实体将用到得库、程序包

实体描述:用于描述该设计实体与外界得接口信号说明

结构体描述:用于描述该设计实体内部得组成及内部工作得逻辑关系

结构体配置语句主要用于层次化得方式对特定得设计实体进行元件得例化,或就是为实体选定某个特定得结构体

3、3 VHDL语言中数据对象有几种?各种数据对象得作用范围如何?各种数据对象得实际物理含义就是什么?

(1)数据对象有三种:变量、常量、信号

(2)常量得作用范围取决于其所定义得位置。若在程序包中定义,则可以用在调用该程序包得所有设计实体中。若定义在实体中,则可在这个实体得所有结构体中使用。若定义在结构体中,则只能用于该结构体。若定义在进程/子程序中,则只能用于该进程/子程序。

变量属于局部量,作用范围仅限于所定义得进程或子程序内部。

信号属于全局量,作用范围取决于其所定义得位置。若在程序包中定义,则可以用在调用该程序包得所有设计实体中。若定义在实体中,则可在这个实体得所有结构体中使用。若定义在结构体中,则只能用于该结构体。

(3)信号表示硬件中得连线,用于各并行语句模块之间得通信。变量一般用于存储局部/临时数据。常量表示电路中得恒定电平,可使代码中常数易于阅读与修改。

3、4 什么叫标识符?VHDL得基本标识符就是怎样规定得?

(1)标识符用来定义常量、变量、信号、端口、子程序或者参数得名字。

(2)VHDL得基本标识符就就是以英文字母开头,不连续使用下划线,不以下划线结尾得,由26个英文大小写字母,数字0-9以及下划线组成得字符串。

3、5 信号与变量在描述与使用时有哪些主要区别?

(1)变量只能在进程或子程序内部定义,用于存储局部/临时数据。信号只能在进程或子程序得外部定义,表示硬件中得连线,用于各并行语句模块之间得通信。

(2)信号用signal关键字定义,赋值符号为”<=”。变量用variable关键字定义,赋值符号为”:=”

(3)信号赋值,可以设定延时量,需要延时一段时间后才执行;变量赋值立即执行。

3、6 VHDL语言中得标准数据类型有哪几类?用户可以自己定义得数据类型有哪几类?并简单介绍各数据类型。

(1)标量型:属单元素最基本得数据类型,通常用于描述一个单值数据对象,它包括实数类型、整数类型、枚举类型与时间类型。

复合类型:可以由细小得数据类型复合而成,如可有标量复合而成。复合类型主要有数组型与记录型。

存取类型:为给定得数据类型得数据对象提供存取方式。

文件类型:用于提供多值存取类型。

(2)用户可自定义得数据类型:枚举类型、整数类型、数组类型、记录类型、时间类型、实数类型等

3、7 BIT数据类型与STD_LOGIC数据类型有什么区别?

BIT 数据类型只能取值0 或1,而STD_LOGIC 数据类型就是BIT 数据类型得扩展,除了0 与1 外,还包括7 种数据类型,分别就是U,X,Z,W,L,H,_

3、8 用户怎样自定义数据类型?试举例说明。

利用类型定义语句TYPE 与子类型定义语句SUBTYPE 实现。

如TYPE WEEK IS (SON,MON,TUE,WED,THU,FRI,SAT) SUBTYPE DIGITS INTEGER RANGE 0 TO 9

3、9 VHDL语言有哪几类操作符?在一个表达式中有多种操作符时应按怎样得准则进行运算?下列三个表达式就是否等效:①A<=NOT B AND C OR D; ② A<=(NOT B AND C) OR D; ③ A<=NOT B AND (C OR D)、

(1)主要有四种操作符逻辑运算符,关系运算符,算术运算符,符号运算符此外还有重载运算符。(2)按照操作符得优先级高低进行运算

(3)这三个表达式不等效。1式表达错误,对同一优先级得不同运算符应加上括号。2与3式得运算顺序不同。

VHDL操作符优先级:(关系操作符得结果只有TRUE或FALSE两种。)

3、10 简述六种移位操作符SLL、SRL、SLA、SRA、ROL与ROR得含义及操作规定?并举例说明。

(1)SLL:逻辑左移,bit 或布尔一维数组

SRL:逻辑右移,bit 或布尔一维数组

SLA:算数左移,bit 或布尔一维数组

SRA:算数右移,bit 或布尔一维数组

ROL:逻辑循环左移,bit 或布尔一维数组

ROR:逻辑循环右移,bit 或布尔一维数组

(2)A= “10010101 "

A sll 2得"01010100" (逻辑左移,用'0'填补空位)

A srl 3得"00010010" (逻辑右移,用'0'填补空位)

A sla 3得"10101111" (算术左移,用最左端位填补空位)

A sra 2得"11100101" (算术右移,用最右端位填补空位)

A rol 3得"10101100" (循环左移)

A ror 5得"10101100" (循环右移)

3、11 什么叫重载操作符?使用重载操作符有什么好处?怎样使用重载操作符?含有重载操作符得运算怎样确定运算结果?

(1)对已存在得操作符重新定义,使其能进行不同类型操作数之间得运算。

(2)方便各种不同数据类型间得运算。

(3)引用数据包:STD_LOGIC_ARITH、STD_LOGIC_UNSIGNED与STD_LOGIC_即可使用重载操作符。

3、12 VHDL程序设计中得基本语句系列有几种?它们得特点如何?它们各使用在什么场所?它们各自包括些什么基本语句?

答:(1)顺序语句与并行语句。

(2)顺序语句得执行与它们得书写顺序基本一致(指仿真或逻辑上得顺序执行),但实际上硬件电路就是并行工作得。顺序语句用在进程与子程序得内部。

并行语句得执行与书写顺序无关,各语句就是同时执行得,在执行过程中各并行语句之间可通过信号进行通信,同步运行;也可以互为独立、互不相关,异步运行。

(3)顺序语句:变量/信号赋值语句,流程控制语句(if,case,loop,next,exit),等待语句,子程序调用语句,返回语句,空操作语句等。

并行语句:进程语句,块语句,信号赋值语句,元件例化语句,生成语句,子程序调用等语句。

3、13 VHDL中信号赋值与变量赋值得有什么区别?其赋值符号就是否异同?信号赋值延时更新数据,一般生成时序电路,用得就是" <= "

变量赋值立即更新数据,一般生成组合电路,用得就是":="

(变量具有局部特征,它得有效性只局限于所定义得一个进程中,或一个子程序中,它就是一个局部得、暂时性数据对象,对于它得赋值就是立即发生得。信号具有全局特征,它不但可以作为一个设计实体内部各单元之间数据传送得载体,而且可通过信号与其她得实体进行通信,信号得赋值不就是立即发生得,它发生在一个进程结束时。)

3、14 段下标元素与集合块元素就是怎样赋值得?试举例说明。

(1)段下标元素赋值目标表示形式:标识符(下标1 TO或DOWNTO 下标2)(其中下标1、下标2必须用具体数值表示,并且其数值范围必须在所定义得数组下标范围内)

例如:VARIABLE a,b:STD_LOGIC_VECTOR(1 TO 4)

b(1 TO 4):=”1011”;

a:=b;

a(1 TO 2):=b(3 TO 4); --a(1)=’1’,a(2)=’1’;

a(1 TO 4):=”1011”;

(2)集合块元素

3、15 转向控制语句有几种?它们各用在什么场所?它们使用时特别需要注意什么?

IF语句;CASE选择语句;LOOP循环语句;NEXT语句与EXIT语句

(1)if 条件表达式1 then 顺序语句;

elsif 条件表达式2 then 顺序语句;

else 条件表达式n then 顺序语句;

end if;

if语句可根据一个或多个布尔条件,有选择得执行指定得顺序语句。使用时应注意:1、关键字then后可包含一个或多个顺序语句。2、elsif子句可以有多个或没有,每个elsif子句执行时具有向前与得作用。3、else子句可以没有。4、关键字then后得顺序语句可以就是if语句,即if语句可以嵌套。

(2)case选择表达式 is

when 选择值1 => 顺序语句;

when 选择值2 => 顺序语句; 、、、、、、

end case;

case语句可根据一个表达式得不同取值执行不同得顺序语句。

使用时应注意:1、表达式得值可以就是整型或枚举型得,或就是这些数据类型构成得数组。2、选择值可以就是单个取值,如4;也可以就是一个取值范围,如2 to 5;也可以就是多个并列得取值,如2|6;还可以就是以上三种取值方式得混合。3、case语句执行时,根据选择表达式得值来选择执行哪个顺序语句,选择得结果与每个选择值得顺序无关,只要求对于选择表达式得每个可能取值,有且仅有一个选择值与之匹配即可。4、常用 when others表示其它未列出得选择值。5、“=> ”后面得顺序语句可以有多个。

(3)[标号:] for 循环变量 in 范围 loop [标号:] while 条件 loop

顺序语句; 顺序语句;

end loop [标号]; end loop [标号];

for循环用于循环次数已知得情况;while 循环用于循环次数未知得情况。使用时应注意:for 循环中得循环变量无需事先定义,可自动加/减1。

(4)next; 无条件中止当前循环,返回循环起点,开始下次循环。

exit; 无条件退出当前循环。

next loop标号; 无条件中止LOOP标号标明得循环,返回LOOP标号处,开始下次循环。

exit loop标号; 无条件退出LOOP标号标明得循环。

next loop标号 when 条件; 条件为真时中止LOOP标号标明得循环,返回LOOP标号处,开始下次循环。

exit loop标号when 条件; 条件为真时退出LOOP标号标明得循环。

3、16 在CASE 语句中在什么情况下可以不要WHEN OTHERS语句?在什么情况下一定要WHEN OTHERS语句?

答:case语句执行时,根据选择表达式得值来选择执行哪个顺序语句,要求对于选择表达式得每个可能取值,有且仅有一个选择值与之匹配。因此,当已列出得选择值能够覆盖选择表达式得所有可能取值时,可以不要when others语句。否则,要用 when others表示其它未列出得选择值。

3、17 FOR-LOOP语句应用于什么场合?循环变量怎样取值?就是否需要事先在程序中定义?

在重复得次数已知得情况下可以使用该语句。循环变量得取值就是根据系统得功能要求给定得,要事先在程序上定义。

3、18 分别用IF语句、CASE语句设计一个四—十六译码器。

a:用IF语句设计一个四-十六译码器

PROCESS(G1,g2a,g2b,sel)

begin

if(g1='1'and g2a='0'and g2b='0')then

if(sel="0000")then y<="1111111111111110";

elsif(sel="0001")then y<="1111111111111101";

elsif(sel="0010")then y<="1111111111111011";

elsif(sel="0011")then y<="1111111111110111";

elsif(sel="0100")then y<="1111111111101111";

elsif(sel="0101")then y<="1111111111011111";

elsif(sel="0110")then y<="1111111110111111";

elsif(sel="0111")then y<="1111111101111111";

elsif(sel="1000")then y<="1111111011111111";

elsif(sel="1001")then y<="1111110111111111";

elsif(sel="1010")then y<="11111";

elsif(sel="1011")then y<="11111";

elsif(sel="1100")then y<="11111";

elsif(sel="1101")then y<="11111";

elsif(sel="1110")then y<="11111";

elsif(sel="1111")then y<="11111";

else y<="XXXXXXXXXXXXXXXX";

end if;

else Y<="1111111111111111";

end if;

end process;

b:用CASE语句设计一个四-十六译码器

case sel is

when "0000"=>y<="1111111111111110";

when "0001"=>y<="1111111111111101";

when "0010"=>y<="1111111111111011";

when "0011"=>y<="1111111111110111";

when "0100"=>y<="1111111111101111";

when "0101"=>y<="1111111111011111";

when "0110"=>y<="1111111110111111";

when "0111"=>y<="1111111101111111";

when "1000"=>y<="1111111011111111";

when "1001"=>y<="1111110111111111";

when "1010"=>y<="11111";

when "1011"=>y<="11111";

when "1100"=>y<="11111";

when "1101"=>y<="11111";

when "1110"=>y<="11111";

when "1111"=>y<="11111";

when others =>y<="XXXXXXXXXXXXXXXX";

end case;

3、19 WAIT语句有几种书写格式?哪些格式可以进行逻辑综合?

wait until 结构wait on 结构其中wait until 结构可以进行逻辑组合

3、20 VHDL得预定义属性得作用就是什么?哪些项目可以具有属性?常用得预定义属性有哪几类?

(1)作用在于可对信号或其她得项目多种属性进行检测或统计。

(2)具有属性得项目:类型,子类型,过程,函数,信号,变量,常量,实体,结构体,配置, 程序包,元件,语句标号。

(3)常用得属性有信号类属性,数据区间类属性,数值类属性,数组属性

3、21 试用’EVENT 属性描述一种用时钟CLK 上升沿触发得D触发器及一种用时钟CLK下降沿触发得JK触发器。

LIBRARY IEEE;

USE IEEE、STD_LOGIC_1164、ALL;

USE IEEE、STD_LOGIC_UNSIGNED、ALL;

ENTITY dtrigger IS

PORT(clk: IN STD_LOGIC;

d : IN STD_LOGIC;

q : OUT STD_LOGIC);

END dtrigger;

ARCHITECTURE behave OF dtrigger IS

BEGIN

PROCESS(clk)

BEGIN

IF clk'EVENT AND clk='1' THEN

q:=d;

END IF;

END PROCESS;

END behave;

3、22 什么叫进程语句?您就是如何理解进程语句得并行性与顺序性得双重特性得?

(1)进程实际上就是顺序语句描述得一种进程过程,进程就是用于描述事件得,process语句结构包含了一个代表实体中部分逻辑行为得独立得顺序语句描述得进程

(2)一个结构体中可以有多个并行进程结构,而有一个进程内部结构却就是由一系列顺序语句来构成得,即进程语句间就是并行执行得进程得内部就是顺序执行得

( 进程语句就是一种描述硬件行为得语句,进程语句内部就是由顺序语句构成得,内部执行时就是顺序性得,但进程语句属于并行语句,多个进程之间得执行并行运行。)

3、23 进程得启动条件就是什么?如果进程有两个基本点敏感变量,其中一个由“0”变“1”,等待一段时间以后再由“1”变“0”;而另一个只由“1”变“0”改变一次,请问该进程将执行几遍?

答:进程得启动条件:敏感信号列表中得任何一个敏感信号得值发生变化,或者wait语句中得条件为真。

3遍

3、24 有人说,进程中得语句顺序颠倒一下并不会改变所描述电路得功能,这种说法对吗?为什么?

不对。因为PLC得扫描过程就是从左到右,从上到下进行得。同一进程中得逻辑描述语句就是顺序运行得。

3、25 并行信号赋值语句有几类?比较其异同。

(1)1、简单信号赋值语句2、条件信号赋值语句3、选择信号赋值语句

(2)共同点:赋值目标都就是信号,都就是并行语句,都相当于一个隐含得进程语句(信号赋值语句中得所有读入信号都作为该进程得敏感信号)。

不同点:简单信号赋值语句就是最简单得并行语句,执行时直接将表达式得值赋给信号。

条件信号赋值语句得功能与if语句相同,在执行时按书写得先后顺序测试每个条件,一旦条件为真,则将表达式得值赋给信号。

选择信号赋值语句与case语句相似。当关键字with后得选择表达式得值发生变化时,就将该值与每个选择值进行比较,将选择值匹配得子句中得表达式得值赋给信号。

3、26 分别用条件信号赋值语句、选择信号赋值语句设计一个四—十六译码器。 LIBRARY IEEE;

USE IEEE、STD_LOGIC_1164、ALL;

USE IEEE、STD_LOGIC_UNSIGNED、ALL;

ENTITY DECODER IS

PORT(A, B, C,D:IN STD_LOGIC;

Y: OUT BIT_VECTOR (15 DOWNTO 0));

END ENTITY DECODER;

ARCHITECTURE ART1 OF DECODER IS

SIGNAL SR: STD_LOGIC_VECTOR(3 DOWNTO 0);

BEGIN

SR<= D&C&B&A;

Y(0)<='1' WHEN SR="0000" ELSE '0';

Y(1)<='1' WHEN SR="0001" ELSE '0';

Y(2)<='1' WHEN SR="0010" ELSE '0';

Y(3)<='1' WHEN SR="0011" ELSE '0';

Y(4)<='1' WHEN SR="0100" ELSE '0';

Y(5)<='1' WHEN SR="0101" ELSE '0';

Y(6)<='1' WHEN SR="0110" ELSE '0';

Y(7)<='1' WHEN SR="0111" ELSE '0';

Y(8)<='1' WHEN SR="1000" ELSE '0';

Y(9)<='1' WHEN SR="1001" ELSE '0';

Y(10)<='1' WHEN SR="1010" ELSE '0';

Y(11)<='1' WHEN SR="1011" ELSE '0';

Y(12)<='1' WHEN SR="1100" ELSE '0';

Y(13)<='1' WHEN SR="1101" ELSE '0';

Y(14)<='1' WHEN SR="1110" ELSE '0';

Y(15)<='1' WHEN SR="1111" ELSE '0';

END ARCHITECTURE ART1;

ARCHITECTURE ART2 OF DECODER IS

SIGNAL SR: STD_LOGIC_VECTOR(3 DOWNTO 0);

BEGIN

WITH SR SELECT

Y<= “0000_0000_0000_0001” WHEN“0000”,

“0000_0000_0000_0010”WHEN“0001”,

“0000_0000_0000_0100” WHEN “0010”,

“0000_0000_0000_1000” WHEN“0011”,

“0000_0000_0001_0000”WHEN“0100”,

“0000_0000_0010_0000”WHEN“0101”,

“0000_0000_0100_0000”WHEN“0110”,

“0000_0000_1000_0000”WHEN“0111”,

“0000_0001_0000_0000”WHEN“1000”,

“0000_0010_0000_0000”WHEN“1001”,

“0000_0100_0000_0000”WHEN“1010”,

“0000_1000_0000_0000”WHEN“1011”,

“0001_0000_0000_0000”WHEN“1100”,

“0010_0000_0000_0000”WHEN“1101”,

“0100_0000_0000_0000”WHEN“1110”,

“1000_0000_0000_0000”WHEN OTHERS;

END ARCHITECTURE ART2;

3、27 进程语句与并行赋值语句之间有什么关系?进程之间得通信就是通过什么方式来实现得?

(2)进程之间得通信就是通过传递信号与共享变量值来实现得

3、28 元件例化语句得作用就是什么?元件例化语句包括几个组成部分?各自得语句形式如何?什么叫元件例化中得位置关联与名字关联?

答:(1)元件例化就就是将预先设计好得设计实体定义为一个元件,然后利用特定得语句将此元件与当前得设计实体中得指定端口相连接,从而为当前设计实体引入一个新得低一级得设计层次。

(2)元件例化语句由两部组成,前一部分就是将一个现成得设计实体定义为一个元件得语句,第二部分则就是此元件与当前设计实体中得连接说明。

(3)它们得语句格式如下:

-----元件定义语句

PONENT 例化元件名IS

GENERIC(类属表);

PORT(例化元件端口名表);

END PONENT;

-----元件例化语句

元件例化名:例化元件名PORT MAP([例化元件端口名=>]连续实体端口名,、、、)

(4)名字关联就是将例化元件得端口名与关联端口名通过关联(连续)符号“=>"一一对应地联系起来得方式;

位置关联就是按例化元件端口定义顺序将例化元件得对应得连续实体端口名一一列出得方式。

3、38一个包集合由那两大部分组成?包集合通常包含哪些内容?

程序包首与程序包体

组成部分可以就是USE语句、子程序定义、子程序体、数据类型说明子类型说明与常类说明

3、29 什么叫子程序?过程语句用于什么场合?其所带参数就是怎样定义得?函数语句用于什么场合?其所带参数就是怎样定义得?

(1)子程序就是一个VHDL程序模块,这个模块利用顺序语句来定义与完成算法,因此只能使用顺序语句。VHDL子程序与其她软件语言程序中得子程序得应用目得就是相似得,能更有效地完成重复性得工作。子程序有两种类型,即过程与函数

(2)过程语句主要用在子程序。过程语句与其她高级语句中得子程序相当,她得参数可以使输

入也可以就是输出,即过程中得输入输出参数都应列在紧跟过程名得括号中。

(3)函数语句相当于其她高级语言中得函数。语句中圆括号内所有参数都就是输入参数或者输入信号。因此,在括号内指定端口方向“IN”可以省略。FUNCTION得输入值由调用者复制到输入参数中,若无特别制定在FUNCTION得语句中按常数处理

3、30 库由哪些部分组成?在VHDL语言中常见得有几种库?编程人员怎样使用现有得库?

(1)设计库由若干程序包组成,每个程序包都有一个包声明与一个可选得包体声明。在设计库中,包声明与包体声明就是分别编译得。

(2)在VHDL语言中常见得由1、标准设计库:std,2、用户现行工作库:work,3、IEEE设计库:IEEE。

3、31 一个包集合由哪两大部分组成?包集合体通常包含哪些内容?

(1)程序包首与程序包体

(2)组成部分可以就是USE语句、子程序定义、子程序体、数据类型说明子类型说明与常类说明

3、32 什么就是结构体得行为描述方式?它应用于什么场合?用行为描述方式所编写得VHDL程序就是否都可以进行逻辑综合?

(1)行为描述:设计实体按算法得路径进行描述,她不就是对某一个器件得描述,而就是对整个设计单元得数学模型描述。

(2)主要用于系统数学模型得仿真或系统工作原理得仿真。

(3)故其大量采用得算术运算、关系运算、惯性延时、传输延时等描述方式就是难以或不能进行逻辑综合得。

3、33 什么叫数据流描述方式?它与行为描述方式得主要区别在哪里?用数据流描述方式所编写得VHDL程序就是否都可以进行逻辑综合?

(1)数据流描述也称RTL描述,它以类似于寄存器传输级得方式描述数据得传输与变换,以规定设计中得各种寄存器形成为特征,然后再寄存器之间插入组合逻辑。

(2)行为描述只表示输入与输出间转换得行为,它不包含任何结构信息,而数据流得描述会伴有大量得有关这种结构信息得“流出”。

(3)类似于寄存器传输级得方式描述数据得传输与变换,认为数据就是从一个设计流出,从输入到输出得观点称为数据流风格,所以不就是所有得VHDL程序都可以进行逻辑综合。

3、34 什么就是结构体得结构描述方式?实现结构描述方式得主要语句就是哪两个?

(1)结构描述:就是描述该设计单元得硬件结构,即该硬件就是如何组成得。复杂数字逻辑系统得层次化设计法(设计中高层次得模块调用低层次得模块,或者直接用门电路设计单元直接设计一个复杂得逻辑电路)。

(2)采用元件例化语句或生成语句进行设计。

3、35 什么叫状态机?状态机得基本结构如何?状态机得种类有哪些?

答:(1)状态机就是一类很重要得时序电路,就是许多数字电路得核心部件。

(2)状态机得基本结构包括输入信号、输出信号与一组寄存器,它用于记忆状态机得内部庄涛。状态机可认为就是组合逻辑与寄存器逻辑得特殊组合。它包括两个主要部分:

组合逻辑部分与寄存器部分。寄存器部分用于存储状态机得内部状态;组合逻辑部分又分为状态译码器与输出译码器。状态译码器确实状态机得下一个状态,即确定状态机得激励方程; 输出译码器确定状态机得输出,即确定状态机得输出方程。

(3)两种典型得状态机就是摩尔(MOORE)状态机与米立(MELAY)状态机。

3、36 阅读第

4、9节中得例3、9、2、例3、9、3、例3、9、

5、例3、9、8、

例3、9、9、例3、9、10、例3、9、13、例3、9、14、例3、9、15、例3、9、18、例3、9、20与例3、9、22,画出系统原理框图,阐述系统工作原理,并对主要语句作出注释。

1.3-8线译码器

下面我们分别以四种方法描述一个3-8线译码器。

【例3、9、2】

LIBRARY IEEE;

USE IEEE、STD_LOGIC_1164、ALL;

USE IEEE、STD_LOGIC_UNSIGNED_ALL;

ENTITY DECODER IS

PORT(INP:IN STD_LOGIC_VECTOR(2 DOWNTO 0);

OUTP:OUT BIT_VECTOR (7 DOWNTO 0));

END ENTITY DECODER;

方法1:使用SLL逻辑运算符

ARCHITECTURE ART1 OF DECODER IS

BEGIN

OUTP<= "00000001" SL (CONV_INTEGER(INP));

END ARCHITECTURE ART1;

方法2:使用PROCESS语句

ARCHITECTURE ART2 OF DECODER IS

BEGIN

PROCESS(INP) IS

BEGIN

O UTP<=(OTHERS=>‘1’);

OUTP(COVN_INTEGER(INP))<=‘1’;

END PROCESS;

END ARCHITECTURE ART2;

方法3:使用WHEN-ELSE语句

ARCHITECTURE ART3 OF DECODER IS

BEGIN

OUTP(0)<=‘1’WHEN INP="000" ELSE "0";

OUTP(1)<=‘1’WHEN INP="001" ELSE "0";

OUTP(2)<=‘1’WHEN INP="010" ELSE "0";

OUTP(3)<=‘1’WHEN INP="011" ELSE "0";

OUTP(4)<=‘1’WHEN INP="100" ELSE "0";

OUTP(5)<=‘1’WHEN INP="101" ELSE "0";

OUTP(6)<=‘1’WHEN INP="110" ELSE "0";

OUTP(7)<=‘1’WHEN INP="111" ELSE "0";

END ARCHITECTURE ART3;

方法4:使用CASE-WHEN 语句

ARCHITECTURE ART4 OF DECODER IS

BEGIN

CASE INP IS

WHEN "000"=>OUTP<= "00000001";

WHEN "001"=>OUTP<= "00000010";

WHEN "010"=>OUTP<= "00000100";

WHEN "011"=>OUTP<= "00001000";

WHEN "100"=>OUTP<= "00010000";

WHEN "101"=>OUTP<= "00100000";

WHEN "110"=>OUTP<= "01000000";

WHEN "111"=>OUTP<= "10000000";

WHEN OTHERS=>OUTP<= "XXXXXXXX";

END CASE;

END ARCHITECTURE ART4;

2.8-3线优先编码器

下面我们用三种方法设计8-3线优先编码器。

8-3线优先编码器,输入信号为A、B、C、D、E、F、G与H,输出信号为OUT0、OUT1与OUT2。输入信号中A得优先级别最低,依次类推,H得优先级别最高。【例3、9、3】

LIBRARY IEEE;

USE IEEE、STD_LOGIC_1164、ALL;

ENTITY ENCODER IS

PORT (A,B,C,D,E,F,G,H:IN STD_LOGIC:

OUT0,OUT1,OUT2:OUT STD_LOGIC);

END ENTITY ENCODER;

方法1:使用条件赋值语句

ARCHITECTURE ART1 OF ENCODER IS

SIGNA OUTS:STD_LOGIC_VECTOR(2 DOWNTO 0);

BEGIN

OUTS (2 DOWNTO 0)<= "111" WHEN H=‘1’ ELSE

"110" WHEN G=‘1’ ELSE

"101" WHEN F=‘1’ ELSE

"100" WHEN E=‘1’ ELSE

"011" WHEN D=‘1’ ELSE

"010" WHEN C=‘1’ ELSE

"001" WHEN B=‘1’ ELSE

"000" WHEN A=‘1’ ELSE

"XXX";

OUT0<=OUTS(0);

OUT1<=OUTS(1);

OUT2<=OUTS(2);

END ARCHITECTURE ART1;

方法2:使用LOOP语句

ARCHITECTURE ART2 OF ENCODER IS

BEGIN

PROCESS(A,B,C,D,E,F,G,H) IS

VARIABLE INPUTS:STD_LOGIC_VECTOR(7 DOWNTO 0);

VARIABLE I:INTEGER;

BEGIN

INPUT:=(H,G,F,E,D,C,B,A);

I:=7;

WHILE I>=0 AND INPUTS(I)/=‘1’ LOOP

--此处得“/=”表示不等于

I:=I-1;

END LOOP;

(OUT2,OUT1,OUT0)<=CONV_STD_LOGIC_VECTOR(I,3);

END PROCESS;

END ARCHITECTURE ART2;

方法3:使用IF语句

LIBRARY IEEE;

USE IEEE、STD_LOGIC_1164、ALL;

ENTITY ENCODER IS

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

OUT1:OUT STD_LOGIC_VECTOR(2 DOWNTO 0));

END ENTITY ENCODER;

ARCHITECTURE ART3 OF ENCODER IS

BEGIN

PROCESS(INT1) IS

BEGIN

IF IN1(7)=‘1’THEN OUT1<="111";

ELSIF IN1(6)=‘1’THEN OUT1<="110";

ELSIF IN1(5)=‘1’THEN OUT1<="101";

ELSIF IN1(4)=‘1’THEN OUT1<="100";

ELSIF IN1(3)=‘1’THEN OUT1<="011";

ELSIF IN1(2)=‘1’THEN OUT1<="010";

ELSIF IN1(1)=‘1’THEN OUT1<="001";

ELSIF IN1(0)=‘1’THEN OUT1<="000";

ELSE OUT1<="XXX";

END IF ;

END PROCESS;

END ARCHITECTURE ART3;

3.四选一选择器

选择器常用于信号得切换,四选一选择器可以用于四路信号得切换。四选一选择器有四个信号输入端INP(0)~INP(3),两个信号选择端A与B与一个信号输出端Y。当A、B输入不同得选择信号时,就可以使INP(0)~INP(3)中某个相应得输入信号与输出端Y接通。

【例3、9、5】

LIBRARY IEEE;

USE IEEE、STD_LOGIC_1164、ALL;

ENTITY MUX41 IS

PORT (INP: IN STD_LOGIC_VECTOR(3 DOWNTO 0);

A,B:IN STD_LOGIC;

Y:OUT STD_LOGIC);

END ENTITY MUX41;

ARCHITECTURE ART OF MUX41 IS

SIGNA SE :STD_LOGIC_VECTOR(1 DOWNTO 0);

BEGIN

SEL<=B&A;

PROCESS(INP,SEC) IS

BEGIN

IF(SEL="00")THEN Y<=INP(0);

ELSIF (SEL="01")THEN Y<=INP(1);

ELSIF (SEL="11")THEN Y<=INP(2);

ELSE Y<=INP(3);

END IF;

END PROCESS;

END ARCHITECTURE ART;

4.三态门及总线缓冲器

三态门与总线缓冲器就是驱动电路经常用到得器件。

2) 单向总线驱动器

在微型计算机得总线驱动中经常要用单向总线缓冲器,它通常由多个三态门组成,用来驱动地址总线与控制总线。一个8位得单向总线缓冲器。

TRI_BUF8

【例3、9、8】

LIBRARY IEEE;

USE IEEE、STD_LOGIC_1164、ALL;

ENTITY TRI_BUF8 IS

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

EN:IN STD_LOGIC;

DOUT:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));

END ENTITY TRI_BUF8;

ARCHITECTURE ART OF TRI_BUF8 IS

BEGIN

PROCESS(EN,DIN) IS

BEGIN

IF(EN=‘1’)THEN

DOUT<=DIN;

ELSE DOUT<="ZZZZZZZZ";

END IF;

END PROCESS;

END ARCHITECTURE ART;

3) 双向总线缓冲器

双向总线缓冲器用于数据总线得驱动与缓冲,典型得双向总线缓冲器。图中得双向总线缓冲器有两个数据输入/输出端A与B,一个方向控制端DIR与一个选通端EN。EN=0时双向缓冲器选通。若DIR=0,则A=B,反之则B=A。

BIDIR

【例3、9、9】

LIBRARY IEEE;

USE IEEE、STD_LOGIC_1164、ALL;

ENTITY BIDIR IS

PORT(A,B:INOUTSTD_LOGIC_VECTOR(7 DOWNTO 0);

EN,DIR:IN STD_STD_LOGIC);

END ENTITY BIDIR;

ARCHITECTURE ART OF BIDIR IS

SIGNA AOUT,BOUT: STD_LOGIC_VECTOR(7 DOWNTO 0);

BEGIN

PROCESS(A,EN,DIR) IS --A为输入

BEGIN

IF((EN=‘0’)AND (DIR=‘1’))THEN BOUT<=A;

ELSE BOUT<="ZZZZZZZZ";

END IF ;

B<=BOUT; --B为输出

END PROCESS;

PROCESS(B,EN,DIR) IS --B为输入

BEGIN

IF((EN=‘0’)AND (DIR=‘1’))THEN AOUT<=B;

ELSE AOUT<="ZZZZZZZZ";

END IF ;

A<=AOUT; --A为输出

END PROCESS;

END ARCHITECTURE ART;

5、时序逻辑电路设计

本节得时序电路设计主要有触发器、寄存器、计数器、序列信号发生器与序列信号检测器等得设计实例。

1.触发器

1) D触发器

【例3、9、10】

LIBRARY IEEE;

USE IEEE、STD_LOGIC_1164、ALL;

ENTITY DCFQ IS

PORT(D,CLK:IN STD_LOGIC;

Q:OUT STD_LOGIC);

END ENTITY DCFQ;

ARCHITECTURE ART OF DCFQ IS

BEGIN

PROCESS(CLK) IS

BEGIN

IF (CLK'EVENT AND CLK=‘1’)THEN

-- 时钟上升沿触发Q<=D;

END IF;

END PROCESS;

END ARCHITECTURE ART;

4) JK触发器

【例3、9、13】

LIBRARY IEEE;

USE IEEE、STD_LOGIC_1164、ALL;

ENTITY JKCFQ IS

PORT(J,K,CLK:IN STD_LOGIC;

Q,QB:BUFFER STD_LOGIC);

END ENTITY JKCFQ;

ARCHITECTURE ART OF JKCFQ IS

SIGNA Q_S,QB_S:STD_LOGIC;

BEGIN

PROCESS(CLK,J,K) IS

BEGIN

IF (CLK'EVENT AND CLK=‘1’)THEN

IF(J=‘0’ AND K=‘1’) THEN

Q_S<=‘0’;

QB_S<=‘1’;

ELSIF (J=‘1’ AND K=‘0’) THEN

Q_S<=‘1’;

QB_S<=‘0’;

ELSIF (J=‘1’ AND K=‘1’) THEN

Q_S<=NOT Q_S;

QB_S<=NOT QB_S;

END IF;

END IF ;

Q<=Q_S;

QB<=QB_S;

END PROCESS;

END ARCHITECTURE ART;

6、触发器得同步与非同步复位

触发器得初始状态应由复位信号来设置。按复位信号对触发器复位得操作不同,可以分为同步复位与非同步复位两种。所谓同步复位,就就是当复位信号有效且在给定得时钟边沿到来时,触发器才被复位;非同步复位,也称异步复位,则就是当复位信号有效时,触发器就被复位,不用等待时钟边沿信号。下面以D触发器为例分别予以举例。

1) 非同步复位/置位得D触发器

【例3、9、14】

LIBRARY IEEE;

USE IEEE、STD_LOGIC_1164、ALL;

ENTITY ASYNDCFQ IS

PORT(CLK,D,PRESET,CLR:IN STD_LOGIC;

Q:OUT STD_LOGIC);

END ENTITY ASYNDCFQ;

ARCHITECTURE ART OF ASYNDCFQ IS

BEGIN

PROCESS(CLK,PRESET,CLR) IS

BEGIN

IF(PRESET='1')THEN --置位信号为1,则触发器被置位

Q<='1';

ELSIF(CLR='1')THEN --复位信号为1,则触发器被复位

Q<='0';

ELSIF(CLK'EVENT AND CLK=‘1’)THEN

Q<=D;

END IF;

END PROCESS;

END ARCHITECTURE ART;

2) 同步复位得D触发器

【例3、9、15】

LIBRARY IEEE;

USE IEEE、STD_LOGIC_1164、ALL;

ENTITY SYNDCFQ IS

PORT(D, CLK,RESET:IN STD_LOGIC;

Q:OUT STD_LOGIC);

END ENTITY SYNDCFQ;

ARCHITECTURE ART OF SYNDCFQ IS

BEGIN

PROCESS(CLK) IS

BEGIN

IF(CLK'EVENT AND CLK=‘1’)THEN

IF(PRESET=‘0’)THEN

Q<=‘0’; --时钟边沿到来且有复位信号,触发器被复位

ELSE Q<=D;

END IF;

END IF;

END PROCESS;

END ARCHITECTURE ART;

7、计数器

计数器就是在数字系统中使用最多得时序电路,它不仅能用于对时钟脉冲计数,还可以用于分频、定时、产生节拍脉冲与脉冲序列以及进行数字运算等。

1) 同步计数器

下面就是一个模为60,具有异步复位、同步置数功能得8421BCD码计数器。【例3、9、18】

LIBRARY IEEE;

USE IEEE、STD_LOGIC_1164、ALL;

USE IEEE、STD_LOGIC_UNSIGNED、ALL;

ENTITY CNTM60 IS

PORT(CI:IN STD_LOGIC; --计数控制

NRESET:IN STD_LOGIC; --异步复位控制

LOAD:IN STD_LOGIC; --置数控制

D:IN STD_LOGIC_VECTOR(7 DOWNTO 0);

CLK:IN STD_LOGIC;

CO:OUT STD_LOGIC; --进位输出

QH:BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0); --输出高4位

QL:BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0)); --输出低4位

END ENTITY CNTM60;

ARCHITECTURE ART OF CNTM60 IS

BEGIN

CO<=‘1’WHEN(QH="0101"AND QL="1001"AND CI=‘1’)ELSE'0';

--进位输出得产生

PROCESS(CLK,NRESET) IS

BEGIN

IF(NRESET=‘0’)THEN --异步复位

QH<="0000";

QL<="0000";

ELSIF(CLK'EVENT AND CLK=‘1’)THEN --同步置数

IF(LOAD=‘1’)THEN

QH<=D(7 DOWNTO 4);

Q L<=D(3 DOWNTO 0);

ELSIF(CI=‘1’)THEN --模60得实现

IF(QL=9)THEN

QL<="0000";

IF(QH=5)THEN

QH<="0000";

ELSE --计数功能得实现

QH<=QH+1;

END IF;

ELSE

QL<=QL+1;

END IF;

END IF; --END IF LOAD

END IF;

END PROCESS;

END ARCHITECTURE ART;

8、序列信号发生器

在数字信号得传输与数字系统得测试中,有时需要用到一组特定得串行数字信号。产生序列信号得电路称为序列信号发生器。

1) “”序列发生器

该电路可由计数器与数据选择器构成,其VHDL描述如下:

【例3、9、20】

LIBRARY IEEE;

USE IEEE、STD_LOGIC_1164、ALL;

USE IEEE、STD_LOGIC_ARITH、ALL;

USE IEEE、STD_LOGIC_UNSIGNED、ALL;

ENTITY SENQGEN IS

PORT(CLK,CLR,CLOCK:IN STD_LOGIC;

ZO:OUT STD_LOGIC);

END ENTITY SENQGEN;

ARCHITECTURE ART OF SENQGEN IS

SIGNA COUNT:STD_LOGIC_VECTOR(2 DOWNTO 0);

SIGNA Z:STD_LOGIC :=‘0’;

BEGIN

PROCESS(CLK,CLR) IS --注意各进程间得并行性

BEGIN

IF(CLR=‘1’)THEN COUNT<="000";

ELSE

IF(CLK=‘1’AND CLK'EVENT)THEN

IF(COUNT="111")THEN COUNT<="000";

ELSE COUNT<=COUNT +‘1’;

END IF;

END IF;

END IF;

END PROCESS;

PROCESS(COUNT) IS

BEGIN

CASE COUNT IS

WHEN "000"=>Z<=‘0’;

WHEN "001"=>Z<=‘1’;

WHEN "010"=>Z<=‘1’;

WHEN "011"=>Z<=‘1’;

WHEN "100"=>Z<=‘1’;

VHDL试卷

VHDL试卷

2009/2010 学年第一学期末考试试题答案及评分标准 (A卷) 一、填空题(20分,每空格1分) 1、一个完整的VHDL语言程序通常包含实体(entity),构造体(architecture),配置(configuration),包集合(package)和库(library) 5各部分。 2、在一个实体的端口方向说明时,输入使用in 表示,那么构造体内部不能再使用的输出是用out 表示;双向端口是用 inout 表示;构造体内部可再次使用的输出是用 buffer 表示; 3、一个构造体可以使用几个子结构,即相对比较独立的几个模块来构成。VHDL语言可以有以下3种形式的子结构描述语句: BLOCK 语句结构; PROCESS 语句结构和SUBPROGRAMS结构。 4、VHDL的客体,或称数据对象包括了常数、变 量variable 和信号signal 。

5、请列出三个VHDL语言的数据类型,如实数、位等。位矢量,字符,布尔量。 6、设D0为'0', D1为'0', D2为'1', D3为'0', D0 & D1 & D2 & D3的运算结果是“0010”, D3 & D2 & D1 & D0的运算结果是“0100”。 7、构造体的描述方式包括三种,分别是寄存器传输(RTL)描述方法或称数据流;构造体的结构描述方式和构造体的行为描述方式。 20分,每小题5分,判断对错2分,给出正确答案3分) 1、传统的系统硬件设计方法是采用自上而下(top down)的设计方法,利用硬件描述语言(HDL)的硬件电路设计方法采用自下而上(bottom up)的设计方法。 (×) 传统的系统硬件设计方法是采用自下而上(bottom up)的设计方法,利用硬件描述语言(HDL)的硬件电路设计方法采用自上而下(top down)的设计方法 2、VHDL可以采用层次化的设计,一个高层的结构体中可以调用低层的实体(√) 1

完整word版,VHDL期末考试题

1.结构体的三种描述方式:-行为描述-数据流描述-结构化描述 2.一般将一个完整的VHDL程序称为设计实体 3. VHDL设计实体的基本结构由库、程序包、实体、结构体和配置组成。 4.VHDL不区分大小写。 5.常用的库:library ieee ,程序包:use ieee.std_logic_1164.all 6.VHDL程序的基本结构至少应包括实体、结构体和对库的引用声明。 7.在VHDL程序中使用的文字、数据对象、数据类型都需要事先声明。 8. VHDL的实体由实体声明和结构体组成。VHDL的实体声明部分指定了设计单元的输入出端口或引脚,它是设计实体对外的一个通信界面,是外界可以看到的部分。VHDL的结构体用来描述实体的逻辑结构和逻辑功能,它由VHDL语句构成,是外界看不到的部分。 9.端口方向模式:IN(输入)、OUT(输出<构造体内部不能再使用>)、INOUT(双向)、BUFFER (缓冲<构造体内部可再使用>) 10.VHDL的标识符名必须以(字母开头),后跟若干字母、数字或单个下划线构成,但最后不能为(下划线),不能连续两个下划线相连。 11. 为信号赋初值的符号是(:=);程序中,为变量赋值的符号是(:=),为信号赋值的符号是(<=) 12. VHDL的数据类型包括标量类型、复合类型、存储类型和文件类型 请列出3个VHDL语言的数据类型,如实数、位等。位矢量,字符,布尔量,整数,字符串,时间,错误等级,自然数,正整数。 13. VHDL的操作符包括逻辑、算术、关系和并置四类 14.、GAL、PLA、PAL(早期) :基于乘机项技术构造的可编程逻辑器件,不需要配置外部 程序寄存芯片 FPGA(现场可编程门阵列):基于查找表技术构造的可编程逻辑器件,需要配置外部程序寄 存芯片 15.VHDL客体或数据对象:常量、信号、变量(可被多次赋值)、文件。 16.一个VHDL程序中可以使用多个进程process语句,一个设计实体可以拥有多个结构体。 17.VHDL的预算操作包括:逻辑运算符、关系运算符、乘法运算符(优先级<<<) 逻辑运算符、关系运算符、加减并置运算符、正负运算符、乘法运算符、 18.VHDL中std_logic类型:‘Z’表示高阻,‘X’表示不确定 19.将一个信width定义为一个4位标准逻辑向量为:signal width :std_logic_vector(3 downto 0) 定义一个变量a,数据类型为4位位向量:variable a :bit_vector(3 downto 0) 20.赋值语句是并行执行,IF语句是串行执行。 21.标准逻辑是一个具有九值逻辑的数据类型 22.表示‘0’‘1’两值逻辑的数据类型是bit,表示‘0’‘1’‘Z’等九值逻辑的数据类型是std_logic ,表示空操作的数据类型是NULL 23.<=是小于等于关系运算符,又是赋值运算操作符 /=是不相等操作符,功能是在条件判断是判断操作符两端不相等。 NOT是逻辑运算符,表示取反,在所有操作符中优先级最高。 30.并置运算符 & 的功能是把多个位或位向量合并为一个位向量。 24.位类型的初始化采用字符,位矢量用字符串 25.进程必须位于结构体内部,变量必须定义于进程内部 26.进程执行的机制是敏感信号发生跳变 27. VHDL语言可以有以下3种形式的子结构描述语句: BLOCK语句结构; PROCESS语句结

杭州电子科技大学2005年EDA技术与VHDL考试试题B卷

杭州电子科技大学2005年EDA技术与VHDL考试试题B卷 一、单项选择题:(20分) 1. IP核在EDA技术和开发中具有十分重要的地位;提供用VHDL等硬件描述语言描述的功能块,但不涉及实现该功能块的具体电路的IP核为__________。 A .瘦IP B.固IP C.胖IP D.都不是 2.综合是EDA设计流程的关键步骤,在下面对综合的描述中,_________是错误的。 A. 综合就是把抽象设计层次中的一种表示转化成另一种表示的过程; B. 综合就是将电路的高级语言转化成低级的,可与FPGA / CPLD的基本结构相映射的网表文件; C. 为实现系统的速度、面积、性能的要求,需要对综合加以约束,称为综合约束; D. 综合可理解为一种映射过程,并且这种映射关系是唯一的,即综合结果是唯一的。 3.大规模可编程器件主要有FPGA、CPLD两类,下列对FPGA结构与工作原理的描述中,正确的是____。 A. FPGA全称为复杂可编程逻辑器件; B. FPGA是基于乘积项结构的可编程逻辑器件; C. 基于SRAM的FPGA器件,在每次上电后必须进行一次配置; D. 在Altera公司生产的器件中,MAX7000系列属FPGA结构。 4.进程中的信号赋值语句,其信号更新是_______。 A. 按顺序完成; B. 比变量更快完成; C. 在进程的最后完成; D. 都不对。 5. VHDL语言是一种结构化设计语言;一个设计实体(电路模块)包括实体与结构体两部分,结构体描述___________。 A. 器件外部特性; B. 器件的内部功能; C. 器件的综合约束; D. 器件外部特性与内部功能。 6.不完整的IF语句,其综合结果可实现________。 A. 时序逻辑电路 B. 组合逻辑电路 C. 双向电路 D. 三态控制电路

VHDL试题

一. 选择填空(每题4分,共40分) 1..MAX7000结构中包含五个主要部分,即逻辑阵列块、宏单元、扩展乘积项(共享和并联)、可编程连线阵列、I/O控制块。 2.EDA的设计输入主要包括(原理图输入)、状态图输入、波形图输入和HDL 文本输入。 3. 当前最流行的并成为IEEE标准的硬件描述语言包括具 VHDL 和 Verilog 。 4. 常用EDA工具大致可分为设计输入编辑器、HDL综合器、仿真器、适配器和下载器 5个模块。 5. CPLD结构特点为以乘积项结构方式构成逻辑行为; FPGA结构特点为以查表法结构方式构成逻辑行为。 7. VHDL中最常用的库是 IEEE 标准库,最常用的程序包 是 STD-LOGIC-1164 程序包。常用的四种库是IEEE库、STD库、WORK库及VITAL库。IEEE库是VHDL设计中最常用的库,它包含有IEEE标准的程序包和其他一些支持工业标准的程序包。 8. VHDL程序的基本结构 9. 基于EDA软件的FPGA / CPLD设计流程为:原理图/HDL文本输入→功能仿真→综合→适配→时序仿真→编程下载→硬件测试。 10. 源文件保存时,建议文件名尽可能与该程序的实体名保持一致。 11. 资源优化可以分为资源共享,逻辑优化、串行化。速度优化分为流水线设计,寄存器配平和关键路径法。 12. 三类数据对象:变量、常量和信号。 13. 在VHDL中有逻辑操作符、关系操作符、算术操作符和符号操作符四类操作符,如果逻辑操作符左边和右边值的类型为数组,则这两个数组的尺寸,即位宽要相等。在一个表达式中有两个以上的算符时,需要使用括号将这些运算分组。如果一串运算中的算符相同,且是AND、OR、XOR这三个算符中的一种,则不需要使用括号。 14. 时序电路产生的条件:利用不完整的条件语句的描述。 15. 结构体中的可综合的并行语句主要有七种:并行信号赋值、进程、块语句、条件信号语句、元件例化语句、生成语句和并行过程调用语句。顺序语句有赋值语句、流程控制语句、等待语句、子程序调用语句、返回语句和空操作语句。16. 顺序语句只能出现在进程中,子程序包括函数和过程。并行语句不放在进程中。 17. 进程本身是并行语句,但其内部是顺序语句 2、本质区别: 18. P247—248自己解决去! 19. P248标志符的命名规则 20. 三种主要的状态编码为:状态位直接输出型号编码、一位热码编码和顺序编码。特点P215 21. 非法状态的产生原因:1、外界不确定的干扰2、随机上电的初始启动 22. VHDL要求赋值符“<=”两边的信号的数据类型必须一致。 23. 综合的概念:将用行为和功能层次表达的电子系统转换为低层次的便于具体实现的模块组合装配的过程。

VHDL复习题

一、选择题 ( A )1.一个项目的输入输出端口是定义在: A. 实体中 B. 结构体中 C. 任何位置 D. 进程体 ( B)2.描述项目具有逻辑功能的是: A. 实体 B. 结构体 C. 配置 D. 进程 ( A )3.关键字ARCHITECTURE定义的是: A. 结构体 B. 进程 C. 实体 D. 配置 ( D )4.VHDL语言中变量定义的位置是: A. 实体中中任何位置 B. 实体中特定位置 C. 结构体中任何位置 D. 结构体中特定位置( D )5.VHDL语言中信号定义的位置是: A. 实体中任何位置 B. 实体中特定位置 C. 结构体中任何位置 D. 结构体中特定位置( B )6.变量是局部量可以写在: A. 实体中 B. 进程中 C. 线粒体 D. 种子体中 ( A )7.变量和信号的描述正确的是: A. 变量赋值号是:= B. 信号赋值号是:= C. 变量赋值号是<= D. 二者没有区别( B )8. 变量和信号的描述正确的是: A. 变量可以带出进程 B. 信号可以带出进程 C. 信号不能带出进程 D. 二者没有区别( )9.对于信号和变量的说法,哪一个是不正确的: A. 信号用于作为进程中局部数据存储单元 B. 变量的赋值是立即完成的 C. 信号在整个结构体内的任何地方都能适用 D. 变量和信号的赋值符号不一样 ( A )10.下列关于变量的说法正确的是: A.变量是一个局部量,它只能在进程和子程序中使用 B.B. 变量的赋值不是立即发生的,它需要有一个δ延时 ×××××试卷第1页(共××页)

C. 在进程的敏感信号表中,既可以使用信号,也可以使用变量 D. 变量赋值的一般表达式为:目标变量名<= 表达式 ( C )11.可以不必声明而直接引用的数据类型是: A. STD_LOGIC B. STD_LOGIC_VECTOR C. BIT D. 前面三个答案都是错误的 ( C )12.STD_LOGIG_1164中定义高阻的字符是: A. X B. x C. z D. Z ( A )13.STD_LOGIG_1164中字符H定义的是: A. 弱信号1 B. 弱信号0 C. 没有这个定义 D. 初始值 ( B )14.使用STD_LOGIG_1164中的数据类型时: A. 可以直接调用 B. 必须在库和包集合中声明 C. 必须在实体中声明 D. 必须在结构体中声明 ( B )15.关于转化函数说法正确的是: A. 任何数据类型都可以通过转化函数相互转化 B. 只有特定类型的数据类型可以转化 C. 任何数据类型都不能转化 D. 前面说法都是错误的 ( C )16.VHDL运算符优先级说法正确的是: A. 逻辑运算的优先级最高 B. 关系运算的优先级最高 C. 逻辑运算的优先级最低 D. 关系运算的优先级最低 ( D )17.VHDL运算符优先级说法正确的是: A. NOT的优先级最高 B. AND和NOT属于同一个优先级 C. NOT的优先级最低 D. 前面的说法都是错误的 ( D )18.VHDL运算符优先级说法正确的是: A. 括号不能改变优先级 B. 不能使用括号 C. 括号的优先级最低 D. 括号可以改变优先级 ( B )19.如果a=1,b=0,则逻辑表达式(a AND b)OR(NOT b AND a)的值是: A. 0 B. 1 C. 2 D. 不确定 ( B )20.正确给变量X赋值的语句是: A. X<=A+B; B. X:=A+b; C. X=A+B; D. 前面的都不正确 ( )21.VHDL文本编辑中编译时出现如下的报错信息,其错误原因是: ×××××试卷第2页(共××页)

VHDL合肥工业大学期末试题(含答案)2007-2008A

合肥工业大学 2007/2008 学年第一学期末考试试题答案及评分标准 (A卷) 一、填空题(20分,每空格1分) 1、VHDL是否区分大小写?不区分。 2、digital_ _8标识符合法吗?不合法。12_bit标识符合法吗?不合法。 signal标识符合法吗?不合法。 3、结构体有三种描述方式,分别是数据流、行为、 和结构化。 4、请分别列举一个常用的库和程序包library ieee 、use ieee.std_logic_1164.all 。 5、一个信号处于高阻(三态)时的值在VHDL中描述为‘Z’。 6、将一个信号width定义为一个4位标准逻辑向量为 signal width : std_logic_vector(3 downto 0) 。 7、/=是不相等操作符,功能是在条件判断是判断操作符两端不相等。 8、设D0为'0', D1为'1', D2为'1', D3为'0', D3 & D2 & D1 & D0的运算结果是 “0110”,(D3 or D2)and(D1 and not D0)的运算结果是:‘1’。 9、赋值语句是(并行/串行)并行执行的,if语句是(并行/串行)串行执行的。 10、请列举三种可编程逻辑器件: EEPROM 、 GAL 、 FPGA 。 二、简答(20分,每小题5分) 1、简述VHDL程序的基本结构。

程序包(2) 实体(3) 结构体(5)若答出配置也可加1分 2、简述信号与变量的区别。 信号延时赋值,变量立即赋值(2) 信号的代入使用<=,变量的代入使用:=;(4) 信号在实际的硬件当中有对应的连线,变量没有(5) 3、简述可编程逻辑器件的优点。 ●集成度高,可以替代多至几千块通用IC芯片 –极大减小电路的面积,降低功耗,提高可靠性(1) ●具有完善先进的开发工具 –提供语言、图形等设计方法,十分灵活 –通过仿真工具来验证设计的正确性(2) ●可以反复地擦除、编程,方便设计的修改和升级(3) ●灵活地定义管脚功能,减轻设计工作量,缩短系统开发时间(4) ●保密性好(5) 4、试比较moore状态机与mealy状态机的异同。 Moore输出只是状态机当前状态的函数(3) Mealy输出为有限状态机当前值和输入值的函数(5) 三、判断题(10分) library ieee; use ieee.std_logic_arith.all; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; 以上库和程序包语句有无错误?有,有的话请在原程序相应位置改正。(2) entity rom is port( addr: in std_logic_vector(0 to 3);

VHDL考试试题(1)

一、填空题(20分,每空格1分) 1、一个完整的VHDL语言程序通常包含实体(entity),结构体(architecture), 配置(configuration),包集合(package)和库(library)5各部分。 2、在一个实体的端口方向说明时,输入使用in表示,那么构造体内部不能再使用的输出是用out 表示;双向端口是用inout 表示;构造体内部可再次使用的输出是用buffer 表示; 3、VHDL的客体,或称数据对象包括了常数、变量variable 和信号signal 。 4、请列出三个VHDL语言的数据类型,如实数、位等。位矢量,字符,布尔量。 5、VHDL程序的基本结构包括库、程序包、实体 和结构体。 6、more_ _11标识符合法吗?不合法。8bit标识符合法吗?不合法。 variable标识符合法吗?不合法。 7、信号的代入通常用<= ,变量用:= 。 8、表示‘0’‘1’;两值逻辑的数据类型是bit(位),表示‘0’‘1’‘Z’等九值逻辑的数据类型是std_logic(标准逻辑),表示空操作的数据类型是NULL 。 9、<=是小于等于关系运算符,又是赋值运算操作符。 10、设D0为'1', D1为'0', D2为'1', D3为'0', D3 & D2 & D1 & D0的运算结果是“0101”,D1 & D2 & D3 & D4的运算结果是“1010”。 11、VHDL程序的基本结构至少应包括实体、结构体两部分和对 库的引用声明。 12、1_Digital标识符合法吗?否,\12 @ +\ 呢?合法。 13、在VHDL的常用对象中,信号、变量可以被多次赋予不同的值, 常量只能在定义时赋值。 14、实体的端口模式用来说明数据、信号通过该端口的传输方向,端口模式有in 、 Out 、inout 、buffer 。15、VHDL语言中std_logic类型取值‘Z’表示高阻,取值‘X’表示不确定。 16、位类型的初始化采用(字符/字符串)字符、位矢量用字符串。 17、进程必须位于结构体内部,变量必须定义于进程/包/子程序内部。

VHDL试卷

2009/2010 学年第一学期末考试试题答案及评分标准 (A卷) 一、填空题(20分,每空格1分) 1、一个完整的VHDL语言程序通常包含实体(entity),构造体(architecture), 配置(configuration),包集合(package)和库(library) 5各部分。 2、在一个实体的端口方向说明时,输入使用in表示,那么构造体内部不能再使用的输出是用 out 表示;双向端口是用 inout 表示;构造体内部可再次使用的输出是用 buffer 表示; 3、一个构造体可以使用几个子结构,即相对比较独立的几个模块来构成。VHDL语言可以有以下3种形式的子结构描述语句: BLOCK 语句结构; PROCESS 语句结构和SUBPROGRAMS 结构。 4、VHDL的客体,或称数据对象包括了常数、变量variable 和信号signal 。 5、请列出三个VHDL语言的数据类型,如实数、位等。位矢量,字符,布尔量。 6、设D0为'0', D1为'0', D2为'1', D3为'0', D0 & D1 & D2 & D3的运算结果是“0010”,D3 & D2 & D1 & D0的运算结果是“0100”。 7、构造体的描述方式包括三种,分别是寄存器传输(RTL)描述方法或称数据流;构造体的结构描述方式和构造体的行为描述方式。 二、判断对错并给出判断依据(20分,每小题5分,判断对错2分,给出正确答案3分) 1、传统的系统硬件设计方法是采用自上而下(top down)的设计方法,利用硬件描述语言(HDL)的硬件电路设计方法采用自下而上(bottom up)的设计方法。(×)传统的系统硬件设计方法是采用自下而上(bottom up)的设计方法,利用硬件描述语言(HDL)的硬件电路设计方法采用自上而下(top down)的设计方法

VHDL EDA试题及答案

2. 4. 某PLD结构如图所示,从该结构可知,该PLD属于PROM器件,若A和A1为输入 5.写出下列缩写的中文含义:(已讲)【识记】【已讲】 ASIC: 专用集成电路 RTL: 寄存器传输级 可编程片上系统 CPLD: 复杂可编程逻辑器件 LPM : 参数可定制宏模块库 IEEE: 电子电气工程师协会 IP: 知识产权核 ISP : 在系统可编程 PROM:可编程只读存储器PLA:可编程逻辑阵列 PAL:可编程阵列逻辑GAL:通用阵列逻辑 7. 二.简答题 1.基于FPGA/CPLD的数字系统设计流程包括哪些步骤?(或者改为简述基于 Quartus II进行EDA设计开发的流程?)【已讲】【理解】

2. 2.简要说明仿真时阻塞赋值与非阻塞赋值的区别【已讲】。 【答】 非阻塞(non-blocking)赋值方式 ( b <= a): b的值被赋成新值a的操作, 并不是立刻完成的,而是在块结束时才完成;块 内的多条赋值语句在块结束时同时赋值;硬件有对应的电路。 阻塞(blocking)赋值方式 ( b = a): b的值立刻被赋成新值a;完成该赋值语句后才能执行下一句的操作;硬件没 有对应的电路,因而综合结果未知。 3. module AAA ( a ,b ); output a ; 定义a为输出端口 reg[2:0] sum; sum为reg型变量,用于统计赞成的人数 integer i; 定义整型变量i为循环控制变量 reg a ; 定义a为寄存器变量 begin 语句块 sum = 0; sum初值为0 for(i = 0;i<=6;i = i+1) for语句,统计b为1的个数 if(b[i]) 条件语句 sum = sum+1; 只要有人投赞成票,则 sum加1 if(sum[2]) a = 1; 若超过4人赞成,则表决通过 else a = 0; 若不到4人,则不通过 end endmodule 三.程序设计题 二、程序设计题

vhdl基础复习题

一、名词解释 1. VHDL(Very high speed intergated circuit Hardware Description Language):非常高速集成电路的硬件描述语言。 2.实体说明:用来描述电路器件的外部情况及各信号端口的基本性质。 3.结构体:通过若干并行语句来描述设计实体的逻辑功能(行为描述)或内部电路结构(结构描述),从而建立设计实体输出与输入之间的关系。 4.类属表:用来确定设计实体中定义的局部常数,用以将信息参数传递到实体,用类属表指明器件的一些特征。最常用的是上升沿和下降沿之类的延迟时间,负载电容、驱动能力和功耗等。 5.数据对象:数据对象是数据类型的载体,共有三种形式的对象:Constant(常量)、Variable(变量)、Signal(信号)。 6.并行语句:并行语句有五种类型,可以把它们看成结构体的五种子结构。这五种语句结构本身是并行语句,但内部可能含有并行运行的逻辑描述语句或顺序运行的逻辑描述语句,如进程内部包含的即为顺序语句。五种语句结构分别为块语句、进程语句、信号赋值语句、子程序调用语句和元件例化语句。 7.程序包:程序包可定义一些公用的子程序、常量以及自定义数据类型等。各种VHDL编译系统都含有多个标准程序包,如Std-Logic-1164和Standard程序包。用户也可已自行设计程序包。程序包由两个独立的单元组成:程序包声明单元和程序包体单元构成。 二、写出下列缩写的中文(或者英文)含义 1.ASIC 专用集成电路 2.FPGA 现场可编程门阵列 页脚内容1

3.IP 知识产权核(软件包) 4.JTAG 联合测试行动小组 5.VHDL 超高速集成电路硬件描述语言 6.FPGA 现场可编程门阵列 7.RTL 寄存器传输级 8.SOPC 可编程片上系统 EAB 嵌入式阵列块 HDL 硬件描述语言 9.LPM 参数可定制宏模块库 10.RTL 寄存器传输级 11.UART 串口(通用异步收发器) 12.ISP 在系统编程 13.IEEE 电子电气工程师协会 14.ASIC 专用集成电路 https://www.sodocs.net/doc/9e961995.html,B 逻辑阵列块 16.IP核:是指完成某种功能的设计模块。 17.FPGA:现场可编程门阵列。 18.SOC:系统芯片,是指把一个完整的系统集成在一个芯片上。 19.HDL:硬件描述语言,是一种用文本形式来描述和设计电路的语言。 20.综合:指的是将较高层次的设计描述自动转化为较低层次描述的过程。能够将原理图 页脚内容2

VHDL试题集-徐嵩-吉林大学

VHDL试题集-徐嵩-吉林大学

? 一、填空题 1. 在VHDL中最常用的IEEE标准库是std_logic_1164数据包。 VHDL是一种硬件描述语言。 3. 可编程控制器所使用的软件主要是Alter公司的Quartus_软件进行开发设计和仿真。 4. 可编程控制器是针对PLD的可编程使用HDL语言,其中PLD的意思是_ 可编程逻辑器件_,HDL的意思是____硬件描述语言___________。 VHDL中,下降沿的描述语言是___clk'event and clk='0'(下降沿)clk'event and clk='1'(上升沿)____________。

6. 实体的关键字是___Entity________,变量的关键字是___Port____________。 PLA是同时对__与____和“或”阵列,而PAL只对__与_______进行变成。 8. 两位逻辑变量的取值有四个,分别是___“00”“01”“10”“11”__________________(要求用程序中的书写格式表示)。 9. 在可VHDL语言中,‘Z’表示______高阻抗_______状态,‘-’表示______忽略________________。 10. 调用标准程序包的调用语句是____use ieee.std_logic_1164.all______________________ _______________。 process语句中必须加上敏感信号_________列表,以__End process;____________结束。

12. 信号的赋值用___<=______,变量的赋值用____:=______。 VHDL程序的基本结构由库、程序包、__实体________、__结构体______和配置等部分组成。 14. 可编程控制器是针对PLD的可编程使用HDL语言,其中PLD的意思是__可编程逻辑器件______,HDL的意思是____硬件描述语言_________。 15. 可编程逻辑器件在编程是必须调用ieee库,ieee是___Institute of Electrical and Electronics Engineers (IEEE)电气和电子工程师协会___________的简称。 16. 可编程逻辑器件的程序主要包括调用程序包、_实体_______、__结构体________和配置四个部分。

EDA技术与VHDL考试试题(可编辑修改word版)

杭州电子科技大学2005 年EDA 技术与VHDL 考试试题 考试课程EDA 技术与VHDL 考试日期年月日成绩 课程号B0405010 教师号任课教师姓名曾毓 考生姓名学号(8 位)年级专业 一、单项选择题:(20 分) 1.大规模可编程器件主要有FPGA、CPLD 两类,下列对CPLD 结构与工作原理的描述中,正确的是。 A.CPLD 是基于查找表结构的可编程逻辑器件; B.CPLD 即是现场可编程逻辑器件的英文简称; C.早期的CPLD 是从GAL 的结构扩展而来; D.在Xilinx 公司生产的器件中,XC9500 系列属CPLD 结构; 2.综合是EDA 设计流程的关键步骤,综合就是把抽象设计层次中的一种表示转化成另一种表示的过程;在下面对综合的描述中,是正确的。 A.综合就是将电路的高级语言转化成低级的,可与FPGA / CPLD 的基本结构相映射的网表文件; B.综合是纯软件的转换过程,与器件硬件结构无关; C.为实现系统的速度、面积、性能的要求,需要对综合加以约束,称为强制综合。 D.综合可理解为,将软件描述与给定的硬件结构用电路网表文件表示的映射过程,并且这种映射关系是唯一的; 3.IP 核在EDA 技术和开发中具有十分重要的地位,IP 分软IP、固IP、硬IP;下列所描述的IP 核中,对于硬IP 的正确描述为。 A.提供用VHDL 等硬件描述语言描述的功能块,但不涉及实现该功能块的具体电路; B.提供设计的最总产品--- 模型库; C.以网表文件的形式提交用户,完成了综合的功能块; D.都不是。 4.基于EDA 软件的FPGA / CPLD 设计流程为:原理图/HDL 文本输入→→ 综合→适配→→编程下载→硬件测试。 ①功能仿真②时序仿真③逻辑综合④配置⑤引脚锁定 A.③① B. ⑤② C.④⑤ D. ①②5.下面对利用原理图输入设计方法进行数字电路系统设计,那一种说法是不正确的。 A.原理图输入设计方法直观便捷,但不适合完成较大规模的电路系统设计; B.原理图输入设计方法一般是一种自底向上的设计方法; C.原理图输入设计方法无法对电路进行功能描述; D.原理图输入设计方法也可进行层次化设计。 6.在VHDL 语言中,下列对进程(PROCESS)语句的语句结构及语法规则的描述中,不正确的是。 A.PROCESS 为一无限循环语句;敏感信号发生更新时启动进程,执行完成后,等待下一次进程启动。 B.敏感信号参数表中,不一定要列出进程中使用的所有输入信号;

VHDL5套试卷标准答案

填空题: 1、一般将一个完整的VHDL程序称为设计实体 2、VHDL设计实体的基本结构由(库)、(程序包)、(实体)、(结构体)和(配置)组成。 3、(实体)和(结构体)是设计实体的基本组成部分,它们可以构成最基本的VHDL 程序。 4、根据VHDL语法规则,在VHDL程序中使用的文字、数据对象、数据类型都需要(事先声明)。 5、在VHDL中最常用的库是(IEEE)标准库,最常用的数据包是(STD_LOGIC_1164)数据包。 6、VHDL的实体由(实体声明)部分和(结构体)组成。 7、VHDL的实体声明部分指定了设计单元的(输入出端口)或(引脚),它是设计实体对外的一个通信界面,是外界可以看到的部分。 8、VHDL的结构体用来描述实体的(逻辑结构)和(逻辑功能),它由VHDL 语句构成,是外界看不到的部分。 9、在VHDL的端口声明语句中,端口方向包括(输入)、(输出)、(双向)和(缓冲)。 10、VHDL的标识符名必须以(字母开头),后跟若干字母、数字或单个下划线构成,但最后不能为(下划线) 11、VHDL的数据对象包括(常量)、(变量)和(信号),它们是用来存放各种类型数据的容器。 12、为信号赋初值的符号是(:=);程序中,为变量赋值的符号是(:=),为信号赋值的符号是(<=) 13、VHDL的数据类型包括(标量类型)、(复合类型)、(存储类型)和(文件类型)。 14、在VHDL中,标准逻辑位数据有(九)种逻辑值。 15、VHDL的操作符包括(逻辑)、(算术)、(关系)和(并置)四类。 选择题: 1、IEEE于1987年公布了VHDL的(A)语法标准。 A、IEEE STD 1076-1987; B、RS232; C、IEEE STD_LOGIC_1164; D、IEEE STD 1076-1993; 2、IEEE于1987年公布了VHDL的(D)语法标准。 A、IEEE STD 1076-1987; B、RS232; C、IEEE STD_LOGIC_1164; D、IEEE STD 1076-1993; 3、VHDL的设计实体可以被高层次的系统(D ),成为系统的一部分。 A、输入; B、输出; C、仿真; D、调用 4、VHDL常用的库是(A)标准库。 A、IEEE; B、STD; C、WORK; D、PACKAGE 5、VHDL的实体声明部分用来指定设计单元的(D ) A、输入端口; B、输出端口; C、引脚; D、以上均可 6、一个设计实体可以拥有一个或多个(B )

EDA技术—VHDL版期末试卷(含答案)

2010—2011学年第一学期期末考试试卷(闭卷) 年级 2008 专业信息处理与交换(本)课程名称 EDA技术基础 教师出题时请勿超出边界虚线; 2、学生答题前将密封线外的内容填写清楚,答题不得超出密封线; 3、答题请用蓝、黑钢笔或圆珠笔。 一、单项选择题(30分) 1.以下描述错误的是 C A.QuartusII是Altera提供的FPGA/CPLD 集成开发环境 B.Altera是世界上最大的可编程逻辑器件 供应商之一 C.MAX+plusII是Altera前一代FPGA/CPLD 集成开发环境QuartusII的更新换代新 产品 D.QuartusII完全支持VHDL、Verilog的 设计流程 2.以下工具中属于FPGA/CPLD开发工具中的 专用综合器的是 B A.ModelSim B.Leonardo Spectrum C.Active HDL D.QuartusII

3.以下器件中属于Xilinx 公司生产的是 C A.ispLSI系列器件 B.MAX系 列器件 C.XC9500系列器件 D.FLEX系 列器件 4.以下关于信号和变量的描述中错误的是 B A.信号是描述硬件系统的基本数据对象, 它的性质类似于连接线 B.信号的定义范围是结构体、进程 C.除了没有方向说明以外,信号与实体的 端口概念是一致的 D.在进程中不能将变量列入敏感信号列表中 5.以下关于状态机的描述中正确的是 B A.Moore型状态机其输出是当前状态和所有输入的函数 B.与Moore型状态机相比,Mealy型的输出变化要领先一个时钟周期 C.Mealy型状态机其输出是当前状态的函数 D.以上都不对 6.下列标识符中, B 是不合法的标识符。

VHDL期末考试题

2.一般将一个完整的VHDL程序称为设计实体 3. VHDL设计实体的基本结构由库、程序包、实体、结构体和配置组成。 不区分大小写。 5.常用的库:library ieee ,程序包:use 程序的基本结构至少应包括实体、结构体和对库的引用声明。 7.在VHDL程序中使用的文字、数据对象、数据类型都需要事先声明。 8. VHDL的实体由实体声明和结构体组成。VHDL的实体声明部分指定了设计单元的输入出端口或引脚,它是设计实体对外的一个通信界面,是外界可以看到的部分。VHDL的结构体用来描述实体的逻辑结构和逻辑功能,它由VHDL语句构成,是外界看不到的部分。 9.端口方向模式:IN(输入)、OUT(输出<构造体内部不能再使用>)、INOUT(双向)、BUFFER (缓冲<构造体内部可再使用>) 10.VHDL的标识符名必须以(字母开头),后跟若干字母、数字或单个下划线构成,但最后不能为(下划线),不能连续两个下划线相连。 11. 为信号赋初值的符号是(:=);程序中,为变量赋值的符号是(:=),为信号赋值的符号是(<=) 12. VHDL的数据类型包括标量类型、复合类型、存储类型和文件类型 请列出3个VHDL语言的数据类型,如实数、位等。位矢量,字符,布尔量,整数,字符串,时间,错误等级,自然数,正整数。 13. VHDL的操作符包括逻辑、算术、关系和并置四类 14.可编程逻辑器件:CPLD、FPGA、GAL、PLA、PAL(早期) CPLD(复杂可编程逻辑器件):基于乘机项技术构造的可编程逻辑器件,不需要配置外部 程序寄存芯片 FPGA(现场可编程门阵列):基于查找表技术构造的可编程逻辑器件,需要配置外部程序寄 存芯片 客体或数据对象:常量、信号、变量(可被多次赋值)、文件。 16.一个VHDL程序中可以使用多个进程process语句,一个设计实体可以拥有多个结构体。的预算操作包括:逻辑运算符、关系运算符、乘法运算符(优先级<<<) 逻辑运算符、关系运算符、加减并置运算符、正负运算符、乘法运算符、 中std_logic类型:‘Z’表示高阻,‘X’表示不确定 19.将一个信width定义为一个4位标准逻辑向量为:signal width :std_logic_vector(3 downto 0) 定义一个变量a,数据类型为4位位向量:variable a :bit_vector(3 downto 0) 20.赋值语句是并行执行,IF语句是串行执行。 21.标准逻辑是一个具有九值逻辑的数据类型 22.表示‘0’‘1’两值逻辑的数据类型是bit,表示‘0’‘1’‘Z’等九值逻辑的数据类型是std_logic ,表示空操作的数据类型是NULL 23.<=是小于等于关系运算符,又是赋值运算操作符 /=是不相等操作符,功能是在条件判断是判断操作符两端不相等。 NOT是逻辑运算符,表示取反,在所有操作符中优先级最高。 30.并置运算符 & 的功能是把多个位或位向量合并为一个位向量。 24.位类型的初始化采用字符,位矢量用字符串 25.进程必须位于结构体内部,变量必须定义于进程内部 26.进程执行的机制是敏感信号发生跳变 27. VHDL语言可以有以下3种形式的子结构描述语句: BLOCK语句结构; PROCESS语句结

VHDL复习题

习题 3、1比较常用硬件描述语言VHDL、Verilog与ABEL语言得优劣。 1、VHDL:描述语言层次较高,不易控制底层电路,因而对综合器得性能要求较高。有多种EDA 工具选择,已成为IEEE标准。 应用VHDL进行工程设计得优点就是多方面得,具体如下: (1) 与其她得硬件描述语言相比,VHDL具有更强得行为描述能力。 (2) VHDL具有丰富得仿真语句与库函数,使得在任何大系统得设计早期,就能查验设计系统得功能可行性,随时可对系统进行仿真模拟,使设计者对整个工程得结构与功能可行性做出判断。 (3) VHDL语句得行为描述能力与程序结构,决定了它具有支持大规模设计得分解与已有设计得再利用功能。 (4) 用VHDL完成一个确定得设计,可以利用EDA工具进行逻辑综合与优化,并自动把VHDL 描述设计转变成门级网表(根据不同得实现芯片)。 (5) VHDL对设计得描述具有相对独立性。 (6) VHDL具有类属描述语句与子程序调用等功能,对于完成得设计,在不改变源程序得条件下,只需改变类属参量或函数,就能轻易地改变设计得规模与结构。 2、Verilog:设计者需要了解电路得结构细节,对综合器得性能要求较低。有多种EDA工具选择,已成为IEEE标准。 3、ABEL: 设计者需要了解电路得结构细节,对综合器得性能要求较低。支持ABEL得综合器只有一家,ABEL正朝国际化标准努力。 3、2 VHDL程序一般包括几个组成部分?每部分得作用就是什么? (1)三个基本组成部分:库、程序包使用说明,实体描述与实体对应得结构体描述。 (2)库、程序包使用说明:用于打开调用本设计实体将用到得库、程序包 实体描述:用于描述该设计实体与外界得接口信号说明 结构体描述:用于描述该设计实体内部得组成及内部工作得逻辑关系 结构体配置语句主要用于层次化得方式对特定得设计实体进行元件得例化,或就是为实体选定某个特定得结构体 3、3 VHDL语言中数据对象有几种?各种数据对象得作用范围如何?各种数据对象得实际物理含义就是什么? (1)数据对象有三种:变量、常量、信号 (2)常量得作用范围取决于其所定义得位置。若在程序包中定义,则可以用在调用该程序包得所有设计实体中。若定义在实体中,则可在这个实体得所有结构体中使用。若定义在结构体中,则只能用于该结构体。若定义在进程/子程序中,则只能用于该进程/子程序。 变量属于局部量,作用范围仅限于所定义得进程或子程序内部。 信号属于全局量,作用范围取决于其所定义得位置。若在程序包中定义,则可以用在调用该程序包得所有设计实体中。若定义在实体中,则可在这个实体得所有结构体中使用。若定义在结构体中,则只能用于该结构体。 (3)信号表示硬件中得连线,用于各并行语句模块之间得通信。变量一般用于存储局部/临时数据。常量表示电路中得恒定电平,可使代码中常数易于阅读与修改。 3、4 什么叫标识符?VHDL得基本标识符就是怎样规定得? (1)标识符用来定义常量、变量、信号、端口、子程序或者参数得名字。 (2)VHDL得基本标识符就就是以英文字母开头,不连续使用下划线,不以下划线结尾得,由26个英文大小写字母,数字0-9以及下划线组成得字符串。

VHDL试题

试卷1 填空题 1.2000年推出的Pentium4微处理器芯片的集成度达( 4200 )万只晶体管。 2.一般把EDA技术的发展分为(CAD)、( CAE )和( EDA)三个阶段。 3.在EDA发展的(CAD )阶段,人们只能借助计算机对电路进行模拟、预测,以及辅助进行集成电路版图编辑、印刷电路板(PCB)布局布线等工作。 4.在EDA发展的( CAE )阶段,人们可以将计算机作为单点设计工具,并建立各种设计单元库,开始用计算机将很多单点工具集成在一起使用。 5.EDA设计流程包括(设计准备)、(设计输入)、(设计处理)和(器件编程)四个步骤。 6.EDA的设计验证包括(功能仿真)、(时序仿真)和(器件测试)三个过程。7.EDA的设计输入主要包括(文本输入方式)、(图形输入方式)和(波形输入方式)。8.文本输入是指采用(硬件描述语言)进行电路设计的方式。 9.功能仿真是在设计输入完成之后,选择具体器件进行编译之前进行的逻辑功能验证。前仿真 10.时序方针是在选择了具体器件并完成布局、布线之后进行的时序关系仿真,因此又称为(后仿真)或(延时仿真)。 11.当前最流行的并成为IEEE标准的硬件描述语言包括( VHDL )和(V erilog HDL )。12.采用PLD进行的数字系统设计,是基于芯片的设计或称之为(自底向上)的设计。13.硬件描述语言HDL给PLD和数字系统的设计带来了更新的设计方法和理念,产生了目前最常用的并称之为(自顶向下)的设计法。 14.EDA工具大致可以分为(设计输入编译器)、(仿真器)、(HDL综合器)、(适配器)以及(下载器)等5个模块。 15.将硬件描述语言转化为硬件电路的重要工具软件称为( HDL综合器)。 单项选择题 1.将设计的系统或电路按照EDA开发软件要求的某种形式表示出来,并送入计算机的过程称为( 1 )。 ①设计输入②设计输出③仿真④综合 2.一般把EDA技术的发展分为( 2 )个阶段。 ① 2 ② 3 ③ 4 ④ 5 3.AHDL属于( 1 )描述语言。 ①普通硬件②行为③高级④低级 4.VHDL属于( 2 )描述语言。 ①普通硬件②行为③高级④低级 5.包括设计编译和检查、逻辑优化和综合、适配合分割、布局和布线、生成编成数据文件等操作的过程称为( 2 )。 ①设计输入②设计处理③功能仿真④时序仿真 6.在设计输入完成之后,应立即对设计文件进行( 2 )。 ①编辑②编译③功能仿真④时序仿真 7.在设计处理过程中,可产生供器件编程使用的数据文件,对于CPLD来说是产生( 1 )文件。 ①熔丝图②位流数据③图形④仿真

相关主题