VHDL程序设计题
VHDL试卷6套
番茄花园一、 填空题( 分 每空格 分)、一个完整的 语言程序通常包含 实体( ) , 构造体( ), 配置( ), 包集合( )和 库( ) 各部分。
、在一个实体的端口方向说明时,输入使用 表示,那么构造体内部不能再使用的输出是用 表示;双向端口是用 表示;构造体内部可再次使用的输出是用 表示;、一个构造体可以使用几个子结构,即相对比较独立的几个模块来构成。
语言可以有以下 种形式的子结构描述语句: 语句结构; 语句结构和 结构。
、 的客体,或称数据对象包括了常数、 变量 和 信号 。
、请列出三个 语言的数据类型,如实数、位等。
位矢量 , 字符 , 布尔量 。
、设 为 为 为 为 的运算结果是“ , 的运算结果是“ 。
、构造体的描述方式包括三种,分别是 寄存器传输( )描述方法或称数据流 ; 构造体的结构描述方式 和 构造体的行为描述方式 。
、传统的系统硬件设计方法是采用自上而下( )的设计方法,利用硬件描述语言( )的硬件电路设计方法采用自下而上( )的设计方法。
(× )传统的系统硬件设计方法是采用自下而上( )的设计方法,利用硬件描述语言番茄花园( )的硬件电路设计方法采用自上而下( )的设计方法、 可以采用层次化的设计,一个高层的结构体中可以调用低层的实体 (√ )、一个 程序中仅能使用一个进程( )语句。
( × ) 可以使用多个进程语句。
、 语言的预算操作包括了逻辑运算符、关系运算符、乘法运算符等,它们三者的优先级是相同的。
( × ) 逻辑运算符 关系运算符 乘法运算、试举出两种可编程逻辑器件 、 。
、 程序的基本结构包括 库 、 程序包 、 实体和 结构体 。
、 标识符合法吗? 不合法 。
标识符合法吗? 不合法 。
标识符合法吗? 不合法 。
、信号的代入通常用 ,变量用 。
、表示‘ ’‘ ’;两值逻辑的数据类型是 (位) ,表示‘ ’‘ ’‘ 等九值逻辑的数据类型是 (标准逻辑),表示空操作的数据类型是 。
VHDL数字钟
课程设计报告设计题目:用VHDL语言实现数字钟的设计班级:学号:姓名:指导老师:设计时间:摘要本设计是基于VHDL语言的数字钟,硬件平台是Xilinx的Virtex2系列FPGA 开发板。
该数字钟具备预置年月日时分秒的功能,通过按键还可以改变数字钟显示的内容和进入不同的设置状态,并通过加减按键调整系统时间。
在整个VHDl数字电路系统中,采用层次化设计方法,自顶向下进行设计。
设计中根据系统的功能要求合理划分出层次,进行分级设计和仿真验证,将较为复杂的数字系统逻辑简化为基本的模型从而降低实现的难度。
工程中底层实体实现了年月日、时分秒的双向计数器功能,另外还单独设计了系统的时钟模块,用来生成周期为125Hz的按键扫描时钟和周期为1Hz单位脉冲时钟。
为了消除按键的抖动,为此设计了按键消抖模块,采用了状态机来对按键进行消抖。
为了实现根据年份和月份对当前月的天数的判断逻辑,采用了函数对该逻辑进行分析,给出正确的判断结果。
为了提高利用率,在工程中建立了一个包集文件,对底层实体进行了统一封装,方便顶层的调用。
底层的所有实体系统的顶层主要完成了底层的元件例化,主控状态机对系统的状态转换进行控制,按键响应和时钟重新分配电路则完成了整个系统的控制逻辑。
关键词:层次化设计,元件例化,函数,状态机目录摘要 (2)一、课程设计目的 (4)二、课程设计内容及其要求 (4)三、VHDL程序设计 (5)1.设计方案论证 (5)2.设计思路与方法 (6)3.VHDL源代码及其仿真结果 (7)1、六进制可逆计数器 (7)2、十进制可逆计数器, (9)3、十二进制可逆计数器, (11)4、二十四进制可逆计数器 (13)5、天数计数器 (16)6、判断闰年和月份 (18)7、时钟分频模块 (22)8、按键消抖模块 (24)9、程序包 (27)10、顶层实体(主控状态机) (29)四、编程下载 (38)五、课程设计总结 (38)六、参考文献 (38)一、课程设计目的诞生于1983年的VHDL语言,在1987年被美国国防部和IEEE指定为标准硬件描述语言。
等精度频率计设计VHDL程序
等精度频率计设计VHDL程序下面是一个基于VHDL的精度频率计设计程序:library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.NUMERIC_STD.ALL;entity Frequency_Counter isgenericTOLERANCE : integer := 1; --容差范围REF_FREQ : natural := 100; --参考频率BIT_WIDTH : integer := 16 --输出频率计数器宽度portclk : in std_logic;reset : in std_logic;frequency : out std_logic_vector(BIT_WIDTH - 1 downto 0) --计数器输出值end entity Frequency_Counter;architecture Behavioral of Frequency_Counter issignal count : unsigned(BIT_WIDTH - 1 downto 0); --计数器signal count_enable : std_logic; --计数使能信号signal ref_counter : unsigned(ceil(log2(real(REF_FREQ * CLK_FREQ) / TOLERANCE)) - 1 downto 0); --参考计数器beginprocess(clk, reset)beginif reset = '1' thencount <= (others => '0'); --复位为0count_enable <= '0';ref_counter <= (others => '0');elsif rising_edge(clk) thencount <= count + 1; --计数信号递增end if;if ref_counter = REF_FREQ - 1 thenelseref_counter <= ref_counter + 1; --参考计数器递增end if;end if;end process;process(clk, reset)beginif reset = '1' thencount_enable <= '0';elsif rising_edge(clk) thencount_enable <= '1'; --参考频率达到后启用计数信号elsecount_enable <= '0';end if;end if;end process;frequency <= std_logic_vector(count);end architecture Behavioral;在此设计中,我们定义了一个Frequency_Counter实体,它有几个泛型参数,包括CLK_FREQ(输入时钟频率),TOLERANCE(容差范围),REF_FREQ(参考频率)和BIT_WIDTH(输出频率计数器的宽度)。
EDA技术-VHDL-四选一数据选择器程序设计与仿真实验
EDA技术-VHDL-四选⼀数据选择器程序设计与仿真实验四选⼀数据选择器程序设计与仿真实验1 实验⽬的(1) 熟悉在QuartusⅡ软件平台上建⽴⼯作库⽂件和编辑设计⽂件的⽅法。
(2) 熟悉创建⼯程⽂件⽅法。
(3) 熟悉编译前设置和启动全程编译设置的⽅法。
(4) 熟悉波形编辑器的使⽤⽅法(5) 熟悉在QuartusⅡ软件平台上对设计进⾏仿真的操作全过程(6) 会⽤VHDL语⾔设计⼀个四选⼀数据选择器。
2 实验原理数据选择器⼜叫“多路开关”。
数据选择器在地址码(或叫选择控制)电位的控制下,从⼏个数据输⼊中选择⼀个并将其送到⼀个公共的输出端。
数据选择器的功能类似⼀个多掷开关,如图3.2.1所⽰,图中有四路数据a、b、c、d输⼊,通过选择控制信号 s1、s2(地址码)从四路数据中选中某⼀路数据送⾄输出端y。
逻辑功能如表3.2.1所⽰。
图3.2.1 四选1数据选择器⽰意图表3.2.1 四选⼀数据选择器逻辑功能表从表3.2.1中可知使能端en=1时,不论a~c输⼊状态如何,均⽆输出(y=1,因为所⽤器件的显⽰电路是共阳极),多路开关被禁⽌。
使能端en=0时,多路开关正常⼯作,根据地址码s2、s1的状态选择a~c输⼊信号中某⼀个通道的数据输送到输出端y。
3 实验内容(1) 建⽴⼀个四选⼀数据选择器的⽂件夹。
(2) 在定义好的VHDL模型中完成四选⼀数据选择器的描述,并创建⼯程。
(3) 设计完成后进⾏全程编译,检查源程序编写是否正确。
(4) 建⽴波形编辑⽂件并对输⼊波形进⾏编辑。
(5) 启动仿真器进⾏仿真,并分析仿真结果。
4 实验预习与思考(1) 进⼀步学习在QuartusⅡ软件平台上建⽴⼯作库⽂件和编辑设计⽂件的⽅法。
(2) 进⼀步学习建⽴波形编辑器⽂件编辑输⼊波形的⽅法。
(3) VHDL语⾔的结构体在整个程序中起什么作⽤。
5 VHDL仿真实验(1)新建⼀个⽂件夹。
本例中⽂件夹名为mux。
(2)输⼊源程序,打开计算机桌⾯上图标。
EDA 技术与 VHDL 程序设计基础教程习题答案
2.Altera的第四代EDA集成开发环境为(C)
A Modelsim
B MUX+Plus II
C Quartus II
D ISE
3.下列EDA工具中,支持状态图输入方式的是(B)
A Quartus II
B ISE
C ispDesignEXPERT
D Syplify Pro
D Cyclone
7.下列配置方式不属于FPGA配置模式的是(D)
A主动串行配置模式
B被动串行配置模式
C主动并行配置模式
D被动从属配置模式
8.下列因素中通常不属于CPLD/FPGA选型条件的是(D)
A逻辑资源
B功耗和封装
C价格和速度
D产地
2.8.3
1.结合本章学习的知识,简述CPLD的基本结构?
答:虽然CPLD种类繁多、特点各异,共同之处总结起来可以概括为三个部分:
配置与绕线(Place and Routing)
绕线后的电路功能验证(Post Layout Verification)
8.为什么要进行硬件电路的后仿真验证和测试?
答:后仿真考虑了实际器件的模型参数,能够更好的模拟实际电路工作状态。测试是检验设计合格的最直接的方式。
第2章EDA习题答案
2.8.1
1.可编程逻辑器件的英文全称是Programmable Logic Device
4.目前比较流行的主流厂家的EDA软件有Quartus II、ISE、ModelSim、ispLEVER
5.常用的设计输入方式有原理图输入、文本输入、状态机输入
6.常用的硬件描述语言有VHDL、Verilog
7.逻辑综合后生成的网表文件为EDIF
数字逻辑电路课程设计_4B5B编码_VHDL实现(含完整代码)
电子科技大学UNIVERSITY OF ELECTRONIC SCIENCE AND TECHNOLOGY OF CHINA数字逻辑设计实验报告实验题目:4B5B编码器学生:指导老师:一、实验容4B/5B编码是百兆以太网中线路层编码类型之一,该试验需要实现用5bit 的二进制数来表示4bit二进制数。
二、实验要求1、功能性要求:能够实现4B5B编码,即输入4bit数据时能输出正确的5bit编码结果。
2、算法要求:利用卡诺图对编码真值表进行化简,得出其逻辑表达式,并基于此进行硬件设计。
3、设计性要求:使用代码及原理图两种设计方式来进行设计。
采用基本门结构化描述。
能够编写Test Bench文件,并利用Modelsim进行仿真。
三、实验原理及设计思路1、实验原理:在IEEE 802.9a等时以太网标准中的4B:5B编码方案,因其效率高和容易实现而被采用。
这种编码的特点是将欲发送的数据流每4bit作为一个组,然后按照4B/5B编码规则将其转换成相应5bit码。
5bit码共有32种组合,但只采用其中的16种对应4bit码的16种,其他的16种或者未用或者用作控制码,以表示帧的开始和结束、光纤线路的状态(静止、空闲、暂停)等。
4B5B编码表如下:2、设计思路:(1)整体思路:对已知的编码真值表,首先利用卡诺图对其进行化简,得出其逻辑表达式,再用基本门结构将其实现。
(2)卡诺图与表达式:设输入的4位编码为:ABCD,输出的5位编码为:VWXYZ,则分别画出其卡诺图并得出表达式如下:1.V:V=A+B’D’+B’C2.W:W=B+A’C’X=C+A’B’D’4.Y:Y=A’B+AB’+C’D’+AC’Z=D(3)基本门结构设计:由上述表达式可见,用到的基本门有:非门、2输入与门、3输入与门、2输入或门、3输入或门、4输入或门,用not、and、or将其一一表示出即可。
四、程序设计1、顶层模块:library IEEE;use IEEE.STD_LOGIC_1164.ALL;entity main isPort ( a : in STD_LOGIC;b : in STD_LOGIC;c : in STD_LOGIC;d : in STD_LOGIC;v : out STD_LOGIC;w : out STD_LOGIC;x : out STD_LOGIC;y : out STD_LOGIC;z : out STD_LOGIC);end main;architecture Behavioral of main isCOMPONENT notiPORT(i : IN std_logic;);END COMPONENT;COMPONENT and2iPORT(i1 : IN std_logic;i2 : IN std_logic;o : OUT std_logic);END COMPONENT;COMPONENT and3iPORT(i1 : IN std_logic;i2 : IN std_logic;i3 : IN std_logic;o : OUT std_logic);END COMPONENT;COMPONENT or2iPORT(i1 : IN std_logic;i2 : IN std_logic;o : OUT std_logic);END COMPONENT;COMPONENT or3iPORT(i1 : IN std_logic;i2 : IN std_logic;i3 : IN std_logic;o : OUT std_logic);END COMPONENT;COMPONENT or4iPORT(i1 : IN std_logic;i2 : IN std_logic;i3 : IN std_logic;i4 : IN std_logic;);END COMPONENT;signal nota,notb,notc,notd,v1,v2,v3,w1,w2,x1,x2,y1,y2,y3,y4,vv,ww,xx,yy,zz : std_logic;begin--not--Inst_noti_nota: noti PORT MAP(i => a,o => nota);Inst_noti_notb: noti PORT MAP(i => b,o => notb);Inst_noti_notc: noti PORT MAP(i => c,o => notc);Inst_noti_notd: noti PORT MAP(i => d,o => notd);--v--v1<=a;Inst_and2i_v2: and2i PORT MAP(i1 => notb,i2 => notd,o => v2);Inst_and2i_v3: and2i PORT MAP(i1 => notb,i2 => c,o => v3);Inst_or3i_vv: or3i PORT MAP(i1 => v1,i2 => v2,i3 => v3,o => vv);--w--w1<=b;Inst_and2i_w2: and2i PORT MAP( i1 => nota,i2 => notc,o => w2);Inst_or2i_ww: or2i PORT MAP(i1 => w1,i2 => w2,o => ww);--x--x1<=c;Inst_and3i_x2: and3i PORT MAP( i1 => nota,i2 => notb,i3 => notd,o => x2);Inst_or2i_xx: or2i PORT MAP(i1 => x1,i2 => x2,o => xx);--y--Inst_and2i_y1: and2i PORT MAP( i1 => nota,i2 => b,o => y1);Inst_and2i_y2: and2i PORT MAP( i1 => a,i2 => notb,o => y2);Inst_and2i_y3: and2i PORT MAP( i1 => notc,i2 => notd,o => y3);Inst_and2i_y4: and2i PORT MAP( i1 => a,i2 => notc,o => y4);Inst_or4i_yy: or4i PORT MAP(i1 => y1,i2 => y2,i3 => y3,i4 => y4,o => yy);--z--zz<=d;--not--Inst_noti_v: noti PORT MAP(i => vv,o => v);Inst_noti_w: noti PORT MAP(i => ww,o => w);Inst_noti_x: noti PORT MAP(i => xx,o => xInst_noti_y: noti PORT MAP(i => yy,o => y);Inst_noti_z: noti PORT MAP(i => zz,o => z);end Behavioral;2、非门:entity noti isPort ( i : in STD_LOGIC;o : out STD_LOGIC);end noti;architecture Behavioral of noti is begino <= not i;end Behavioral;3、2输入与门:entity and2i isPort ( i1 : in STD_LOGIC;i2 : in STD_LOGIC;o : out STD_LOGIC);end and2i;architecture Behavioral of and2i is begino <= i1 and i2;end Behavioral;4、3输入与门:entity and3i isPort ( i1 : in STD_LOGIC;i2 : in STD_LOGIC;i3 : in STD_LOGIC;o : out STD_LOGIC);end and3i;architecture Behavioral of and3i isbegino<=i1 and i2 and i3;end Behavioral;5、2输入或门:entity or2i isPort ( i1 : in STD_LOGIC;i2 : in STD_LOGIC;o : out STD_LOGIC); end or2i;architecture Behavioral of or2i is begino<=i1 or i2;end Behavioral;6、3输入或门:entity or3i isPort ( i1 : in STD_LOGIC;i2 : in STD_LOGIC;i3 : in STD_LOGIC;o : out STD_LOGIC); end or3i;architecture Behavioral of or3i is begino <= i1 or i2 or i3;end Behavioral;7、4输入或门:entity or4i isPort ( i1 : in STD_LOGIC;i2 : in STD_LOGIC;i3 : in STD_LOGIC;i4 : in STD_LOGIC;o : out STD_LOGIC); end or4i;architecture Behavioral of or4i is begino<=i1 or i2 or i3 or i4;end Behavioral;五、仿真与硬件调试1、仿真:(1)顶层仿真:1.仿真文件:LIBRARY ieee;USE ieee.std_logic_1164.ALL;ENTITY test1 ISEND test1;ARCHITECTURE behavior OF test1 IS-- Component Declaration for the Unit Under Test (UUT)COMPONENT mainPORT(a : IN std_logic;b : IN std_logic;c : IN std_logic;d : IN std_logic;v : OUT std_logic;w : OUT std_logic;x : OUT std_logic;y : OUT std_logic;z : OUT std_logic);END COMPONENT;--Inputssignal a : std_logic := '0';signal b : std_logic := '0';signal c : std_logic := '0';signal d : std_logic := '0';--Outputssignal v : std_logic;signal w : std_logic;signal x : std_logic;signal y : std_logic;signal z : std_logic;-- No clocks detected in port list. Replace <clock> below with -- appropriate port nameBEGIN-- Instantiate the Unit Under Test (UUT)uut: main PORT MAP (a => a,b => b,c => c,d => d,v => v,w => w,x => x,y => y,z => z);-- Stimulus processstim_proc: processbegina<='0';b<='0';c<='0';d<='0'; wait for 100 ns;a<='0';b<='0';c<='0';d<='1'; wait for 100 ns;a<='0';b<='0';c<='1';d<='0'; wait for 100 ns;a<='0';b<='0';c<='1';d<='1'; wait for 100 ns;a<='0';b<='1';c<='0';d<='0'; wait for 100 ns;a<='0';b<='1';c<='0';d<='1'; wait for 100 ns;a<='0';b<='1';c<='1';d<='0'; wait for 100 ns;a<='0';b<='1';c<='1';d<='1'; wait for 100 ns;a<='1';b<='0';c<='0';d<='0'; wait for 100 ns;a<='1';b<='0';c<='0';d<='1'; wait for 100 ns;a<='1';b<='0';c<='1';d<='0'; wait for 100 ns;a<='1';b<='0';c<='1';d<='1'; wait for 100 ns;a<='1';b<='1';c<='0';d<='0'; wait for 100 ns;a<='1';b<='1';c<='0';d<='1'; wait for 100 ns;a<='1';b<='1';c<='1';d<='0'; wait for 100 ns;a<='1';b<='1';c<='1';d<='1'; -- insert stimulus herewait;end process;END;2.仿真结果:(2)非门仿真:(3)2输入与门仿真:(4)2输入或门仿真:(5)3输入或门仿真:(6)4输入或门仿真:2、硬件调试:(1)管脚配置:NET "a" LOC = P6; #sb1NET "b" LOC = P141;NET "c" LOC = P136;NET "d" LOC = P129;NET "v" LOC = P122;NET "w" LOC = P123;NET "x" LOC = P124;NET "y" LOC = P125;NET "z" LOC = P126;(2)调试结果:如上图所示,4B码为“0000”,其对应的5B码为“11110”。
VHDL复习题
C.idata <= X”AB” D. idata <= B”21”;
18. VHDL中,为目标变量赋值符号是 。
A. =: B. = C. <= D. :=
19. 如果a=1,b=1,则逻辑表达式(a XOR b) OR( NOT b AND a)的值是 。
A. 0 B. 1 C. 2 D. 不确定
20. 下面对利用原理图输入设计方法进行数字电路系统设计的描述中,那一种说法是不正确的。 。
A. 数据类型不同不能进行运算 B. 数据类型相同才能进行运算
C. 数据类型相同或相符就可以运算 D. 运算与数据类型无关
11. vhdl语言是一种结构化的设计语言,一个设计实体包括实体和结构体两部分,结构体描述的是 。
A.器件外部特性 B. 器件的内部功能
B. 在系统编程
C. 没有特定意义
D. 使用编程器烧写PLD芯片
15. 执行下列语句后Q的值等于 。
……
SIGNAL E: STD_LOGIC_VECTOR (2 TO 5);
SIGNAL Q: STD_LOGIC_VECTOR (9 DOWNTO 2);
15. VHDL的实体声明部分指定了设计单元的 或 它是设计实体对外的一个通信界面,是外界可以看到的部分。
16. 在VHDL中最常用的库是 标准库,最常用的数据包是 数据包。
17. 过程调用的两种方法为 和 。
……
E<=(2=>’1’, 4=>’0’, OTHERS=>’1’);
Q<=(2=>E (2), 4=>E (3), 5=>’1’, 7=>E (5), OTHERS=>E (4));
电子设计自动化技术
电子设计自动化技术一、选择题:(每题2分,共30分)1. 不符合1987VHDL标准的标识符是()。
A. a2b2B. a1b1C. ad12D. %502. VHDL语言中变量定义的位置是()。
A. 实体中中任何位置B. 实体中特定位置C. 结构体中任何位置D. 结构体中特定位置3. VHDL语言中信号定义的位置是()。
A. 实体中任何位置B. 实体中特定位置C. 结构体中任何位置D. 结构体中特定位置4. 变量是局部量可以写在()。
A. 实体中B. 进程中C. 线粒体D. 种子体中5. 变量和信号的描述正确的是()。
A. 变量赋值号是:=B. 信号赋值号是:=C. 变量赋值号是<=D. 二者没有区别6. 变量和信号的描述正确的是()。
A. 变量可以带出进程B. 信号可以带出进程C. 信号不能带出进程D. 二者没有区别7. 关于VHDL数据类型,正确的是()。
A. 数据类型不同不能进行运算B. 数据类型相同才能进行运算C. 数据类型相同或相符就可以运算D. 运算与数据类型无关8. 下面数据中属于实数的是()。
A. 4.2B. 3C. ‘1’D. “11011”9. 下面数据中属于位矢量的是()。
A. 4.2B. 3C. ‘1’D. “11011”10. 正确给变量X赋值的语句是()。
A. X<=A+B;B. X:=A+b;C. X=A+B;D. 前面的都不正确11. 可以不必声11.明而直接引用的数据类型是()。
A. STD_LOGICB. STD_LOGIC_VECTORC. BITD. 前面三个答案都是错误的12. STD_LOGIG_1164中定义的高阻是字符()。
A. XB. xC. zD. Z13. STD_LOGIG_1164中字符H定义的是()。
A. 弱信号1B. 弱信号0C. 没有这个定义D. 初始值14. 使用STD_LOGIG_1164使用的数据类型时()。
A.可以直接调用B.必须在库和包集合中声明C.必须在实体中声明D. 必须在结构体中声明15. MAX+PLUSII的设计文件不能直接保存在()。
edA考试卷(带答案)
2008~2009学年第一学期EDA技术A卷适用:06级电子信息工程专业EDA技术A一、填空题:(共20分,每空1分)1、在VHDL程序设计中,常用的库有(IEEE库)(STD )(WORK )库等。
2、Max_plusII为原理图输入设计配备了各种需要的元件库,它们分别是(基本逻辑元件库)(宏功能元件库)(宏功能块LPM库)。
3、采用原理图输入设计的文件后缀为(.gdf ),采用波形图输入设计的文件后缀为(.wdf )4、在VHDL中的数值类属性测试函数主要有(left)(right)(high )和LOW。
5、FPGA/CPLD的设计流程为(设计输入)、(综合)(适配)(时序仿真与功能仿真)(编程下载)(硬件测试)。
6、若D<= “11” & ‘00’ & “01”,则D的值为(“110001”)。
7、若定义W : BUFFER STD_LOGIC_VECTOR(0 TO 5),程序中有W<=“100111”;则W(2)的值为(0 )。
8、定义signal f,g:std_logic_vector(5 downto 0); 若f的值为“101011”,若执行g<=(5=>f(1),4=>’1’, others=>f(4)); 则g的值是(110000 )。
二、简答题:(共10分)1、VHDL程序一般包括几个组成部分,每部分的作用是什么?答:VHDL程序一般包括3个组成部分,它们是(1)实体,它描述的是电路器件的端口构成和信号属性;(2)结构体,描述设计实体的内部结构和外部设计实体端口间的逻辑关系;(3)库及程序包的声明,在设计实体中的语句可以使用库中相应程序包的数据和文件。
2、什么叫顺序语句,它的适用范围是什么?VHDL有那几种基本的顺序语句?答:执行顺序与它们的书写顺序基本一致的语句叫顺序语句,顺序语句只能出现在进程和子程序中,子程序包括函数和过程。
eda技术实用教程-veriloghdl答案
eda技术实用教程-veriloghdl答案【篇一:eda技术与vhdl程序开发基础教程课后答案】eda的英文全称是electronic design automation2.eda系统设计自动化eda阶段三个发展阶段3. eda技术的应用可概括为4.目前比较流行的主流厂家的eda软件有、5.常用的设计输入方式有原理图输入、文本输入、状态机输入6.常用的硬件描述语言有7.逻辑综合后生成的网表文件为 edif8.布局布线主要完成9.10.常用的第三方eda工具软件有synplify/synplify pro、leonardo spectrum1.8.2选择1.eda技术发展历程的正确描述为(a)a cad-cae-edab eda-cad-caec eda-cae-cadd cae-cad-eda2.altera的第四代eda集成开发环境为(c)a modelsimb mux+plus iic quartus iid ise3.下列eda工具中,支持状态图输入方式的是(b)a quartus iib isec ispdesignexpertd syplify pro4.下列几种仿真中考虑了物理模型参数的仿真是(a)a 时序仿真b 功能仿真c 行为仿真d 逻辑仿真5.下列描述eda工程设计流程正确的是(c)a输入-综合-布线-下载-仿真b布线-仿真-下载-输入-综合c输入-综合-布线-仿真-下载d输入-仿真-综合-布线-下载6.下列编程语言中不属于硬件描述语言的是(d)a vhdlb verilogc abeld php1.8.3问答1.结合本章学习的知识,简述什么是eda技术?谈谈自己对eda技术的认识?答:eda(electronic design automation)工程是现代电子信息工程领域中一门发展迅速的新技术。
2.简要介绍eda技术的发展历程?答:现代eda技术是20世纪90年代初从计算机辅助设计、辅助制造和辅助测试等工程概念发展而来的。
《EDA技术与VHDL》 选择题
一、VHDL基本结构1. 一个项目的输入输出端口是定义在A. 实体中B. 结构体中C. 任何位置D. 进程中2. 描述项目逻辑功能的是A. 实体B. 结构体C. 配置D. 进程3. 关键字ARCHITECTURE定义的是A. 结构体B. 进程C. 实体D. 配置4.VHDL语言共支持四种常用库,其中哪种库是用户的VHDL设计现行工作库:A.IEEE库B.VITAL库C.STD库D.WORK工作库5. VHDL语言是一种结构化设计语言;一个设计实体(电路模块)包括实体与结构体两部分,结构体描述是A.器件外部特性;B.器件的内部功能;C.器件的综合约束;D.器件外部特性与内部功能。
6. 在VHDL中,库可以包含一个或多个A. 程序包B. 结构体C. 输入D. 输出7. 一个能为VHDL综合器接受,并能作为一个独立的设计单元的完整的VHDL程序成为A.设计输入 B. 设计输出 C. 设计实体 D. 设计结构8. Q为输出信号,但内部设计会用到其反馈信号,其正确的端口说明是:A. Q:IN BIT;B. Q:OUT BIT;C. Q:INOUT BIT;D. Q:BUFFER BIT;9.VHDL语言程序结构的特点是把一个设计实体分成A.外部和内部B.实体和实体说明C.结构体和结构体说明D.图形部分和文本部分10. VHDL设计文件的实体说明部分描述的是A.电路系统的内部结构B.电路系统的逻辑功能C.电路系统的主要参数D.电路系统的外部端口11.VHDL语言程序结构中必不可少的部分是:A.库B.程序包C.配置D.实体和结构体12. 下列选项中,哪些项在VHDL程序设计文件中属于可选部分A.库和实体B.实体和结构体C.结构体和配置D. 库、程序包和配置13. 关于VHDL中实体说明的格式,以下叙述不正确的是A.实体说明以“ENTITY 实体名 IS”开头,以“END 实体名”结束B.实体说明中包含类属表和端口说明两部分C.端口说明中只需要规定端口的模式即可D.实体名一定要与设计文件同名14. 在VHDL的实体说明中,端口名表的作用是A.列出所有输入端口的名称B.列出所有输出端口的名称C.说明实体输入、输出端口的信号类型及端口模式D.只定义输入、输出端口的数目15. 在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)常量的作用范围取决于其所定义的位置。
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可以采用层次化的设计,一个高层的结构体中可以调用低层的实体 ( √)3、一个VHAL程序中仅能使用一个进程(process)语句. (×)可以使用多个进程语句.4、VHDL语言的预算操作包括了逻辑运算符、关系运算符、乘法运算符等,它们三者的优先级是相同的。
试卷 vhdl 湖南科技大学
简答题20分填空题10分选择题10分程序分析题3题30分编程题3题30分1.课本中第八章中逻辑电路设计,是考试重点,一些程序和类似程序会在考试中以程序分析题和编程题形式出现。
(以课本及上课PPT为参考)2.除了第八章外,例1-1 例1-2 例5-2 例5-5例6-8 例6-9 例6-10 例6-12 例6-13,这些程序也很经典,1.VHDL 的全称是什么?利用它设计硬件电路有哪些优点?答:VHDL 的全称Very High Speed Integrated Circuit Hardware Description Language(超高速集成电路硬件描述语言,利用VHDL 设计硬件电路具有以下特点:(1)设计文件齐全、方法灵活、支持广泛(2)系统硬件描述能力强(3)VHDL 语言可以与工艺无关编程(4)VHDL 语言标准、规范、易于共享和复用2.一个完整的VHDL语言程序由哪几个部分构成,每个部分作用是什么。
答:一个完整的VHDL语言程序由库,包集合,实体,构造体和配置五个部分组成。
库包含若干个包集合,确定程序所需要调用的函数,数据类型等;包集合内存有具体函数,数据类型的定义;实体说明系统的端口与类属参数;构造体完成系统内部逻辑关系与具体电路的实现;配置则说明实体与构造体的连接关系,通过配置,同一实体可搭配不同构造体。
3.简述VHDL语言构造体的描述方式及各自特点。
答:行为描述,RTL描述方式,结构描述方式。
行为描述主要是对系统数学模型的描述,一般进行仿真难以进行逻辑综合;RTL描述主要是对系统内部构造与逻辑关系的描述,可以进行逻辑综合;结构描述大量使用模块化描述方式,采用component语句,block语句,便于实现积木化结构,能够进行逻辑综合。
4.VHDL 语言中客体的概念及使用范围VHDL 语言中可以赋予一个值的对象称为客体;客体主要包括三种:信号、常数、变量;信号和常数为全局量,变量为局部量5.请从申明格式、赋值符号、赋值生效时间、作用范围等方面对信号和变量进行比较分析。
VHDL程序设计教程习题解答
VHDL程序设计教程习题参考解答第1章思考题解答1.什么是VHDL?简述VHDL的发展史。
答:VHDL是美国国防部为电子项目设计承包商提供的,签定合同使用的,电子系统硬件描述语言。
1983年成立VHDL语言开发组,1987年推广实施,1993年扩充改版。
VHDL 是IEEE标准语言,广泛用于数字集成电路逻辑设计。
2.简述VHDL设计实体的结构。
答:实体由实体名、类型表、端口表、实体说明部分和实体语句部分组成。
根据IEEE标准,实体组织的一般格式为:ENTITY 实体名 IS[GENERIC(类型表);] --可选项[PORT(端口表);] --必需项实体说明部分; --可选项[BEGIN实体语句部分;]END [ENTITY] [实体名];3.分别用结构体的3种描述法设计一个4位计数器。
答:用行为描述方法设计一个4位计数器如下,其它描述方法,读者可自行设计。
LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;use ieee.std_logic_unsigned.all;ENTITY countA ISPORT (clk,clr,en:IN STD_LOGIC;Qa,qb,qc,qd:OUT STD_LOGIC);END countA;ARCHITECTURE example OF countA ISSIGNAL count_4:STD_LOGIC_vector (3 DOWNTO 0);BEGINQa <= count_4(0);Qb <= count_4(1);Qc <= count_4(2);Qd <= count_4(3);PROCESS (clk,clr)BEGINIF (clr = '1' ) THENCount_4 <= "0000";ELSIF (clk'EVENT AND clk = '1' ) THENIF (en = '1' ) THENIF (count_4 = "1111") THENcount_4 <= "0000";ELSEcount_4 <= count_4+ '1';END IF;END IF;END IF;END PROCESS;END example;第2章思考题解答1.什么叫对象?对象有哪几个类型?答:在VHDL语言中,凡是可以赋于一个值的客体叫对象(object)。
VHDL程序题
1.以下是一位全加器的VHDL设计,试补充完整。
library ieee; --半加器设计use ieee.std_logic_1164.all;entity h_adder isport (a, b : in std_logic;co, so : out std_logic);end h_adder;architecture fh1 of h_adder isbeginso <= not(a xor (not b)) ;co <= a and b ;end architecture fh1;library ieee; --或门设计use ieee.std_logic_1164.all;entity or2a isport (a,b: in std_logic;c: out std_logic);end or2a;architecture rtl of or2a isbeginc<= a or b after 10 ns;end rt;library ieee; --全加器设计use ieee.std_logic_1164.all;entity f_adder ISport (ain,bin,cin : in std_logic;cout,sum : out std_logic );end entity f_adder;architecture fd1 OF f_adder IScomponent h_adderport (a, b : in std_logic;co, so : out std_logic);end component;component or2aport (a,b: in std_logic;c: out std_logic);end component;signal d, e, f : std_logic;beginu1 : h_adder port map(a=>ain, b=>bin, co=>d, so=>e);u2 : h_adder port map (a=>e, b=>cin, co=>f, so=>sum);u3 : or2a port map (a=>d, b=>f, c=>cout);end architecture fd1;2.以下是含有使能端且具有同步清零的加减计数器的VHDL设计,试补充完整。
(完整)verilog考试题
西安电子科技大学考试时间分钟试题班级学号姓名任课教师一、选择题(每题2分,共18分)1. 下面哪个是可以用verilog语言进行描述,而不能用VHDL语言进行描述的级别?( A )(A) 开关级(B)门电路级 (C)体系结构级 (D) 寄存器传输级2.在verilog中,下列语句哪个不是分支语句?( D )(A) if—else (B) case (C) casez (D) repeat3.下列哪些Verilog的基本门级元件是多输出( D )(A) nand (B) nor (C) and (D) not4.Verilog连线类型的驱动强度说明被省略时,则默认的输出驱动强度为( B )(A) supply (B) strong (C) pull (D) weak5。
元件实例语句“notif1 #(1:3:4,2:3:4,1:2:4) U1(out,in,ctrl);”中截至延迟的典型值为( B )(A) 1 (B) 2 (C) 3 (D) 46.已知“a =1b’1;b=3b’001;”那么{a,b}=( C )(A) 4b’0011 (B) 3b’001 (C) 4b'1001 (D) 3b’1017.根据调用子模块的不同抽象级别,模块的结构描述可以分为(ABC )(A) 模块级 (B)门级 (C) 开关级 (D) 寄存器级8.在verilog语言中,a=4b'1011,那么 &a=(D )(A) 4b’1011 (B) 4b’1111 (C) 1b'1 (D) 1b'09.在verilog语言中整型数据与( C )位寄存器数据在实际意义上是相同的。
(A) 8 (B) 16 (C) 32 (D) 64二、简答题(2题,共16分)1.Verilog HDL语言进行电路设计方法有哪几种(8分)1、自上而下的设计方法(Top—Down)2、自下而上的设计方法(Bottom—Up)3、综合设计的方法2.specparam语句和parameter语句在参数说明方面不同之处是什么(8分)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
VHDL 程序设计题四、 编程题(共50分)1、请补全以下二选一VHDL 程序(本题10分) Entity mux isport(d0,d1,sel:in bit;q:out BIT ); (2) end mux;architecture connect of MUX is (4) signal tmp1, TMP2 ,tmp3:bit; (6) begin cale: block begintmp1<=d0 and sel;tmp2<=d1 and (not sel) tmp3<= tmp1 and tmp2;q <= tmp3; (8) end block cale;end CONNECT ; (10)2、编写一个2输入与门的VHDL 程序,请写出库、程序包、实体、构造体相关语句,将端口定义为标准逻辑型数据结构(本题10分)LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL; (2) ENTITY nand2 ISPORT (a ,b:IN STD_LOGIC; (4)&a byy:OUT STD_LOGIC); (6)END nand2;ARCHITECTURE nand2_1 OF nand2 IS (8)BEGINy <= a NAND b; --与y <=NOT( a AND b);等价(10)END nand2_1;3、根据下表填写完成一个3-8线译码器的VHDL程序(16分)。
LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY decoder_3_to_8 ISPORT (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 ISSIGNAL indata:STD_LOGIC_VECTOR (2 DOWNTO 0); (4)BEGINindata <= c & b & a; (6)PROCESS (indata,g1,g2a,g2b)BEGINIF (g1 = '1' AND g2a = '0' AND g2b = '0' ) THEN (8)CASE indata ISWHEN "000"=> y <= "11111110";WHEN "001" => y <= "11111101";WHEN "010" => y <= "11111011"; (10)WHEN "011" => y <= "11110111";WHEN "100" => y <= "11101111";WHEN "101" => y <= "11011111";WHEN "110" => y <= "10111111"; (12)WHEN "111" => y <= "01111111";WHEN OTHERS=> y <= "XXXXXXXX";END CASE;ELSEy <= "11111111"; (14)END IF;END PROCESS; (16)END rtl;4、三态门电原理图如右图所示,真值表如左图所示,请完成其VHDL程序构造体部分。
(本题14分)LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY tri_gate ISPORT(din,en:IN STD_LOGIC;dout : OUT STD_LOGIC);END tri_gate ;ARCHITECTURE zas OF tri_gate ISBEGINPROCESS (din,en)BEGINIF (en=‘1') THEN dout <= din;ELSE dout <= ‘Z’;END IF;END PROCESS ;END zas ;四、编程题(共50分)1、根据一下四选一程序的结构体部分,完成实体程序部分(本题8分)entity MUX4 isport( (2)s: in std_logic_vector(1 downto 0); (4)d: in std_logic_vector(3 downto 0); (6)y: out std_logic (8));end MUX4;architecture behave of MUX4 isbeginprocess(s)beginif (s="00") theny<=d(0);elsif (s="01") theny<=d(1);elsif (s="10") theny<=d(2);elsif (s="11") theny<=d(3);elsenull;end if;end process;end behave;2、编写一个数值比较器VHDL程序的进程(不必写整个结构框架),要求使能信号g低电平时比较器开始工作,输入信号p = q,输出equ为‘0’,否则为‘1’。
(本题10分)process(p,q) (2)beginif g='0' then (4)if p = q thenequ <= '0'; (6)elseequ <= '1'; (8)end if;elseequ <= '1'; (10)end if;end process;3、填写完成一个8-3线编码器的VHDL程序(16分)。
Library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity eight_tri isport(b: in std_logic_vector(7 downto 0); (2)en: in std_logic;y: out std_logic_vector(2 downto 0) (4));end eight_tri;architecture a of eight_tri is (6)signal sel: std_logic_vector(8 downto 0);beginsel<=en & b; (8)y<= “000” when (sel=”100000001”)else“001” when (sel=”100000010”)else(10)“010” when (sel=”100000100”)else“011” when (sel=”100001000”)else“100” when (sel=”100010000”)else(12)“101” when (sel=”100100000”)else“110” when (sel=”101000000”)else(14)“111” when (sel=”110000000”)else(16)“zzz”;end a;4、图中给出了4位逐位进位全加器,请完成其VHDL程序。
(本题16分)library IEEE;use IEEE.std_logic_1164.all;use IEEE.std_logic_arith.all;use IEEE.std_logic_unsigned.all;entity full_add isport (a,b: in std_logic_vector (3 downto 0); (2)carr: inout std_logic_vector (4 downto 0);sum: out std_logic_vector (3 downto 0));end full_add;architecture full_add_arch of full_add iscomponent adder (4)port (a,b,c: in std_logic;carr: inout std_logic;sum: out std_logic (6));end component;begincarr(0)<='0';u0:adder port map(a(0),b(0),carr(0),carr(1),sum(0));u1:adder port map(a(1),b(1),carr(1),carr(2),sum(1)); (8)(10)u2:adder port map(a(2),b(2),carr(2),carr(3),sum(2)); (12)u3:adder port map(a(3),b(3),carr(3),carr(4),sum(3)); (14)(16)end full_add_arch;四、编程(共50分)1、完成下图所示的触发器。
(本题10分)library IEEE;use IEEE.std_logic_1164.all;entity VposDff isport (CLK, CLR, D: in STD_LOGIC; ----------2分Q, QN: out STD_LOGIC ); ----------4分end VposDff;architecture VposDff_arch of VposDff isbeginprocess ( CLK, CLR ) ----------6分beginif CLR='1' then Q <= '0'; QN <='1';elsif CLK'event and CLK='1' thenQ <= D; QN <= not D; ----------8分end if;end process; ----------10分end VposDff_arch;2、完成以下4位全加器代码(本题10分)library IEEE;use IEEE.std_logic_1164.all;entity full_add isport (a,b: in std_logic_vector (3 downto 0);cin: in std_logic;cout: out std_logic;sum: out std_logic_vector (3 downto 0));end full_add;architecture full_add_arch of full_add iscomponent adderport ( a,b,c: in std_logic;carr: out std_logic;sum: out std_logic );end component;signal c1,c2,c3: std_logic; 2分beginu0:adder port map(a(0),b(0),cin,c1,sum(0)); 4分u1:adder port map(a(1),b(1),c1,c2,sum(1)); 5分u2:adder port map(a(2),b(2),c2,c3,sum(2)); 6分u3:adder port map(a(3),b(3),c3,cout,sum(3)); 10分end full_add_arch;3、补充完整如下代码,使之完成4状态不断循环。