搜档网
当前位置:搜档网 › VHDL试卷

VHDL试卷

VHDL试卷
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

3、一个VHAL程序中仅能使用一个进程(process)语句。(×)可以使用多个进程语句。

4、VHDL语言的预算操作包括了逻辑运算符、关系运算符、乘法运算符等,它们三者的优先级是相同的。

(×)

逻辑运算符<关系运算符<乘法运算

10分)

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_arith.all;

use ieee.std_logic_unsigned.all;

以上库和程序包语句有无错误?

有,有的话请在原程序相应

位置改正。 (2)

entity rom is

port(

addr: in std_logic_vector(0 to 3);

2

ce: in std_logic;

data:out std_logic_vector(7 downto 0) ;

);

end rom;

以上port语句有无错误?

有,有的话请在原程序相应位

置改正。 (4)

architecture behave of rom is

begin

process(ce,addr)

begin

if ce='0' then (6)

case addr is when "0000"=>

data<="10001001";

when "0001"=>

3

data<="10001010";

when "0010"=>

data<="10001011";

when "0011"=>

data<="10001100";

when "0100"=>

data<="10001101";

when "0101"=>

data<="10001110";

when "0110"=>

data<="10001111";

when "0111"=>

data<="10010000";

when "1000"=>

data<="10010001";

when "1001"=>

data<="10010010";

when "1010"=>

data<="10010011";

when "1011"=>

data<="10010100";

when "1100"=>

data<="10010101";

when "1101"=>

4

data<="10010110";

when "1110"=>

data<="10010111";

when others=>

|

data<="10011000"; | end case;

(8)

else

data<="00000000";

end if;

end process;(10)

end behave;

以上architecture中有哪些错误?请在原程序相应位置改正。

50分)

1、请补全以下二选一VHDL程序(本题10分)

Entity mux is

port(d0,d1,sel:in bit;

q:out BIT );

5

(2)

end mux;

architecture connect of MUX is (4)

signal tmp1, TMP2 ,tmp3:bit;

(6)

begin

cale:

block

begin

tmp1<=d0 and sel;

tmp2<=d1 and (not sel)

tmp3<= tmp1 and tmp2;

q <= tmp3;

(8)

end block cale;

end CONNECT ;

(10)

6

7

2、编写一个2输入与门的VHDL 程序,请写出库、程序包、实体、构造体相关语句,将端口定义为标准逻辑型数据结构(本题10分)

LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; (2)

ENTITY nand2 IS

PORT (a ,b:IN STD_LOGIC; (4)

y:OUT STD_LOGIC); (6)

END nand2;

ARCHITECTURE nand2_1 OF nand2 IS (8)

BEGIN

y <= a NAND b; --与y <=NOT( a AND b);等价 (10) END nand2_1;

3、根据下表填写完成一个3-8线译码器的VHDL 程序(16分)。

& a b

y

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

ENTITY decoder_3_to_8 IS

PORT (a,b,c,g1,g2a,g2b:IN STD_LOGIC;

y:OUT STD_LOGIC_VECTOR(7 DOWNTO 0)); (2)

END decoder_3_to_8;

ARCHITECTURE rtl OF decoder_3_to_8 IS SIGNAL indata:STD_LOGIC_VECTOR (2 DOWNTO 0); (4)

8

BEGIN

indata <= c & b & a;

(6)

PROCESS (indata,g1,g2a,g2b)

BEGIN

IF (g1 = '1' AND g2a = '0' AND g2b = '0' ) THEN (8)

CASE indata IS

WHEN "000"=> y <= "11111110";

WHEN "001" => y <= "11111101";

WHEN "010" => y <= "11111011"; (10)

WHEN "011" => y <= "11110111";

WHEN "100" => y <= "11101111";

9

WHEN "101" => y <= "11011111";

WHEN "110" => y <= "10111111"; (12)

WHEN "111" => y <= "01111111";

WHEN OTHERS=> y <= "XXXXXXXX";

END CASE;

ELSE

y <= "11111111";

(14)

END IF;

END PROCESS; (16)END rtl;

4、三态门电原理图如右图所示,真值表如左图所示,请完成其VHDL程序构造体部分。

10

(本题14分)

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL; ENTITY tri_gate IS

PORT(din,en:IN STD_LOGIC;

dout : OUT STD_LOGIC); END tri_gate ;

ARCHITECTURE zas OF tri_gate IS BEGIN

P ROCESS (din,en)

BEGIN

IF (en=‘1') THEN dout <= din;

ELSE dout <= ‘Z’;

11

END IF;

END PROCESS ; END zas ;

12

2008/2009 学年第一学期末考试试题答案及评分标准

(A卷)

一、填空题(20分,每空格1分)

1、试举出两种可编程逻辑器件 CPLD 、FPGA 。

2、VHDL程序的基本结构包括库、程序包、实体

和结构体。

3、more_ _11标识符合法吗?不合法。8bit标识符合法吗?不合法。

variable标识符合法吗?不合法。

4、信号的代入通常用 <= ,变量用 := 。

5、表示‘0’‘1’;两值逻辑的数据类型是 bit (位),表示‘0’‘1’‘Z’等九值逻辑的数据类型是 std_logic(标准逻辑),表示空操作的

数据类型是 NULL 。

13

6、定义一个信号a,数据类型为4位标准逻辑向量signal a : std_logic_vector(3 downto 0) 定义一个变量b,数据类型为2位位向量 variable b : bit_vector(1 downto 0) 。

7、<=是小于等于关系运算符,又是赋值运算操作符。

8、设D0为'1', D1为'0', D2为'1', D3为'0', D3 & D2 & D1 & D0的运算结果是“0101”, D1 & D2 & D3 & D4的运算结果是“1010”。

20分,每小题5分,判断对错2分,给出正确答案3分)

1、进程语句中,不管在何时,process语句后面必须列出敏感信号(×)

包含wait语句的进程语句可不列出敏感信号。

2、VHDL语言与计算机C语言的没有差别。(×)

运行的基础

14

–计算机语言是在CPU+RAM构建的平台上

运行

–VHDL设计的结果是由具体的逻辑、触发器

组成的数字电路

●执行方式

–计算机语言基本上以串行的方式执行

–VHDL在总体上是以并行方式工作

●验证方式

–计算机语言主要关注于变量值的变化

–VHDL要实现严格的时序逻辑关系

3、在结构体中定义一个全局变量(VARIABLES),可以在所有进程中使用。(×)

“变量(VARIABLES)”改为“信号”。

4、Moore状态机输出只是状态机当前状态的函数,Mealy状态机输出为有限状态机当前值和输入值

的函数

(√)

10分)

library ieee;

use ieee.std_logic_arith.all;

use

15

16

use ieee.std_logic_unsigned.all;

以上库和程序包语句有无错误?

有 ,有的话请在原程序相应位

entity rom is port(

addr: in std_logic_vector(0 to 3); ce: in std_logic;

data:out std_logic_vector(7 downto 0) ; )

end rom;

以上port 语句有无错误? 有 ,

有的话请在原程序相应位置改正。 (4)

architecture behave of rom is begin

process (ce,addr ) (6) begin

if ce='0' then

case addr is

when "0000"=>

data<="10001001";

when "0001"=>

data<="10001010";

when "0010"=>

data<="10001011";

when "0011"=>

data<="10001100";

when "0100"=> data<="10001101";

when "0101"=>

data<="10001110";

when "0110"=>

data<="10001111";

when "0111"=>

data<="10010000";

when "1000"=>

data<="10010001";

when "1001"=>

data<="10010010";

when "1010"=>

17

18

data<="10010011"; when "1011"=>

data<="10010100"; when "1100"=>

data<="10010101"; when "1101"=>

data<="10010110"; when "1110"=>

data<="10010111"; when others=>

data<="10011000"; end case;

else

data:="00000000"; --data <= “00000000”; (8)

end if; (10) end process; end behave;

以上architecture 中有哪些错误?请在原程

序相应位置改正。

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

VHDL语言实例教学内容

VHDL语言实例 例1:设计一七段显示译码器,用它来驱动七段发光管LED显示十六进制数字0到9和字母A到F。LED显示数码管为共阳极。 LIBRARY ieee; USE ieee.std_logic_1164.all; ENTITY HEX2LED IS PORT( HEX :IN std_logic_vector(3 DOWNTO 0); LED : OUT std_logic_vector(6 TO 0) ); END HEX2LED; 图例1 七段显示译码 器实体 ARCHITECTURE HEX2LED_arc OF HEX2LED IS BEGIN -- HEX-TO-SEVEN-SEGMENT DECODER -- SEGMENT ENCODING -- -- ---- -- 5 | |1 -- ---- <--6 -- 4 | |2

-- ---- -- 3 WITH HEX SELECT LED<= "1111001" when "0001", "0100100" when "0010", "0110000" when "0011", "0011001" when "0100", "0010010" when "0101", "0000010" when "0110", "1111000" when "0111", "0000000" when "1000", "0010000" when "1001", "0001000" when "1010", "0000011" when "1011", "1000110" when "1100", "0100001" when "1101", "0000110" when "1110", "0001110" when "1111", "1000000" when others; END HEX2LED_arc; 例2:设计一个八选一数据选择器 1)s是通道选择信号, d0,d1,d2,d3,d4,d5,d6,d7数据输入 out1是数据输出

完整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语句结

EDA-常见实例源程序代码vhdl

第4章用VHDL程序实现常用逻辑电路4.1 组合逻辑电路设计 4.1.1 基本逻辑门 library ieee; use iee.std_logic_1164.all; entity jbm is port(a,b: in bit; f1,f2,f3,f4,f5,f: out bit); end jbm; architecture a of jbm is begin f1<=a and b; --构成与门 f2<=a or b; --构成或门 f<=not a; --构成非门 f3<=a nand b; --构成与非门 f4<=a nor b; --构成异或门 f5<=not(a xor b); --构成异或非门即同门 end; 4.1.2 三态门 library ieee; use ieee.std_logic_1164.all; entity tri_s is port(enable: in std_logic; datain: in std_logic_vector(7 downto 0); dataout: out std_logic_vector(7 downto0)); end tri_s; architecture bhv of tri_s is begin process(enable,datain) begin if enable='1' then dataout<=datain; else dataout<="ZZZZZZZZ"; end if; end process; end bhv; 4.1.3 3-8译码器 library ieee; use ieee.std_logic_1164.all; entity decoder3_8 is port(a,b,c,g1,g2a,g2b: in std_logic; y: out std_logic_vector(7 downto 0)); end decoder3_8; architecture a of decoder3_8 is signal dz:std_logic_vector(2 downto 0); begin dz<=c&b&a; process (dz,g1,g2a,g2b) begin if(g1='1'and g2a='0'and g2b='0')then case dz is when "000"=> y<="11111110"; when "001"=> y<="11111101"; when "010"=> y<="11111011"; when "011"=> y<="11110111"; when "100"=> y<="11101111"; when "101"=> y<="11011111"; when "110"=> y<="10111111"; when "111"=> y<="01111111"; when others=>y<="XXXXXXXX"; end case; else y<="11111111"; end if; end process; 4.1.4 优先编码器

杭州电子科技大学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基本语法

VHDL 基础语法篇——VHDL VHDL硬件描述语言 1.1 VHDL概述 1.1.1 VHDL的特点 VHDL语言作为一种标准的硬件描述语言,具有结构严谨、描述能力强的特点,由于 VHDL语言来源于C、Fortran等计算机高级语言,在VHDL语言中保留了部分高级语言的原 语句,如if语句、子程序和函数等,便于阅读和应用。具体特点如下: 1. 支持从系统级到门级电路的描述,既支持自底向上(bottom-up)的设计也支持从顶向下 (top-down)的设计,同时也支持结构、行为和数据流三种形式的混合描述。 2. VHDL的设计单元的基本组成部分是实体(entity)和结构体(architecture),实体包含设 计系统单元的输入和输出端口信息,结构体描述设计单元的组成和行为,便于各模块之间数 据传送。利用单元(componet)、块(block)、过程(procure)和函数(function)等语句, 用结构化层次化的描述方法,使复杂电路的设计更加简便。采用包的概念,便于标准设计文 档资料的保存和广泛使用。 3. VHDL语言有常数、信号和变量三种数据对象,每一个数据对象都要指定数据类型,VHDL 的数据类型丰富,有数值数据类型和逻辑数据类型,有位型和位向量型。既支持预定义的数 据类型,又支持自定义的数据类型,其定义的数据类型具有明确的物理意义,VHDL是强类 型语言。 4. 数字系统有组合电路和时序电路,时序电路又分为同步和异步,电路的动作行为有并行 和串行动作,VHDL语言常用语句分为并行语句和顺序语句,完全能够描述复杂的电路结构 和行为状态。 1.1.2 VHDL语言的基本结构 VHDL语言是数字电路的硬件描述语言,在语句结构上吸取了Fortran和C等计算机高级 语言的语句,如IF语句、循环语句、函数和子程序等,只要具备高级语言的编程技能和数字 逻辑电路的设计基础,就可以在较短的时间内学会VHDL语言。但是VHDL毕竟是一种描述 数字电路的工业标准语言,该种语言的标识符号、数据类型、数据对象以及描述各种电路的 语句形式和程序结构等方面具有特殊的规定,如果一开始就介绍它的语法规定,会使初学者 感到枯燥无味,不得要领。较好的办法是选取几个具有代表性的VHDL程序实例,先介绍整 体的程序结构,再逐步介绍程序中的语法概念。 一个VHDL语言的设计程序描述的是一个电路单元,这个电路单元可以是一个门电路, 或者是一个计数器,也可以是一个CPU。一般情况下,一个完整的VHDL语言程序至少要包含程序包、实体和结构体三个部分。实体给出电路单元的外部输入输出接口信号和引脚信 息,结构体给出了电路单元的内部结构和信号的行为特点, 程序包定义在设计结构体和实体 中将用到的常数、数据类型、子程序和设计好的电路单元等。 一位全加器的逻辑表达式是: S=A⊕B⊕Ci Co=AB+ACi+BCi 全加器的VHDL程序的文件名称是fulladder.VHD,其中VHD是VHDL程序的文件扩展名, 程序如下: LIBRARY IEEE; --IEEE标准库 USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY fulladder IS -- fulladder是实体名称 PORT( A, B, Ci : IN STD_LOGIC; --定义输入/输出信号 Co, S : OUT STD_LOGIC ); END fulladder; ARCHITECTURE addstr OF fulladder IS --addstr是结构体名 BEGIN S <= A XOR B XOR Ci; Co <= (A AND B) OR (A AND Ci) OR (B AND Ci); END addstr; 从这个例子中可以看出,一段完整的VHDL代码主要由以下几部分组成: 第一部分是程序包,程序包是用VHDL语言编写的共享文件,定义在设计结构体和实体

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 verilog 互相调用的例子

给两个例子, 一个是VHDL做顶层调用verilog 一个是verilog 做顶层调用VHDL VHDL调用verilog: module sync_block #( parameter INITIALISE = 2'b00 ) ( input clk, // clock to be sync'ed to input data_in, // Data to be 'synced' output data_out // synced data ); //VHD entity dcm_reset is port( ref_reset : in std_logic; -- Synchronous reset in ref_clk domain ref_clk : in std_logic; -- Reliable reference clock of known frequency (125MHz) dcm_locked : in std_logic; -- The DCM locked signal dcm_reset : out std_logic -- The reset signal which should be connected to the DCM ); end dcm_reset; component sync_block port ( clk : in std_logic; -- clock to be sync'ed to data_in : in std_logic; -- Data to be 'synced' data_out : out std_logic -- synced data ); end component; dcm_locked_sync_tx : sync_block port map( clk => ref_clk, data_in => dcm_locked, data_out => dcm_locked_sync ); verilog调用VHDL:(目标还是上述VHDL模块) module gmii_if ( …… ); dcm_reset rx_dcm_reset ( .ref_reset (tx_reset), .ref_clk (tx_clk),

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);

程序实例1:ASK调制与解调VHDL程序及仿真

ASK调制VHDL程序及仿真 1. ASK调制VHDL程序 --文件名:PL_ASK --功能:基于VHDL硬件描述语言,对基带信号进行ASK振幅调制 --最后修改日期:2004.3.16 library ieee; use ieee.std_logic_arith.all; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity PL_ASK is port(clk :in std_logic; --系统时钟 start :in std_logic; --开始调制信号 x :in std_logic; --基带信号 y :out std_logic); --调制信号 end PL_ASK; architecture behav of PL_ASK is signal q:integer range 0 to 3; --分频计数器 signal f :std_logic; --载波信号 begin process(clk) begin if clk'event and clk='1' then if start='0' then q<=0; elsif q<=1 then f<='1';q<=q+1; --改变q后面数字的大小,就可以改变载波信号的占空比 elsif q=3 then f<='0';q<=0; --改变q后面数字的大小,就可以改变载波信号的频率 else f<='0';q<=q+1; end if; end if; end process;

y<=x and f; --对基带码进行调制 end behav; 2. ASK调制VHDL程序仿真图及注释 ASK调制VHDL程序仿真图及注释如图8.9.7所示。 (a)ASK调制仿真全图 注:a.基带码长等于载波f的6个周期。 b. 输出的调制信号y滞后于输入基带信号x一个clk时间。 (b)ASK调制仿真局部放大图 图8.9.7 ASK调制VHDL程序仿真图及注释 8.9.6 ASK解调VHDL程序及仿真 1.ASK解调VHDL程序 --文件名:PL_ASK2 --功能:基于VHDL硬件描述语言,对ASK调制信号进行解调 --最后修改日期:2004.2.12 library ieee; use ieee.std_logic_arith.all;

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语言程序设计中INOUT端口的使用与实例分析

目录 1、双向电路的基本格式 (2) 2、控制条件 (3) 2.1、双向信号作一个信号的输入,作另一信号的输出 (3) 2.2、双向信号既做输出又做输出 (4) 3、实例说明-INOUT端口仿真暨三态门仿真 (6) 3.1、三态门的原理与仿真三态总线 (6) 3.3、VHDL 的三态门实现与仿真 (7) 参考文献 (12)

VHDL语言程序设计中INOUT端口的使用与实例分析 摘要:VHDL是由美国国防部为描述电子电路所开发的一种语言,其全称为(Very High Speed Integrated Circuit) Hardware Description Language。与另外一门硬件描述语言Verilog HDL相比,VHDL 更善于描述高层的一些设计,包括系统级(算法、数据通路、控制)和行为级(寄存器传输级),而且VHDL 具有设计重用、大型设计能力、可读性强、易于编译等优点逐渐受到硬件设计者的青睐。但是,VHDL是一门语法相当严格的语言,易学性差,特别是对于刚开始接触VHDL的设计者而言,经常会因某些小细节处理不当导致综合无法通过。VHDL共定义了5种类型的端口,分别是In, Out,Inout, Buffer及Linkage,实际设计时只会用到前四种。本文主要讨论讨论如何正确使用INOUT端口。 关键词:VHDL;INOUT端口;三态门原理 1、双向电路的基本格式 工程应用中,双向电路是设计者不得不面对的问题.在实际应用中,数据总线往往是双向的.如何正确处理数据总线是进行时序逻辑电路设计的基础.在程序设计过程中,关键技术在于:实体部分必须对端口属性进行申明,端口属性必须为inout类型,在构造体需要对输出信号进行有条件的高阻控制.在双向电路的处理问题上,常用的处理方式有两种,在介绍双向电路的处理方式之前,先看看双向电路的基本格式: ENTITY bidir_pin IS ( bidir : INOUT std_logic; oe, clk, from_core : IN std_logic; to_core : OUT std_logic; …… END bidir_pin; ARCHITECTURE behavior OF bidir_pin IS BEGIN

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 三.程序设计题 二、程序设计题

EDA 常见实例源程序代码vhdl

第4章用VHDL程序实现常用逻辑电路 4.1 组合逻辑电路设计 4.1.1 基本逻辑门 library ieee; use iee.std_logic_1164.all; entity jbm is port(a,b: in bit; f1,f2,f3,f4,f5,f: out bit); end jbm; architecture a of jbm is begin f1<=a and b; --构成与门 f2<=a or b; --构成或门 f<=not a; --构成非门 f3<=a nand b; --构成与非门 f4<=a nor b; --构成异或门 f5<=not(a xor b); --构成异或非门即同门 end; 4.1.2 三态门 library ieee; use ieee.std_logic_1164.all; entity tri_s is port(enable: in std_logic; datain: in std_logic_vector(7 downto 0); dataout: out std_logic_vector(7 downto0)); end tri_s; architecture bhv of tri_s is begin process(enable,datain) begin if enable='1' then dataout<=datain; else dataout<="ZZZZZZZZ"; end if; end process; end bhv; 4.1.3 3-8译码器 library ieee; use ieee.std_logic_1164.all; entity decoder3_8 is port(a,b,c,g1,g2a,g2b: in std_logic; y: out std_logic_vector(7 downto 0)); end decoder3_8;

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/065289819.html,B 逻辑阵列块 16.IP核:是指完成某种功能的设计模块。 17.FPGA:现场可编程门阵列。 18.SOC:系统芯片,是指把一个完整的系统集成在一个芯片上。 19.HDL:硬件描述语言,是一种用文本形式来描述和设计电路的语言。 20.综合:指的是将较高层次的设计描述自动转化为较低层次描述的过程。能够将原理图 页脚内容2

相关主题