《EDA技术实用教程(第四版)》习题问题详解

上传人:仙*** 文档编号:86697993 上传时间:2022-05-08 格式:DOC 页数:33 大小:570.50KB
收藏 版权申诉 举报 下载
《EDA技术实用教程(第四版)》习题问题详解_第1页
第1页 / 共33页
《EDA技术实用教程(第四版)》习题问题详解_第2页
第2页 / 共33页
《EDA技术实用教程(第四版)》习题问题详解_第3页
第3页 / 共33页
资源描述:

《《EDA技术实用教程(第四版)》习题问题详解》由会员分享,可在线阅读,更多相关《《EDA技术实用教程(第四版)》习题问题详解(33页珍藏版)》请在装配图网上搜索。

1、wordEDA技术实用教程(第四版)习题1 习 题1-1EDA技术与ASIC设计和FPGA开发有什么关系?FPGA在ASIC设计中有什么用途?P34 1-2 与软件描述语言相比,VHDL有什么特点? P6l-3什么是综合?有哪些类型?综合在电子设计自动化中的地位是什么?P5 1-4 在EDA技术中,自顶向下的设计方法的重要意义是什么? P710 1-5 IP在EDA技术的应用和开展中的意义是什么? P22141-6表示EDA的FPGA/CPLD设计流程,以与涉与的EDA工具与其在整个流程中的作用。 (P1113)2 习 题2-1 OLMC输出逻辑宏单元有何功能?说明GAL是怎样实现可编程组合电

2、路与时序电路的。 P34362-2什么是基于乘积项的可编程逻辑结构?P3334,40什么是基于查找表的可编程逻辑结构?P40412-3 FPGA系列器件中的LAB有何作用? P4345 2-5 解释编程与配置这两个概念。 P58 2-6 请参阅相关资料,并回答如下问题:按本章给出的归类方式,将基于乘积项的可编程逻辑结构的PLD器件归类为CPLD;将基于查找表的可编程逻辑结构的PLD器什归类为FPGA,那么,APEX系列属于什么类型PLD器件? MAX II系列又属于什么类型的PLD器件?为什么? P54563 习 题 3-1 画出与以下实体描述对应的原理图符号元件: ENTITY buf3s

3、IS -实体1:三态缓冲器 PORT(input:IN STD_LOGIC; -输入端 enable:IN STD_LOGIC; -使能端 output:OUT STD_LOGIC); -输出端 END buf3s ;buf3sinput outputenable ENTITY mux21 IS -实体2: 2选1多路选择器 PORT(in0, in1,sel: IN STD_LOGIC; output:OUT STD_LOGIC);mux21in0outputin1sel 3-2 图3-16所示的是4选1多路选择器,试分别用IF_THEN语句和CASE语句的表达方式写出此电路的VHDL程序,

4、选择控制信号s1和s0的数据类型为STD_LOGIC_VECTOR;当s1=0,s0=0;s1=0,s0=1;s1=1,s0=0和s1=1,s0=1时,分别执行y=a、y=b、y=c、y=d。图3-16 4选1多路选择器-解1:用IF_THEN语句实现4选1多路选择器 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY mux41 IS PORT (a,b,c,d: IN STD_LOGIC; s0: IN STD_LOGIC; s1: IN STD_LOGIC; y: OUT STD_LOGIC); END ENTITY mux41; ARCH

5、ITECTURE if_mux41 OF mux41 IS SIGNAL s0s1 : STD_LOGIC_VECTOR(1 DOWNTO 0);-定义标准逻辑位矢量数据 BEGIN s0s1=s1&s0; -s1相并s0,即s1与s0并置操作 PROCESS(s0s1,a,b,c,d) BEGIN IF s0s1 = 00 THEN y = a; ELSIF s0s1 = 01 THEN y = b; ELSIF s0s1 = 10 THEN y = c; ELSE y = d; END IF; END PROCESS; END ARCHITECTURE if_mux41;-解2:用CASE

6、语句实现4选1多路选择器 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY mux41 IS PORT (a,b,c,d: IN STD_LOGIC; s0: IN STD_LOGIC; s1: IN STD_LOGIC; y: OUT STD_LOGIC); END ENTITY mux41; ARCHITECTURE case_mux41 OF mux41 IS SIGNAL s0s1 : STD_LOGIC_VECTOR(1 DOWNTO 0);-定义标准逻辑位矢量数据类型 BEGIN s0s1 y y y y NULL ; END CA

7、SE; END PROCESS; END ARCHITECTURE case_mux41;3-3 图3-17所示的是双2选1多路选择器构成的电路MUXK,对于其中MUX21A,当s=0和s=1时,分别有y=a和y y y NULL ; END CASE; END PROCESS;u2: PROCESS(s1,a1,a2,a3,y) BEGIN CASE s1 IS -类似于真值表的case语句 WHEN 0 = outy outy NULL ; END CASE; END PROCESS; END ARCHITECTURE case_mux31;3-4 将例3-20程序的计数器改为十二进制计数

8、器,程序用例3-21的方式表述,并且将复位RST改为同步清零控制,加载信号LOAD改为异步控制方式。讨论例3-20与例3-21的异同点。-解:十二进制计数器VHDL程序设计。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY T12 IS PORT(CLK,RST,EN,LOAD : IN STD_LOGIC; DATA : IN STD_LOGIC_VECTOR(3 DOWNTO 0); -4位预置数 DOUT : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);-计

9、数值输出 COUT : OUT STD_LOGIC); -计数进位输出END T12;ARCHITECTURE behav OF T12 IS SIGNAL Q : STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN REG: PROCESS(CLK,RST,EN,LOAD,Q) BEGIN IF LOAD=0 THEN Q=DATA; -允许加载 ELSIF CLKEVENT AND CLK=1 THEN -检测时钟上升沿 IF RST=0 THEN Q0); -计数器异步复位 ELSE IF EN=1 THEN -检测是否允许计数或加载同步使能 IF LOAD=0 TH

10、EN Q=DATA; -允许加载 ELSE IF Q12 THEN Q=Q+1; -允许计数,检测是否小于9 ELSE Q0); -大于等于9时,计数值清零 END IF; END IF; END IF; END IF; END IF; END PROCESS; : PROCESS(Q) BEGIN IF Q=12 THEN COUT=1; -计数大于9,输出进位信号 ELSE COUT=0; END IF; DOUT 0);-计数器异步复位 ELSIF CLKEVENT AND CLK=1 THEN -检测时钟上升沿 IF ADD_EN=1THEN -检测是否允许计数(同步他能) IF CQ

11、I 0); -大于65535,计数值清零 END IF; IF CQI=16#FFFF# THEN COUT=1; -计数大于9,输出进位信号 ELSE COUT 0 THEN CQI:=CQI-1; -允许计数,检测是否小于65535 ELSE CQI:=(OTHERS = 1); -大于65535,计数值清零 END IF; IF CQI=0 THEN COUT=1; -计数大于9,输出进位信号 ELSE COUT = 0; END IF; END IF; END IF; CQ=CQI; -将计数值向端口输出 END PROCESS; END ARCHITECTURE A_S_16;3-6

12、 图3-18是一个含有上升沿触发的D触发器的时序电路(sxdl),试写出此电路的VHDL设计文件。图3-18 时序电路 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY t4_19 IS PORT (CL,CLK0: IN STD_LOGIC; OUT1: OUT STD_LOGIC); END ENTITY t4_19; ARCHITECTURE sxdl OF t4_19 IS -时序电路sxdl SIGNAL Q : STD_LOGIC; BEGIN PROCESS(CLK0) BEGIN IF CLK0EVENT AND CLK0=1

13、THEN -检测时钟上升沿 Q = NOT(Q OR CL); END IF; END PROCESS; OUT1 = NOT Q; END ARCHITECTURE sxdl;3-7 给出1位全减器的VHDL描述;最终实现8位全减器。要求:xinyinabdiff_outc1)首先设计1位半减器,然后用例化语句将它们连接起来,图4-20中h_suber是半减器,diff是输出差(diff=x-y),s_out是借位输出(s_out=1,xy),sub_in是借位输入。图3-19 1位全加器-解(1.1):实现1位半减器h_suber(diff=x-y;s_out=1,xy) LIBRARY

14、IEEE; -半减器描述(1):布尔方程描述方法 USE IEEE.STD_LOGIC_1164.ALL; ENTITY h_suber IS PORT( x,y: IN STD_LOGIC; diff,s_out: OUT STD_LOGIC); END ENTITY h_suber; ARCHITECTURE hs1 OF h_suber IS BEGIN Diff = x XOR (NOT y); s_out xin,y=yin, diff=a, s_out=b); u2: h_suber PORT MAP(x=a, y=sub_in, diff=diff_out,s_out=c); s

15、ub_out x0,yin=y0,diff_out=diff0,sub_in=sin,sub_out=a0);u1:f_suber PORT MAP(xin=x1,yin=y1,diff_out=diff1,sub_in=a0,sub_out=a1);u2:f_suber PORT MAP(xin=x2,yin=y2,diff_out=diff2,sub_in=a1,sub_out=a2);u3:f_suber PORT MAP(xin=x3,yin=y3,diff_out=diff3,sub_in=a2,sub_out=a3);u4:f_suber PORT MAP(xin=x4,yin=y

16、4,diff_out=diff4,sub_in=a3,sub_out=a4);u5:f_suber PORT MAP(xin=x5,yin=y5,diff_out=diff5,sub_in=a4,sub_out=a5);u6:f_suber PORT MAP(xin=x6,yin=y6,diff_out=diff6,sub_in=a5,sub_out=a6);u7:f_suber PORT MAP(xin=x7,yin=y7,diff_out=diff7,sub_in=a6,sub_out=sout); END ARCHITECTURE s8;3-8 给出一个4选1多路选择器的VHDL描述。选

17、通控制端有四个输入:S0、S1、S2、S3。当且仅当S0=0时:Y=A;S1=0时:Y=B;S2=0时:Y=C;S3=0时:Y=D。-解:4选1多路选择器VHDL程序设计。 LIBRARY IEEE; -图3-20(c)RTL图的VHDL程序顶层设计描述 USE IEEE.STD_LOGIC_1164.ALL; ENTITY mux41a IS PORT( A,B,C,D : IN STD_LOGIC; S0,S1,S2,S3 : IN STD_LOGIC; Y : OUT STD_LOGIC); END ENTITY mux41a; ARCHITECTURE one OF mux41a IS

18、 SIGNAL S0_3 : STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN S0_3=S0&S1&S2&S3; y=A WHEN S0_3=0111 ELSE B WHEN S0_3=1011 ELSE C WHEN S0_3=1101 ELSE D WHEN S0_3=1110 ELSE Z; END ARCHITECTURE one;3-9 分频方法有多种,最简单的是二分频和偶数分频甚至奇数分频,这用触发器或指定计数模的计数器即可办到。但对于现场实现指定分频比或小数分频率的分频电路的设计就不是很简单了。1Hz(允许误差0.1Hz),16位加载数值是多少?-解:3-

19、9 16位数控分频器(可进展奇偶数分频)LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY DVF16 IS PORT(CLK : IN STD_LOGIC; D : IN STD_LOGIC_VECTOR(15 DOWNTO 0); FOUT : OUT STD_LOGIC);END ENTITY DVF16;ARCHITECTURE one OF DVF16 ISSIGNAL FULL : STD_LOGIC;BEGIN P_REG: PROCESS(CLK) VARIABLE T8

20、 : STD_LOGIC_VECTOR(15 DOWNTO 0); BEGIN IF CLKEVENT AND CLK = 1 THEN IF T8 = 00000 THEN T8 := D-1;-当T8计数归0时,预置T8=D-1; -计数围(D=n):n-1n/2取整(n=10:98765计数,前后半周期一样) FULL = 1;-同时使溢出标志信号FULL输出为高电平 -(n=11:1098765计数,前比后半周期多一个时钟) ELSIF T8 = (0 & D(15 DOWNTO 1) THEN T8 :=(0 & D(15 DOWNTO 1)-1;-当T8=n/2取整时,预置T8=D

21、/2取整-1; -计数围(D=n):n/2取整0(n=10:43210计数) FULL = 1; -同时使溢出标志信号FULL输出为高电平 (n=11:43210计数) ELSE T8 := T8 - 1; -否如此继续作加1计数 FULL = 0; -且输出溢出标志信号FULL为低电平 END IF; END IF; END PROCESS P_REG ; P_DIV: PROCESS(FULL) VARIABLE T2 : STD_LOGIC; BEGIN IF FULLEVENT AND FULL = 1 THEN T2 := NOT T2;-如果溢出标志信号FULL为高电平,D触发器输

22、出取反 IF T2 = 1 THEN FOUT = 1; ELSE FOUT 0); -计数器异步复位 ELSIF CLKEVENT AND CLK=1 THEN -检测时钟上升沿 IF EN=1 THEN -检测是否允许计数或加载同步使能 IF LOAD=0 THEN Q:=DATA; -允许加载 ELSE IF Q0); -大于等于9时,计数值清零 END IF; END IF; END IF; END IF; IF Q=9 THEN COUT=1; -计数大于9,输出进位信号 ELSE COUT=0; END IF; DOUT 0);-计数器异步复位 ELSIF LOAD = 1 THE

23、N CQI:=DATA; -LS_LOAD:=0; -计数器异步复位 ELSIF CLKEVENT AND CLK=1 THEN -检测时钟上升沿 IF ADD_EN=1THEN -检测是否允许计数(同步他能) IF CQI 0); -大于65535,计数值清零 END IF; IF CQI=16#FFFF# THEN COUT=1; -计数大于9,输出进位信号 ELSE COUT 0 THEN CQI:=CQI-1; -允许计数,检测是否小于65535 ELSE CQI:=(OTHERS = 1); -大于65535,计数值清零 END IF; IF CQI=0 THEN COUT=1; -

24、计数大于9,输出进位信号 ELSE COUT = 0; END IF; END IF; END IF; CQ=CQI; -将计数值向端口输出 END PROCESS; END ARCHITECTURE A_S_16; 3-12 分别给出图3-20所示的六个RTL图的VHDL描述,注意其中的D触发器和锁存器的表述。图3-20 RTL图图3-20 RTL图a LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY t3_12_a IS PORT (CL,CLK0: IN STD_LOGIC; OUT1: OUT STD_LOGIC); END ENTIT

25、Y t3_12_a; ARCHITECTURE sxdl OF t3_12_a IS -时序电路sxdl SIGNAL Q : STD_LOGIC; BEGIN PROCESS(CLK0) BEGIN IF CLK0EVENT AND CLK0=1 THEN -检测时钟上升沿 Q = NOT(Q OR CL); END IF; END PROCESS; OUT1 = NOT Q; END ARCHITECTURE sxdl;图3-20 RTL图b LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY t3_12_b IS PORT (A,B,C,D

26、: IN STD_LOGIC; Y: OUT STD_LOGIC); END ENTITY t3_12_b; ARCHITECTURE sxdl OF t3_12_b IS -时序电路sxdl SIGNAL AB,CD,ABCD : STD_LOGIC; BEGIN PROCESS(A,B,C,D,AB,CD,ABCD) BEGIN AB=A AND B; CD=C OR D; ABCD Y Y NULL ; END CASE; END PROCESS; END ARCHITECTURE sxdl;图3-20 RTL图c-解1:实现图3-20(c) RTL图的VHDL程序mux21a.vhd底

27、层设计描述。- 用(WHEN_ELSE)实现2选1多路选择器程序(mux21a.vhd)。 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY mux21a IS PORT(a,b : IN STD_LOGIC; s : IN STD_LOGIC; y : OUT STD_LOGIC); END ENTITY mux21a; ARCHITECTURE one OF mux21a IS BEGIN y=a WHEN s=0 ELSE b; END ARCHITECTURE one;-解2:实现图3-20(c)RTL图的VHDL程序DFF6.vhd底

28、层设计描述。- 电平触发D型触发器程序(DFF6.vhd) LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY DFF6 IS PORT(CLK: IN STD_LOGIC; D: IN STD_LOGIC; Q:OUT STD_LOGIC); END; ARCHITECTURE bhv OF DFF6 IS BEGIN PROCESS(CLK,D) BEGIN IF CLK=1 THEN Q=D; END IF; END PROCESS; END bhv;-解3:实现图3-20(c)RTL图的VHDL程序t3_12_c.vhd顶层设计描述。 L

29、IBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY t3_12_c IS PORT(D1,D2,CLK : IN STD_LOGIC; Q : OUT STD_LOGIC); END ENTITY t3_12_c; ARCHITECTURE one OF t3_12_c IS PONENT mux21a -调用2选1多路选择器声明语句 PORT(a,b : IN STD_LOGIC; s : IN STD_LOGIC; y : OUT STD_LOGIC); END PONENT; PONENT DFF6 -调用电平型D触发器声明语句 PORT(C

30、LK: IN STD_LOGIC; D: IN STD_LOGIC; Q:OUT STD_LOGIC); END PONENT; SIGNAL DD: STD_LOGIC; -定义1个信号作为部的连接线。 BEGIN u1: mux21a PORT MAP(CLK,D2,D1,DD);u2: DFF6 PORT MAP(CLK,DD,Q);END ARCHITECTURE one;图3-20 RTL图d- 带预置、清零和输出使能的D触发器程序(DFF_PRE.vhd)。 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY DFF_PRE_CLR_

31、ENA IS PORT(CLK : IN STD_LOGIC; D : IN STD_LOGIC; Q :OUT STD_LOGIC; ENA : IN STD_LOGIC; PRE : IN STD_LOGIC; CLR : IN STD_LOGIC); END; ARCHITECTURE bhv OF DFF_PRE_CLR_ENA IS SIGNAL Q1:STD_LOGIC; -类似于在芯片部定义一个数据的暂存节点 BEGIN PROCESS(CLK,D,Q1,ENA,PRE,CLR) BEGIN IF CLR=1 THEN Q1=0; ELSIF PRE=1 THEN Q1=1; E

32、LSIF CLKEVENT AND CLK=1 AND ENA=1 THEN Q1=D; END IF; -IF EN=1 THEN Q=Q1; -将部的暂存数据向端口输出 -END IF; Q=Q1; -将部的暂存数据向端口输出 END PROCESS; END bhv; LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY t3_12_d IS PORT(SET,D,CLK,EN,RESET : IN STD_LOGIC; Q : OUT STD_LOGIC); END ENTITY t3_12_d; ARCHITECTURE one OF t

33、3_12_d IS PONENT DFF_PRE_CLR_ENA -调用D触发器声明语句 PORT(CLK : IN STD_LOGIC; D : IN STD_LOGIC; Q :OUT STD_LOGIC; ENA : IN STD_LOGIC; PRE : IN STD_LOGIC; CLR : IN STD_LOGIC); END PONENT; SIGNAL SS: STD_LOGIC; -定义1个信号作为部的连接线。 BEGIN SS=SET AND (NOT RESET); u1: DFF_PRE_CLR_ENA PORT MAP(CLK,D,Q,EN,SS,RESET); EN

34、D ARCHITECTURE one;图3-20 RTL图e- 带预置、清零和输出使能的D触发器程序(DFF_PRE_CLR.vhd) LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY DFF_PRE_CLR_ENA IS PORT(CLK : IN STD_LOGIC; D : IN STD_LOGIC; Q :OUT STD_LOGIC; ENA : IN STD_LOGIC; PRE : IN STD_LOGIC; CLR : IN STD_LOGIC); END; ARCHITECTURE bhv OF DFF_PRE_CLR_ENA

35、IS SIGNAL Q1:STD_LOGIC; -类似于在芯片部定义一个数据的暂存节点 BEGIN PROCESS(CLK,D,Q1,ENA,PRE,CLR) BEGIN IF CLR=1 THEN Q1=0; ELSIF PRE=1 THEN Q1=1; ELSIF CLKEVENT AND CLK=1 AND ENA=1 THEN Q1=D; END IF; -IF EN=1 THEN Q=Q1; -将部的暂存数据向端口输出 -END IF; Q=Q1; -将部的暂存数据向端口输出 END PROCESS; END bhv; LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY t3_12_e IS PORT(D,EN,CLK,RST : IN STD_LOGIC; Q1,Q : OUT STD_LOGIC); END ENTITY t3_12_e; ARCHITECTURE one OF t3_12_e IS PONENT DFF_PRE_CLR_ENA -调用D触发器声明语句 PORT(CLK : IN STD_LOGIC; D : IN STD_LOGIC; Q :OU

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!