组合逻辑电路的设计new.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
组合逻辑电路的设计new.ppt

组合逻辑电路的 设计 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY BCD_decoder IS PORT(bcd: IN STD_LOGIC_VECTOR(3 DOWNTO 0); en: IN STD_LOGIC; y: OUT STD_LOGIC_VECTOR(9 DOWNTO 0)); END BCD_decoder; ARCHITECTURE behavior OF BCD_decoder IS BEGIN PROCESS(bcd,en) BEGIN y=1111111111; --译码输出低有效 IF (en=1) THEN CASE bcd IS WHEN 0000=y(0)=0; --译码输出低有效 WHEN 0001=y(1)=0; WHEN 0010=y(2)=0; WHEN 0011=y(3)=0; WHEN 0100=y(4)=0; WHEN 0101=y(5)=0; WHEN 0110=y(6)=0; WHEN 0111=y(7)=0; WHEN 1000=y(8)=0; WHEN 1001=y(9)=0; WHEN OTHERS= y=1111111111; END CASE; END IF; END PROCESS; END behavior; (3)双向总线缓冲器 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY dou_buf8 IS PORT (a,b: INOUT STD_LOGIC_VECTOR(7 DOWNTO 0); en,dir :IN STD_LOGIC); END dou_buf8; ARCHITECTURE art OF dou_buf8 IS BEGIN PROCESS(a,en,dir) BEGIN IF en=1 AND dir=1 THEN b=a; ELSE b=ZZZZZZZZ; END IF; END PROCESS; PROCESS(b,en,dir) BEGIN IF en=1 AND dir=0 THEN a=b; ELSE a=ZZZZZZZZ; END IF; END PROCESS; END art; LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY adder4 IS PORT(a,b: IN STD_LOGIC_VECTOR(3 DOWNTO 0); cin: IN STD_LOGIC; sum: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); cout: OUT STD_LOGIC); END adder4; ARCHITECTURE behavior OF adder4 IS BEGIN PROCESS(a,b,cin) VARIABLE at,bt,ct,ot: STD_LOGIC_VECTOR(4 DOWNTO 0); BEGIN at:=0 a; bt:=0 b; ct:=0000 cin; ot:=at+bt+ct; (2)带进位的10进制(BCD)加法器 IF at10 AND bt10 THEN IF ot(4)=1 THEN ot(3 DOWNTO 0):=ot(3 DOWNTO 0)+6; ELSIF ot(3 DOWNTO 0)9 THEN ot(4):=1; ot(3 DOWNTO 0):=ot(3 DOWNTO 0)-10; END IF; ELSE REPORT ERROR; END IF; sum=ot(3 DOWNTO 0); cout=ot(4); END PROCESS; END behavior; 5.多路选择器 方法一:IF 语句 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY mux4 IS PORT (input: IN STD_LOGIC_VECTOR(3 DOWNTO 0); sel:IN STD_LOGIC_VECTOR(1 DOWNTO 0); y: OUT STD_

文档评论(0)

dreamzhangning + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档