欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    EDA技术实用教程课后答案潘松黄继业.docx

    • 资源ID:3086976       资源大小:250.27KB        全文页数:29页
    • 资源格式: DOCX        下载积分:1金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要1金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    EDA技术实用教程课后答案潘松黄继业.docx

    1、EDA技术实用教程课后答案潘松黄继业S0、S1、S2、S3。当且3-3 给出一个4选1多路选择器的 VHDL描述。选通控制端有四个输入:仅当 S0=0 时:丫=A ; S仁0 时:丫=B ; S2=0 时:丫=C ; S3=0 时:Y=D。-解:4选1多路选择器 VHDL程序设计。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY mux41a ISPORT( A,B,C,D : IN STD_LOGIC;S0,S1,S2,S3 : IN STD_LOGIC;Y : OUT STD_LOGIC);END ENTITY mux41a;ARCHITECT

    2、URE one OF mux41a ISSIGNAL S0_3 : STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINS0_3=S0&S1&S2&S3;y=A WHEN S0_3=0111 ELSEB WHEN S0_3=1011 ELSEC WHEN S0_3=1101 ELSED WHEN S0_3=1110 ELSE Z;3-4给出1)首先设计xinEND ARCHITECTURE one;1位全减器的VHDL描述;最终实现8位全减器。要求:1位半减器,然后用例化语句将它们连接起来 ,图4-20中h suber是半减器,diff是输出差a -(diff=x-y),s_o

    3、ut 是借位输出(s_out=1,xy),sub_in 是借位输入f_ out c yinysuO图3-19 1位全加器-解(1.1):实现 1 位半减器 h_suber(diff=x-y ; s_out=1,xy) LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY h_suber ISPORT( x,y: IN STD_LOGIC;diff,s_out: OUT STD_LOGIC);END ENTITY h_suber;ARCHITECTURE hs1 OF h_suber ISBEGINDiff = x XOR (NOT y);s_out x

    4、i n,y=yi n, diff=a, s_out=b);u2: h_suber PORT MAP(x=a, y=sub_i n, diff=diff_out,s_out=c);sub_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

    5、 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=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(xi

    6、n=x7,yin=y7,diff_out=diff7,sub_in=a6,sub_out=sout);END ARCHITECTURE s8;3-8 设计一个求补码的程序,输入数据是一个有符号的 8 位二进制 (原码)数。-解: 5-9 设计一个求补码的程序,输入数据是一个有符号的 8 位二进制数。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY org_patch ISPORT( org_data : IN STD_LOGIC_VECTOR(7 DOWNTO 0);- 原码输入 pa

    7、tch_data : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);- 补码输出 END org_patch;ARCHITECTURE BHV OF org_patch ISBEGIN PROCESS(org_data)BEGINIF(org_data(7)=0) THEN patch_data=0 ,补码 = 原码。else patch_data=org_data(7)&(not org_data(6 DOWNTO 0)+1;-org_data0 ,补码 =|原码 |取反 +1 。END IF;END PROCESS;END BHV;310library ieee;use

    8、 ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity add isport(a:in std_logic_vector(7 downto 0); b:in std_logic_vector(7 downto 0); ci:in std_logic;co:out std_logic;count:out std_logic_vector(7 downto 0); end add;architecture bhv of add is beginprocess(a,b,ci)variable data:std_logic_vec

    9、tor(1 downto 0); variable c:std_logic;beginc:=ci;for n in 0 to 7 loop data:=(0&a(n)+(0&b(n)+(0&c); count(n)=data(0);c:=data(1);end loop;co=c;end process; end bhv;3-14 用循环语句设计一个 7 人投票表决器,及一个 4 位 4 输入最大数值检测电路。 -解: 5-7 用循环语句设计一个 7 人投票表决器,及一个 4 位 4 输出最大数值检测电路。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE

    10、 IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY vote_7 IS0:不同意 )PORT( DIN: IN STD_LOGIC_VECTOR(6 DOWNTO 0);-7 位表决输入 (1:同意, G_4: OUT STD_LOGIC; - 超过半数指示CNTH: OUT STD_LOGIC_VECTOR(2 DOWNTO 0);- 表决结果统计数END vote_7;ARCHITECTURE BHV OF vote_7 ISBEGINPROCESS(DIN)VARIABLE Q: STD_LOGIC_VECTOR(2 DOWNTO 0); BEGINQ:=000;FO

    11、R n IN 0 TO 6 LOOP - n 是 LOOP 的循环变量 IF(DIN(n)=1) THEN Q:=Q+1; END IF;END LOOP;CNTH=4 THEN G_4=1; ELSE G_40);ELSIF CLKEVENT AND CLK=1 THENIF EN=1 THEN-检测是否允许计数或加载同步使能)IF LOAD=0 THEN Q:=DA TA; -允许加载ELSEIF Q0); - 大于等于 9 时,计数值清零 END IF;END IF;END IF;END IF;IF Q=9 THEN COUT=1; - 计数大于 9,输出进位信号ELSE COUT=0;

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

    13、COUT=1;ELSE COUT 0 THEN CQI:=CQI-1;ELSE CQI:=(OTHERS = 1);END IF;IF CQI=0 THEN COUT=1;ELSE COUT = 0;END IF;END IF;END IF;CQ=CQI;END PROCESS;END ARCHITECTURE A_S_16;-计数大于 9,输出进位信号-将计数值向端口输出5-9 library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity m6 isport(clk,rst:in std_log

    14、ic;q: out std_logic_vector(2 downto 0); end m6;architecture bhv of m6 istype states is(st0,st1,st2,st3,st4,st5); signal stx:states;begin process(clk)beginif rst=1 then stx=st0;qq=000;stxq=001;stxq=011;stxq=111;stxq=101;stxq=100;stx stx=st0; end case;end if;end process;end bhv;5 位输入,输出一个结果。当 5 位5 位输入

    15、,输出一个结果。1。5-12 用同步时序电路对串行二进制输入进行奇偶校验,每检测输入中 1 的数目为奇数时,在最后一位的时刻输出 1。- 解: 4-12 用同步时序电路对串行二进制输入进行奇偶校验,每检测- 当 5 位输入中 1 的数目为奇数时,在最后一位的时刻输出LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY odd_even_p_RXD_5 ISPORT(CLK,RST,S_in: IN STD_LOGIC;-CLK 、 RST、S_in: 时钟、复位、串行输入数据P_out:

    16、OUT STD_LOGIC_VECTOR(4 DOWNTO 0);-P_out: 并行输出数据o_e_out: OUT STD_LOGIC); -o_e_out: 奇校验输出位END ENTITY odd_even_p_RXD_5;ARCHITECTURE one OF odd_even_p_RXD_5 IS BEGINPROCESS(CLK,RST)VARIABLE shift_Q : STD_LOGIC_VECTOR(4 DOWNTO 0);-shift_Q: 移位寄存器VARIABLE shift_cnt : STD_LOGIC_VECTOR(2 DOWNTO 0);-shift_cnt

    17、: 移位计数器BEGINIF CLKEVENT AND CLK=1 THEN - 检测时钟上升沿IF RST = 1 THEN shift_cnt:=100; -ELSEELSE采样移位串行输入shift_cnt:=shift_cnt+1;- 移位计数shift_Q:=S_in & shift_Q(4 DOWNTO 1);-END IF;END IF;END IF;END PROCESS;END ARCHITECTURE one;5-5 分频方法有多种, 最简单的是二分频和偶数分频甚至奇数分频,这用触发器或指定计数模的计 数器即可办到。但对于现场实现指定分频比或小数分频率的分频电路的设计就不是

    18、很简单了。试对例 3-20 的设计稍作修改, 将其进位输出 COUT 与异步加载控制 LOAD 连在一起, 构成一个自 动加载型 16 位二进制数计数器,也即一个 16 位可控的分频器,给出其 VHDL 表述,并说明工作原理。设输入频率fi=4MHz,输出频率fo=516.5 1Hz(允许误差土 0.1Hz) ,16位加载数值是多少?-解: 3-9 16位数控分频器 (可进行奇偶数分频 )LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY DVF16 ISPORT(CLK : IN ST

    19、D_LOGIC;D : IN STD_LOGIC_VECTOR(15 DOWNTO 0);FOUT : OUT STD_LOGIC);END ENTITY DVF16;ARCHITECTURE one OF DVF16 ISSIGNAL FULL : STD_LOGIC;BEGINP_REG: PROCESS(CLK)VARIABLE CNT8 : STD_LOGIC_VECTOR(15 DOWNTO 0);BEGINIF CLKEVENT AND CLK = 1 THENIF CNT8 = 0000000000000000 THENCNT8 := D-1;- 当 CNT8 计数归 0 时,预

    20、置 CNT8=D-1;-计数范围(D=n): n-1n/2取整(n=10:98765计数,前后半周期相同)FULL = 1;- 同时使溢出标志信号 FULL 输出为高电平-(n=11:1098765 计数,前比后半周期多一个时钟 )ELSIF CNT8 = (0 & D(15 DOWNTO 1) THENCNT8 :=(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 计数

    21、)ELSE CNT8 := CNT8 - 1; -否则继续作加 1 计数FULL = 0; -且输出溢出标志信号 FULL 为低电平END IF;END IF;END PROCESS P_REG ;P_DIV: PROCESS(FULL)VARIABLE CNT2 : STD_LOGIC;BEGINIF FULLEVENT AND FULL = 1 THENCNT2 := NOT CNT2;-如果溢出标志信号 FULL为高电平,D触发器输出取反IF CNT2 = 1 THEN FOUT = 1;ELSE FOUT = 0;END IF;END IF;END PROCESS P_DIV;END ARCHITECTURE one;5-6(a) (b)图 3-20 RTL 图(a)-解:实现图 3-20(a)RTL 图的 VHDL 程序 t3_12_a.vhdLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY t3_12_a ISPORT (CL,CLK0: IN STD_LOGIC;OUT1: OUT STD_LOGIC);END ENTITY t3_12_a;ARCHITECTURE sxdl OF t3_12_a IS -时


    注意事项

    本文(EDA技术实用教程课后答案潘松黄继业.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开