搜档网
当前位置:搜档网 › VHDL——如何写简单的testbench

VHDL——如何写简单的testbench

VHDL——如何写简单的testbench
VHDL——如何写简单的testbench

use ieee.std_logic_1164.all;

use ieee.std_logic_arith.all;

--use ieee.std_logic_unsigned.all;

entity cnt6 is

port

(clr,en,clk :in std_logic;

q :out std_logic_vector(2 downto 0) );

end entity;

architecture rtl of cnt6 is

signal tmp :std_logic_vector(2 downto 0); begin

process(clk)

-- variable q6:integer;

begin

if(clk'event and clk='1') then

if(clr='0')then

tmp<="000";

elsif(en='1') then

if(tmp="101")then

tmp<="000";

else

tmp<=unsigned(tmp)+'1';

end if;

end if;

end if;

q<=tmp;

-- qa<=q(0);

-- qb<=q(1);

-- qc<=q(2);

end process;

end rtl;

二、六进制计数器testbench的代码

signal en :std_logic:='0';

signal clk :std_logic:='0';

signal q :std_logic_vector(2 downto 0);

constant clk_period :time :=20 ns;

begin

instant:cnt6 port map

(

clk=>clk,en=>en,clr=>clr,q=>q

);

clk_gen:process

begin

wait for clk_period/2;

clk<='1';

wait for clk_period/2;

clk<='0';

end process;

clr_gen:process

begin

clr<='0';

wait for 30 ns;

clr<='1';

wait;

end process;

en_gen:process

begin

en<='0';

wait for 50ns;

en<='1';

wait;

end process;

end rtl;

--测试平台文件(testbench)的基本结构

library ieee;

use ieee.std_logic_1164.all;

entity test_bench is --测试平台文件的空实体(不需要端口定义) end test_bench;

architecture tb_behavior of test_bench is

component entity_under_test --被测试元件的声明

port(

list-of-ports-theri-types-and-modes

);

end component;

begin

instantiation:entity_under_test port map

(

port-associations

);

process() --产生时钟信号

……

end process;

process() --产生激励源

……

end process;

end tb_behavior;

------------------------------------------------------------------- --简单计数程序源码

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

use ieee.std_logic_unsigned.all;

entity sim_counter is

port(

clk :in std_logic;

reset :in std_logic;

count :out std_logic_vector(3 downto 0)

);

end entity;

architecture behavioral of sim_counter is

signal temp :std_logic_vector(3 downto 0);

begin

process(clk,reset)

begin

if reset='1' then

temp<="0000";

elsif clk'event and clk='1' then

temp<=temp+1;

end if;

end process;

count<=temp;

end behavioral;

------------------------------------------------------------------- --简单计数程序,测试文件代码(testbench)

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

use ieee.numeric_std.all;

entity counter_tb_vhd is --测试平台实体end counter_tb_vhd;

architecture behavior of counter_tb_vhd is

--被测试元件(DUT)的声明

component sim_counter

port(

clk :in std_logic;

reset :in std_logic;

count :out std_logic_vector(3 downto 0)

);

end component;

--输入信号

signal clk:std_logic:='0';

signal reset :std_logic:='0';

--输出信号

signal count :std_logic_vector(3 downto 0);

constant clk_period :time :=20 ns; --时钟周期的定义

begin

dut:sim_counter port map(

clk=>clk,reset=>reset,counter=>counter

);

clk_gen:process

begin

clk='1';

wait for clk_period/2;

clk='0';

wait for clk_period/2;

end process;

tb:process --激励信号

begin

wait for 20 ns;

reset<='1';

wait for 20 ns;

reset<='0';

wait for 200 ns;

wait; --will wait forever;

end process;

end;

--激励信号的产生方式

--1.以一定的离散时间间隔产生激励信号的波形

--2.基于实体的状态产生激励信号,也就是说基于实体的输出响应产生激励信号

--两种常用的复位信号

--1.周期性的激励信号,如时钟

--2.时序变化的激励型号,如复位

--eg.产生不对称时钟信号

w_clk<='0' after period/4 when w_clk='1' else

'1' after 3*period/4 when w_clk='0' else

'0';

--eg.产生堆成时钟信号,process语句

clk_gen1:process

constan clk_period := 40 ns;

begin

clk='1';

wait for clk_period/2;

clk='0';

wait for clk_period/2;

end process;

四、如果自己不想写这些testbench的这些固定格式,可以在quartus 里自动生成testbench文件的模板,然后往里面写信号就行了

步骤:processing->start->start test bench template write

这里需要注意的是要在仿真选项里选择一个仿真工具,然后才会生成testbench

自动生成的testbench模板格式如下:

-- Copyright (C) 1991-2008 Altera Corporation

-- Your use of Altera Corporation's design tools, logic functions

-- and other software and tools, and its AMPP partner logic

-- functions, and any output files from any of the foregoing

-- (including device programming or simulation files), and any

-- associated documentation or information are expressly subject

-- to the terms and conditions of the Altera Program License

-- Subscription Agreement, Altera MegaCore Function License

-- Agreement, or other applicable license agreement, including,

-- without limitation, that your use is for the sole purpose of

-- programming logic devices manufactured by Altera and sold by

-- Altera or its authorized distributors. Please refer to the

-- applicable agreement for further details.

-- ***************************************************************************

-- This file contains a Vhdl test bench template that is freely editable to

-- suit user's needs .Comments are provided in each section to help the user -- fill out necessary details.

-- ***************************************************************************

-- Generated on "03/13/2011 20:05:04"

-- Vhdl Test Bench template for design : cnt6

--

-- Simulation tool : ModelSim (VHDL)

--

LIBRARY ieee;

USE ieee.std_logic_1164.all;

ENTITY cnt6_vhd_tst IS

END cnt6_vhd_tst;

ARCHITECTURE cnt6_arch OF cnt6_vhd_tst IS

-- constants

-- signals

SIGNAL clk : STD_LOGIC;

SIGNAL clr : STD_LOGIC;

SIGNAL en : STD_LOGIC;

SIGNAL q : STD_LOGIC_VECTOR(2 DOWNTO 0);

COMPONENT cnt6

PORT (

clk : IN STD_LOGIC;

clr : IN STD_LOGIC;

en : IN STD_LOGIC;

q : OUT STD_LOGIC_VECTOR(2 DOWNTO 0)

);

END COMPONENT;

BEGIN

i1 : cnt6

PORT MAP (

-- list connections between master ports and signals

clk => clk,

clr => clr,

en => en,

q => q

);

init : PROCESS

-- variable declarations

BEGIN

-- code that executes only once

WAIT;

END PROCESS init;

always : PROCESS

-- optional sensitivity list

-- ( )

-- variable declarations

BEGIN

-- code executes for every event on sensitivity list WAIT;

END PROCESS always;

END cnt6_arch;

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/4918921405.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 )文件。 ①熔丝图②位流数据③图形④仿真

相关主题