您的位置:技术中心首页 > 基本逻辑 >> Ripple结构加法器

Ripple结构加法器

作者:未知   时间:2005-12-18 12:37:33  来自:网上转载  浏览次数:226  文字大小:【】【】【

代码如下:
module adder(a,b,cin,sum,cout);
  input a,b;     
  input cin;
  output cout;
  output sum;
  wire cout,sum;
  assign sum=a^b^cin;
  assign cout=(a&cin)|(b&cin)|(a&b);
endmodule

module adder_8(fa,fb,fcin,fsum,fcout);
 input [7:0]fa,fb;
 output [7:0]fsum;
 input fcin;
 output fcout;
 wire [0:6]ftemp;
 adder fa1(.a(fa[0]),.b(fb[0]),.cin(fcin),.sum(fsum[0]),.cout(ftemp[0])),
       fa2(.a(fa[1]),.b(fb[1]),.cin(ftemp[0]),.sum(fsum[1]),.cout(ftemp[1])),
       fa3(.a(fa[2]),.b(fb[2]),.cin(ftemp[1]),.sum(fsum[2]),.cout(ftemp[2])),
       fa4(.a(fa[3]),.b(fb[3]),.cin(ftemp[2]),.sum(fsum[3]),.cout(ftemp[3])),
       fa5(.a(fa[4]),.b(fb[4]),.cin(ftemp[3]),.sum(fsum[4]),.cout(ftemp[4])),
       fa6(.a(fa[5]),.b(fb[5]),.cin(ftemp[4]),.sum(fsum[5]),.cout(ftemp[5])),
       fa7(.a(fa[6]),.b(fb[6]),.cin(ftemp[5]),.sum(fsum[6]),.cout(ftemp[6])),
       fa8(.a(fa[7]),.b(fb[7]),.cin(ftemp[6]),.sum(fsum[7]),.cout(fcout));
endmodule

module adder_test;
 reg [7:0] da,db;
 wire [7:0] dsum;
 wire dcout;
 reg dcin;
 adder_8 f1(da,db,dcin,dsum,dcout);
 initial
 begin
   da=0;db=0;dcin=0;
   #10 $display("a=%b,b=%b,cin=%b,sum=%d,cout=%d",da,db,dcin,dsum,dcout);
   db=8'b1111;
   for(da=8'b0;da<=8'b11111111;da=da+1)
     begin #10 dcin=~dcin;
       $display("a=%b,b=%b,cin=%b,sum=%d,cout=%d",da,db,dcin,dsum,dcout);
     end
 end
endmodule

责任编辑:5life

更多相关 加法器 行波进位 的文章

本文共有0条评论,现在显示最新的5条。

栏目导航

电路基础
硬件语言
逻辑验证
电路综合
后端设计
可测设计
基本逻辑
制造工艺
书籍精选
说文解字
工具学习
数字滤波
趣闻逸事
数字锁相
设计杂项
低耗设计

站点最新

更多相关链接

  CMOS中的全加器
  布思基四乘法器实现
  高速乘法器的性能比较
  Verilog HDL 程序举例 -...
  16*16bit并行乘法器设计
  ASIC设计过程中集成锁相...
  超大规模集成电路设计中...
  一个可以综合的Verilog ...
  Ripple结构加法器

栏目最新

更多相关链接

  CMOS中的全加器
  布思基四乘法器实现
  高速乘法器的性能比较
  Verilog HDL 程序举例 -...
  16*16bit并行乘法器设计
  ASIC设计过程中集成锁相...
  超大规模集成电路设计中...
  一个可以综合的Verilog ...
  Ripple结构加法器

热点文章

更多相关链接