【EDA技术】 实验一 利用半减器设计一位全减器

一、实验目的

(1)熟悉EDA软件,并能熟练使用。

(2)分析设计任务,根据任务要求完成设计内容。

(3)利用软件对设计内容进行仿真调试,得到正确运行结果。

二、实验要求

(1)首先设计半减器,然后用例化语句将它们连接起来,图1中h_suber是半减器,diff是输出差,s_out是借位输出,sub_in是借位输入。

(2)根据图1设计全减器。以全减器为基本硬件,构成串行借位的8位减法器,要求用例化语句来完成此项设计(减法运算是 x – y - sun_in = diffr)。

三、实验步骤

(1) 建立工作库文件夹和编辑设计文件

        File->New Project Wizard

(2) 创建工程

        File->New->Verilog HDL File

(3) 全程编译

(4) 时序仿真

输入有1,输出就是1;只有当输出全为0时,输出才为零。证明是2输入或门。

b是减数,a是被减数,d、s分别是本位输出和借位输出。

只有当a和b相同时,d才是低电平;即是 被减数 和减数 相同时 差是0。

只有当b比a大的时候,s才是高电平;即是 减数比被减数大的时候,本位向高位借1。

从上至下依次是减数(x)、低位借位(sub_in)、被减数(y)、高位借位(sub_out)、差(differ).

以下假设均建立在被减数≥减数情况,小于情况分析类似亦成立。

当x和 y 相同 ① sub_in 是0时,differ是低电平0;②sub_in 不是0时,differ是高电平1;

当x和 y 不同 ① sub_in 是0时,differ是高电平1;② sub_in 不是0时,differ是低电平0;

当x和 y 相同

1.sub_in是0时① sub_out 是0时,differ是低电平0;② sub_out 不是0时,differ是高电平1;

2.sub_in是1时 ,sub_out 不是0时(是0不存在),differ是高电平1;

当x和 y 不同

1.sub_in是0时① sub_out 是0时,differ是高电平1;② sub_out 不是0时,differ是低电平0;

2.sub_in是1时, sub_out 是0(1情况不考虑)时,differ是低电平0;

符合全减器规律

下面给出方便理解的图示和真值表

四、VHDL程序文本

LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY H_SUBER IS   --定义实体半减器
PORT(A,B:IN STD_LOGIC;  --减数与被减数
D,S:OUT STD_LOGIC    --分别为本位输出和错位输出
);
END;
ARCHITECTURE HALF_SUBER OF H_SUBER IS
BEGIN
D<=A XOR B;
S<=(NOT A)AND B;
END ARCHITECTURE HALF_SUBER;
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY OR2A IS   --定义2输入或门
PORT(
A,B:IN STD_LOGIC;
C:OUT STD_LOGIC
);
END ENTITY OR2A;
ARCHITECTURE ONE OF OR2A IS
BEGIN
C<=A OR B;
END ARCHITECTURE ONE;
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY F_SUBER IS   --定义实体全减器
PORT(X,Y,SUB_IN:IN STD_LOGIC; --X、Y 减数被减数;  SUB_IN 借位输入
DIFFR,SUB_OUT:OUT STD_LOGIC  --DIFFR  差  SUB_OUT 借位输出
);
END;
ARCHITECTURE FULL_SUBER OF F_SUBER IS
COMPONENT H_SUBER   --半减器例化声明
PORT(A,B:IN STD_LOGIC;
D,S:OUT STD_LOGIC
);
END COMPONENT;
COMPONENT OR2A   --输入或门例化声明
PORT(A,B:IN STD_LOGIC;
C:OUT STD_LOGIC
);
END COMPONENT;
SIGNAL NET1,NET2,NET3 :STD_LOGIC;   --定义敏感信号
BEGIN
U1:H_SUBER PORT MAP(A=>X,B=>Y,D=>NET1,S=>NET2);  --引用半减器
U2:H_SUBER PORT MAP(A=>NET1,B=>SUB_IN,D=>DIFFR,S=>NET3);  --引用半减器
U3:OR2A PORT MAP(A=>NET3,B=>NET2,C=>SUB_OUT);  --引用或门
END ARCHITECTURE FULL_SUBER;

五、遇到的问题及解决办法

  1. Q10版本之后的Quartus在New中不直接提供软件波形仿真,一般需要调用ModelSim软件进行操作:

        解决办法:按照图示依次点击Tools->Options->General->EDA Tool Options->ModelSim 把路径设置为ModelSim软件所在处。

  1. VHDL文本正确,工程路径都没问题,波形输出失败,提示ModelSIM调用失败:

        解决办法:检查问题1是否已经解决,解决后关闭软件,以管理员身份启动软件,再次仿真。

  • 10
    点赞
  • 110
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值