ImageVerifierCode 换一换
格式:DOCX , 页数:58 ,大小:477.96KB ,
资源ID:26818614      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/26818614.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(《EDA技术实用教程第四版》习题答案.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

《EDA技术实用教程第四版》习题答案.docx

1、EDA技术实用教程第四版习题答案EDA技术实用教程(第四版)习题答案图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; ARCHITECTURE if_mux41 OF mux41 IS SIGNAL s0s1 : STD_LOGIC_VECTOR(1

2、 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语句实现4选1多路选择器 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY

3、 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 CASE; END PROCESS; END ARCHITECTURE case_mux41; 3-3 图3-17所示的是双2选

4、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程序的计数器改为十二进制计数器,程序用例3-21的方式表述,并且将复位RST改为同步清零控制,加载信号LOAD改为异步控制方式。讨论例3-20与例3

5、-21的异同点。-解:十二进制计数器VHDL程序设计。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT12 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);-计数值输出 COUT : OUT STD_LOGIC); -计数进位输出END CNT12;ARCHITECTURE

6、behav OF CNT12 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 THEN Q=DATA; -允许加载 ELSE IF Q12 THEN Q=Q+1; -允许计数,检测是否小

7、于9 ELSE Q0); -大于等于9时,计数值清零 END IF; END IF; END IF; END IF; END IF; END PROCESS; COM: 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 CQI 0); -大于65535,计数值清零 END IF; IF CQI=16#FFFF# THEN

8、 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 图3-18是一个含有上升沿触发的D触发器的时序电路(sxdl),试写出此电路的VHDL设计文件

9、。图3-18 时序电路-解:实现图4-19电路的VHDL程序t4_19.vhd 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 THEN -检测时钟上升沿 Q = NO

10、T(Q OR CL); END IF; END PROCESS; OUT1 = NOT Q; END ARCHITECTURE sxdl; 3-7 给出1位全减器的VHDL描述;最终实现8位全减器。要求:1)首先设计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 IEEE; -半减器描述(1):布尔方程描述方法 USE IEEE.ST

11、D_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); sub_out x0,yin=y0,diff_out=diff0,sub_

12、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=y4,diff_out=diff4,sub_in=a3,sub_out=a

13、4);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描述。选通控制端有四个输入:S0、S1、S2、S3。当且仅当S0=0时:Y=A

14、;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 SIGNAL S0_3 : STD_LOGIC_VECTOR(3 D

15、OWNTO 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 分频方法有多种,最简单的是二分频和偶数分频甚至奇数分频,这用触发器或指定计数模的计数器即可办到。但对于现场实现指定分频比或小数分频率的分频电路的设计就不是很简单了。 试对例3-20的设计稍作修改,将其进位输出COUT与异步加载控制LOAD连在一起,构成一个自动加载型16位二进制数计数器,也即一

16、个16位可控的分频器,给出其VHDL表述,并说明工作原理。设输入频率fi=4MHz,输出频率fo=516.51Hz(允许误差0.1Hz),16位加载数值是多少?-解:3-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;ARCH

17、ITECTURE one OF DVF16 ISSIGNAL FULL : STD_LOGIC;BEGIN P_REG: PROCESS(CLK) VARIABLE CNT8 : STD_LOGIC_VECTOR(15 DOWNTO 0); BEGIN IF CLKEVENT AND CLK = 1 THEN IF CNT8 = 0000000000000000 THEN CNT8 := D-1;-当CNT8计数归0时,预置CNT8=D-1; -计数范围(D=n):n-1n/2取整(n=10:98765计数,前后半周期相同) FULL = 1;-同时使溢出标志信号FULL输出为高电平 -(n=

18、11:1098765计数,前比后半周期多一个时钟) ELSIF CNT8 = (0 & D(15 DOWNTO 1) THEN CNT8 :=(0 & D(15 DOWNTO 1)-1;-当CNT8=n/2取整时,预置CNT8=D/2取整-1; -计数范围(D=n):n/2取整0(n=10:43210计数) FULL = 1; -同时使溢出标志信号FULL输出为高电平 (n=11:43210计数) ELSE CNT8 := CNT8 - 1; -否则继续作加1计数 FULL = 0; -且输出溢出标志信号FULL为低电平 END IF; END IF; END PROCESS P_REG ;

19、P_DIV: PROCESS(FULL) VARIABLE CNT2 : STD_LOGIC; BEGIN IF FULLEVENT AND FULL = 1 THEN CNT2 := NOT CNT2;-如果溢出标志信号FULL为高电平,D触发器输出取反 IF CNT2 = 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时

20、,计数值清零 END IF; END IF; END IF; END IF; IF Q=9 THEN COUT=1; -计数大于9,输出进位信号 ELSE COUT=0; END IF; DOUT=Q; -将计数值向端口输出 END PROCESS;END behav; 3-11 给出含有异步清零和计数使能的16位二进制加减可控计数器的VHDL描述。-解:3-11 给出含有异步清零和计数使能的16位二进制加减可控计数器的VHDL描述。- 用VHDL实现含有异步清零和计数使能的16位二进制加减可控计数器。 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY ADD_SUB_LOAD_16 IS PORT (CLK,RST,ADD_EN,S

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1