综合资讯 技术文章 原文阅读 在线商城 下载专区 DATASHEET 技术论坛 商务频道

电子技术 | 技术资料 | 嵌入式系统 | 单片机专题 | DSP专题
EDA/PLD专题 | 电源技术专题 | 电子制作专题 | 其他综合 | 芯片选型

所在的位置:首页在线阅读EDA/PLD专题VHDL程序举例-基本语法正文
 
加法器:generate语句的应用

-- n-bit Adder using the Generate Statement
-- download from: www.fpga.com.cn & www.pld.com.cn

library IEEE;
use IEEE.Std_logic_1164.all;

ENTITY addn IS
   GENERIC(n : POSITIVE := 3);   --no. of bits less one
   PORT(addend, augend : IN BIT_VECTOR(0 TO n);
         carry_in : IN BIT; carry_out, overflow : OUT BIT;
         sum : OUT BIT_VECTOR(0 TO n));
END addn;

ARCHITECTURE generated OF addn IS
   SIGNAL carries : BIT_VECTOR(0 TO n);
BEGIN
addgen : FOR i IN addend'RANGE 
   GENERATE
      lsadder : IF i = 0 GENERATE
         sum(i) <= addend(i) XOR augend(i) XOR carry_in;
         carries(i) <= (addend(i) AND augend(i)) OR
                       (addend(i) AND carry_in) OR
                       (carry_in AND augend(i));
         END GENERATE;
      otheradder : IF i /= 0 GENERATE
         sum(i) <= addend(i) XOR augend(i) XOR carries(i-1);
         carries(i) <= (addend(i) AND augend(i)) OR
                        (addend(i) AND carries(i-1)) OR
                        (carries(i-1) AND augend(i));
         END GENERATE;
   END GENERATE;
   carry_out <= carries(n);
   overflow <= carries(n-1) XOR carries(n);
END generated;

返回 上一页 下一页   信息发布:工号01   转引自: 【 】 【打印】 【关闭

关于我们 ┋ 友情链接


深圳市福田区海滨广场福业大厦12C
电话:0755-88305880 25960580 传真:0755-88305880
Copyright©2005-2007 无忧电子开发网版权所有

粤ICP备05064233号