首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用ISE合成全加器

用ISE合成全加器
EN

Stack Overflow用户
提问于 2017-03-24 16:06:06
回答 1查看 538关注 0票数 0

我写了一个简单的全加器,它使用了2个加法器和一个OR门。VHDL代码非常简单

代码语言:javascript
复制
library ieee;
use ieee.std_logic_1164.all;

entity ha is
  port( x: in std_logic;
      y: in std_logic;
      s: out std_logic;
      c: out std_logic);
end;
architecture x of ha is
begin
  s <= x xor y;
  c <= x and y;
end;

代码语言:javascript
复制
library ieee;
use ieee.std_logic_1164.all;

entity fa is
  port( a: in std_logic;  b: in std_logic;  cin: in std_logic;
      sum: out std_logic;  cout: out std_logic);
end;
architecture y of fa is
  component ha port( x: in std_logic; y: in std_logic;
                   s: out std_logic; c: out std_logic);
  end component;
  signal im1, im2, im3: std_logic;
begin
  ha1: ha port map( x=>a, y=>b, s=>im1, c=>im2 );
  ha2: ha port map( x=>im1, y=>cin, s=>sum, c=>im3 );
  cout <= im3 or im2;
end; 

然而,合成器的输出显示有两个异或门。半加法器的OR门和其他的在哪里?

代码语言:javascript
复制
=========================================================================
*                       Advanced HDL Synthesis                          *
=========================================================================
Advanced HDL Synthesis Report

Macro Statistics
# Xors                                                 : 2
1-bit xor2                                            : 2

=========================================================================

另外,FA的RTL原理图是正确的,然而,半加法器的RTL原理图是奇怪的!y端口不存在,并且存在数据1:0。那是什么意思?

FA:

哈:

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-24 18:08:55

我见过Vivado合成器定期从宏观统计数据中删除一些东西。宏报告对FPGA设计没有真正意义,因为所有的逻辑都将映射到LUTs中。在这种情况下,您的基本和/或门似乎不被认为是宏,但是XOR是(它是示意图中的框而不是逻辑符号)。

至于你的半加法器原理图,这些工具已经将你的两个单位输入端口组合成一个两位总线。在and门前的三角形是在那辆公共汽车上敲击,把两个比特中的一个拉出来。这只是表达相同事物的另一种方式。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43004202

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档