收藏 分销(赏)

VHDL复习资料教案资料.doc

上传人:w****g 文档编号:4022893 上传时间:2024-07-25 格式:DOC 页数:12 大小:52.50KB 下载积分:8 金币
下载 相关 举报
VHDL复习资料教案资料.doc_第1页
第1页 / 共12页
VHDL复习资料教案资料.doc_第2页
第2页 / 共12页


点击查看更多>>
资源描述
一. 填空(每空1分,共20分) 1.MAX+plusII是ALTERA 公司自己开发的 EDA EDA 工具软件。 2. VHDL设计实体的基本结构由  库 库  、 程序包包集合   、 实体 实体  、 结构体 构造体(有称结构体) 、 配置 配置    等部分构成。 3.在VHDL中最常用的库 IEEE IEEE  标准库,最常用的包集合是 1164 STD-LOGIC-1164 。 4.在VHDL的端口声明语句中,端口方向包括 输入(in) 、 输出(out) BUFFER(输出、可内部使用 、输入|输出(inout) 、 缓冲 和 。 5.VHDL的顺序语句只能出现在进程(Process) 进程 过程procedure)、函数 (Function) 函数 、 过程 中,是按程序书写顺序自 上而下,一条一条地执行。 6.VHDL的 块 块(BLOCK) 语句是并行语句结构,它的内部是由并行语句构成的 7.VHDL的变量(VARIABLE)是一种局部量,只能在 进程 进程 、 函数 函数 和 过程 过程 中声明和使用。 8.MAX+plusII支持 文本 、 原理图 、 波形 、 符号编辑 等不同的编辑方式。 9.MAX+plusII工具软件有 功能 、 时序 、 仿真 等功能。 10.MAX—PLUSⅡ的波形编辑文件分 波形输入 和 波形仿真 ,它们的文件扩展名分别是 W D F 和 S C F 。 11.VHDL的实体声明部分指定了设计单元的 输入输出端口 ,它是设计实体对外的通信界面,是外界可以看到的部分。 12.CPLD和FPGA的含义分别是 复杂可编程逻辑器件 , 现场可编程门阵列 。 13.在VHDL中,含WAIT语句的进程Process的括号不能再加 敏感量 ,否则是非 法的. 14.VHDL的Process(进程)语句是由 顺序语句 顺序语句 组成的,但其本身却是 并发语句 结构并行语句。 15.VHDL的子程序有 函数 函数 和 过程 过程 两种类型。 16.在VHDL中,标准逻辑位数据有 0和1 种逻辑值。 17.MAX—PLUSⅡ 的仿真分 功能仿真 和 时序仿真 。 18.VHDL的变量(VARIABLE)是一个 功能变量 ,只能在进程、函数和过程中声明和使用。 19.VHDL的数据对象包括 常数 、 变量 、 信号 和 文件 。 20. 实体 和 结构体 是设计实体的基本组成部分,它们可以构成最基本的VHDL程序。 20.VHDL语言的字符是以 字母的下划线 括起来的数字、字母和符号。 二.简答题(每题6分,共 30 分) 1.如何用VHDL语句描述时钟的下降沿和上升沿。 时钟上升沿if clk‘event and clk=“1”then 下降沿if clk‘event and clk =“0” then答:在VHDL中用语句CLOCK´EVEVT AND CLOCK=´0´,表示检测CLOCK的下降沿。在VHDL中用语句CLOCK´EVEVT AND CLOCK=´1´,表示检测CLOCK的下降沿。 2. 在VHDL中的IEEE标准中,预定义的标准是逻辑位数据STD-LOGIC与BIT有何区别。 只有当端口说明为BIT时该端口的信号取值只能是二进制数“0”和“1”答:在VHDL中的IEEE标准中,预定义的标准是逻辑位数据STD-LOGIC有9种逻辑值,而BIT只有二种值。 3.VHDL的信号(SIGNAL)与变量(VARIABLE)有什么的区别。 Signal可以在实体构造体等高层次环境中说明,对整个设计实体全局有效 Variable 在进程子函数等低层次环境中说明,只在说明的区域中局部有效 答:VHDL的信号(SIGNAL)是一种数值容器,不仅可以容纳当前值,也可以保持历史值。VHDL的变量(VARIABLE)是一种局部量,只能在进程、函数和过程中声明和使用。在VHDL中,目标变量是用:= 赋值,目标信号的赋值符号是〈=。 4. 叙述一个四位加法器及仿真的全过程。 5.现有两个半加器,一个两输入或门,试画出一个全加器 答: 6.在一个构造体内,其执行语句的顺序有什么特点? 7.卫式BLOCK语句中的条件和PROCESS 语句中的敏感量的区别是什么(顺序),它们的执行过程如何? Block块头主要用于信号的映射及参数的定义、process 并行执行进程语句 8. 为层次式电路,各层次的功能模块在存盘时要注意什么问题? (在同一路径的文件夹内) 9.在MAX—PLUSⅡ中一般连线与总线有什么区别,在使用总线时必须注意什么问题? 10、现有一个两输入异或门,一个两输入与门,试画出半加器。 S=A⊕B 11.硬件描述语言描述硬件电路的基本构成是什么? 数字系统的结构,行为和功能; 硬件描述语言设计数字; 电路逻辑电路的过程和方法 12.解释端口方向说明,IN 、 OUT 、 INOUT 、 BUFFER和LINRAGE的含义? In:输入型,信号从该端口进入实体; out:输出型,信号从实体内部经该端口输出 Inout:输入输出型,信号既可以从该端口输入也可以输出 Buffer:缓冲型,与out类似但在结构内部可作反馈 Linrage:无指定方向,与任何方向的信号连接 13.数据类型BIT与STD-LOGIC ,BIT_ VECTOR与STD_LOGIC_VECTOR其共同点与不同点是什么? Std-logic-vector:标准逻辑适量 Std-logic:标准逻辑位量 Bit:为数据类型取值只能是:“0”和“1” Bit-vector:位矢量,数据类型 三.分析题 (共50分) 1.读懂下列程序,指出其完成什么功能?(20分) (1) library ieee; use ieee.std_logic_1164.all; entity aaa is port ( a,b,c,d: in std_logic; y:out std_logic) ; end aaa; architecture aaa1 of aaa is begin p1:process (a,b,c,d) variable tmp:std_logic_vector (3 downto 0 ); begin tmp:=a&b&c&d; case tmp is when ″0000″=> y<= ′ 1′ ; when ″0001″=> y<= ′ 1′ ; when ″0010″= >y<= ′ 1′ ; when ″0011″= > y<= ′ 1′ ; when ″0101″=> y<= ′ 1′ ; when ″0110″= > y<= ′ 1′ ; when ″0111″=> y<= ′ 1′ ; when ″1000″=> y<= ′ 1′ ; when ″1001″=> y<= ′ 1′ ; when ″1010″=> y<= ′ 1′ ; when ″1011″=> y<= ′ 1′ ; when ″1110″= > y<= ′ 1′ ; when ″1111″=> y<= ′ 0′ ; when others =>y<=′ x′; end case ; end process p1; end aaa1; 与非门 答:四输入与非门电路 (2) library ieee; use ieee.ste_logic_1164.all; entity abc is port ( clk: in std_logic; r: in std_logic; d: in std_logic_vector ( 3 downto 0); q:out std_logic _vector ( 3 downto 0 ); end abc; architecture rtl of abc is signal q_temp :std_logic_vector ( 3 downto 0); begin process ( clk, r) begin if ( r=′1′ ) then q_temp<=″0000″ ; elseif ( clk ′event and clk=′1′ ) then q_temp <=d; end if; q<= q_temp; end process; end rtl; 寄存器 (1)ENTITY abc IS PORT (do,d1 ,y: IN BIT; q: OUT BIT); END abc ; ARCHITECTURE connect OF abc IS BEGIN Cale: BLOCK BEGIN Tmp1<= d0 AND y ; Tmp2<=d1 AND (NOT y ) ; Tmp3<=tmp1 OR tmp2 ; q <=tmp3 ; END BLOCK cale ; END connect ; 二选一电路 (2)LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY parity_check IS PORT ( a: IN STD_LOGIC_VECTOR (7 DOWNTO 0); y: OUT STD_LOGIC); END parity_check; ARCHITECTURE rtl OF parity_check IS BEGIN PROCESS( a) VARIABLE tmp:STD_LOGIC; BEGIN tmp:="0"; FOR i IN 0TO 7 LOOP tmp:=tmp XOR a(i); END LOOP; y<=tmp; END PROCESS; END rtl奇偶效应 (1) ENTITY abc IS PORT (do,d1: IN BIT; x: IN BIT ; Q: OUT BIT); END abc ; ARCHITECTURE dataflow OF abc IS BEGIN Q<= (d0 AND x ) OR ( NOT x AND d1 ); END dataflow;二选一的数据选择器 (2) LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY AAA IS PORT (Clock:IN STD_LOGIC; CLKOUT:OUT STD_LOGIC); END ; ARCHITECTURE Behavior OF AAA IS SIGNAL Clk:STD_LOGIC; BEGIN PROCESS(Clock) BEGIN IF rising_edge(Clock) THEN CLK<=NOT Clk; END IF; END PROCESS; Clkout<=Clk; END;边沿触发器 答: D触发器 2.下列程序是一个二选一电路,有四处错误,试指出并改正。(10分) ENTITY mux IS PROT ( d0,d1,sel : IN BIT BIT ; q: OUT BIT BIT ) ; END mux ; ARCHITECTURE connect OF mux IS (mux) BEGIN Cale : PROCESS (d0,d1sel SEL) VARIABLE tmp1,tmp2,tmp3: BIT ; BEGIN Temp1: =d0 AND sel ; Temp2: = d1 AND (NOT sel ) ; Temp3:=tmp1 OR tmp2 ; Q :< = tmp3 ; (<=) END PROCESS ; END connect ; (3)ENTITY mux IS PROT ( d0,d1,sel : IN BIT ; q: OUT BIT) ; END mux ; ARCHITECTURE connect OF mux IS BEGIN Cale : PROCESS (d0 ,d1,sel ) VARIABLE tmp1,tmp2,tmp3: BIT ; BEGIN Temp1: =d0 AND sel ; Temp2: = d1 AND (NOT sel ) ; Temp3:=tmp1 OR tmp2 ; Q :<= tmp3 ; END PROCESS ; END connect ; 3、下列程序是2输入“或非”门电路,在空格中填上适当的语句(10分) LIBRARY IEEEIEEE ; USE IEEE.STD_LOGIC_1164.ALL; ENTITY nor2 IS PORT (a,b: IN STD-LOGIC IN STD_LOGIC ; y: OUT STD_LOGIC ); END nor2 ; ARCHITECTURE nor2_2 OF NOR2 nor2 IS BEGIN t2: PROCESS ( a,b) VARIABLE comb: STD_LOGIC_VECTOR ( 1 DOWNTO 0); BEGIN Comb:=a & b ; CASE comb IS WHEN ″00″=>y<=′1′; WHEN ″01″=>y<=′0′; WHEN ″10″=>y<=′0′; WHEN ″11″=>y<=′0′; END CASE CASE ; END PROCESS t2; END nor2_2; (2)LIBRARY IEEE ; USE IEEE.STD_LOGIC_1164.ALL; ENTITY nor2 IS PORT ( a,b : IN STD_LOGIC ; y: OUT STD_LOGIC ); END nor2 ; ARCHITECTURE nor2_2 OF nor2 IS BEGIN t2: PROCESS ( a,b) VARIABLE comb: STD_LOGIC_VECTOR ( 1 DOWNTO 0); BEGIN Comb:=a & b ; CASE comb IS WHEN ″00″=>y<=′1′; WHEN ″01″=>y<=′0′; WHEN ″10″=>y<=′0′; WHEN ″11″=>y<=′0′; END CASE ; END PROCESS t2; END nor2_2; 2 . 下列程序是四选一电路,在空格中填上适当的语句。(10分) LIBRARY IEEE ; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL ; ENTITY mux4 IS PORT ( i0,i1,i2,i3,a,b : IN STD-LOGIC ; Q: OUT STD_LOGIC ); END mux4 ; ARCHITECTURE behav OF mux4 IS SIGNAL sel: INTEGER ; BEGIN WITH S SELECT q <= i0 AFTER 10 ns WHEN 0, i1 AFTER 10 ns WHEN 1, i2 AFTER 10 ns WHEN 2, i3 AFTER 10 ns WHEN 3, ′1′AFTER 10 ns WHEN OTHERS; sel<=0 WHEN a=′0′ AND b=′0′ ELSE 1 WHEN a=′1′ AND b=′0′ ELSE 2 WHEN a=′0′ AND b=′1′ ELSE 3 WHEN a=′1′ AND b=′1′ ELSE 4 WHEN OTHERS ; END behav; 3. 下列程序有四处错误,试指出并改正。(10分) ENTITY mux IS PROT ( d0,d1,sel : IN BIT ; q: OUT BIT) ; END mux ; ARCHITECTURE connect OF mux IS BEGIN Cale : PROCESS (d0, d1, sel ) VARIABLE tmp1,tmp2,tmp3: BIT ; BEGIN Temp1: =d0 AND sel ; Temp2: = d1 AND (NOT sel ) ; Temp3:=tmp1 OR tmp2 ; Q :<= tmp3 ; END PROCESS ; END connect ; 4.分析下列程序,指出其功能并说明其工作过程。(10分) library ieee; use ieee.std_logic_1164.all; entity xyz is port(a,clk1:in std_logic; b:out std_logic); end xyz; architecture xyz1 of xyz is signal tmp1:std_logic; begin process(clk1,a) variable tmp3,tmp2:std_logic; begin if clk1′event and clk1 =′0′ then tmp1<=a; tmp2:=tmp1; tmp3:=not tmp2; end if; b<=tmp1 and tmp3 and clk1; end process; end xyz1;(消除同步模块) 故当时钟脉冲下降沿到来时,变量tmp2和tmp3在赋值语句执行后立即分别得到新值:tmp1和tmp2的非值,而输入信号a经过一定时延时赋值给信号tmp1实现消抖同步的功能
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服