第一范文网 - 专业文章范例文档资料分享平台

EDA课后答案(适用于朱正伟《EDA技术及应用》)

来源:用户分享 时间:2025/11/3 12:33:20 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

时表决不通过。 LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY VOTE7 IS

PORT (MEN:IN STD_LOGIC_VECTOR(6 DOWNTO 0); OUTPUT: OUT BIT); END VOTE7;

ARCHITECTURE BEHAVE OF VOTE7 IS BEGIN

PROCESS(MEN)

VARIABLE TEMP: INTEGER RANGE 0 TO 7; BEGIN TEMP:=0;

FOR I IN 0 TO 6 LOOP IF(MEN(I)='1')THEN TEMP:=TEMP+1; ELSE

TEMP:=TEMP; END IF; END LOOP; CASE TEMP IS

WHEN 0 TO 3 =>OUTPUT<='0'; WHEN 4 TO 7 =>OUTPUT<='1'; END CASE ; END PROCESS; END BEHAVE;

4-7给出1位全减器的VHDL描述,要求:首先设计1位半减器,然后用例化语句将它们连接起来。设X为被减数,Y为减数,DIFF是输出差(DIFF=X-Y),SUB_OUT是借位输出(SUB_OUT=1,X

(1.1):实现1位半减器H_SUBER(DIFF=X-Y;S_OUT=1,X

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 <= (NOT X) AND Y;

17

END ARCHITECTURE HS1;

--解(1.2):采用例化实现图4-20的1位全减器

LIBRARY IEEE; --1位二进制全减器顺层设计描述 USE IEEE.STD_LOGIC_1164.ALL; ENTITY F_SUBER IS

PORT(XIN,YIN,SUB_IN: IN STD_LOGIC; SUB_OUT,DIFF_OUT: OUT STD_LOGIC); END ENTITY F_SUBER;

ARCHITECTURE FS1 OF F_SUBER IS

COMPONENT H_SUBER --调用半减器声明语句 PORT(X, Y: IN STD_LOGIC; DIFF,S_OUT: OUT STD_LOGIC); END COMPONENT;

SIGNAL A,B,C: STD_LOGIC; --定义1个信号作为内部的连接线。 BEGIN

U1:H_SUBER PORT MAP(X=>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 <= C OR B; END ARCHITECTURE FS1;

二进制全加器,元件声明与元件例化(COMPONENT,PORT MAP) //或门

LIBRARY IEEE; ;

USE IEEE.STD_LOGIC_1164.ALL;

ENTITY OR2A IS

PORT(A,B : IN STD_LOGIC; C : OUT STD_LOGIC); END OR2A;

ARCHITECTURE ART1 OF OR2A IS BEGIN

C<=A OR B; END ART1;

//半加器;

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

ENTITY H_ADDER IS

PORT(A,B : IN STD_LOGIC; CO,SO: OUT STD_LOGIC); END H_ADDER;

ARCHITECTURE ART2 OF H_ADDER IS BEGIN

18

SO <= A XOR B; CO <= A AND B; END ART2;

1位二进制全加器顶层设计: LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164。ALL;

ENTITY F_ADDER IS

PORT(AIN,BIN,CIN : IN STD_LOGIC; COUT,SUM : OUT STD_LOGIC); END F_ADDER;

ARCHITECTURE ART3 OF F_ADDER IS

COMPONENT H_ADDER //元件声明; PORT(A,B : IN STD_LOGIC; CO,SO: OUT STD_LOGIC); END COMPONENT; COMPONENT OR2A

PORT(A,B : IN STD_LOGIC; C : OUT STD_LOGIC); END COMPONENT;

SIGNAL D,E,F : STD_LOGIC; BEGIN

U1:H_ADDER PORT MAP(AIN,BIN,D,E); //元件例化; U2:H_ADDER PORT MAP(A=>E,B=>CIN,CO=>F,SO=>SUM); U3:OR2A PORT MAP(D,F,COUT); END ART3;

10进制异步复位计数器

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL; ENTITY CNT_10_2 IS PORT(

CLK,CLR : IN STD_LOGIC; COUNT : OUT STD_LOGIC ); END;

ARCHITECTURE A OF CNT_10_2 IS

SIGNAL CNT_10 : INTEGER RANGE 0 TO 10; BEGIN

PROCESS(CLK,CLR) BEGIN

IF CLR='1' THEN CNT_10<=0;

ELSIF CLK'EVENT AND CLK='1' THEN CNT_10<=CNT_10+1; IF CNT_10=9 THEN CNT_10<=0;

19

COUNT<='1'; ELSE

COUNT<='0'; END IF; END IF; END PROCESS; END A;

10进制异步复位可调占空比

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL; ENTITY CNT_10_1 IS PORT(

CLK,CLR : IN STD_LOGIC; COUNT : OUT STD_LOGIC ); END;

ARCHITECTURE A OF CNT_10_1 IS BEGIN

PROCESS(CLK,CLR)

VARIABLE CNT_10 : INTEGER RANGE 0 TO 10; BEGIN

IF CLR='1' THEN CNT_10:=0;

ELSIF CLK'EVENT AND CLK='1' THEN CNT_10:=CNT_10+1; IF CNT_10=10 THEN CNT_10:=0; COUNT<='1'; ELSE

COUNT<='0'; END IF; END IF; END PROCESS; END A;

10进制同步复位计数器(用信号)

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL; ENTITY CNT_10_2 IS PORT(

A : IN INTEGER RANGE 0 TO 10; CLK,CLR,PST : IN STD_LOGIC; COUNT : OUT STD_LOGIC ); END;

ARCHITECTURE A OF CNT_10_2 IS

SIGNAL CNT_10: INTEGER RANGE 0 TO 9; BEGIN

20

EDA课后答案(适用于朱正伟《EDA技术及应用》).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c92942060z703gjy5z8ag_5.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top