#FPGA(全加器设计)

1.IDE:Quartus II


2.设备:Cyclone II  EP2C8Q208C8N  


3.实验:全加器设计


4.时序图:

in1

in2

cinsumcount
00000
00110
01010
01101
10010
10101
11001
11111

5.步骤


6.代码:

全加器代码

/*
 *全加器
 *   in1         in2          cin      sum         count
 *   0           0            0         0          0      
 *   0           0            1         1          0
 *   0           1            0         1          0
 *   0           1            1         0          1
 *   1           0            0         1          0
 *   1           0            1         0          1
 *   1           1            0         0          1
 *   1           1            1         1          1
 *
 */
module full_adder(
input    wire     in1,
input    wire     in2,
input    wire     cin,

output   wire     count,
output   wire     sum
);


wire     sum0;
wire     count0;
wire     count1;
  
/*
 *实例化两个半加器
 */
half_adder half_adder_inst0(
 .in1     (in1)      ,
 .in2     (in2)      ,

 .sum     (sum0)     ,
 .count   (count0)
);


half_adder half_adder_inst1(
 .in1     (sum0)     ,
 .in2     (cin)      ,

 .sum     (sum)      ,
 .count   (count1)
);

/*
 *全加器进位
 */
assign  count = (count0 | count1);

endmodule

 全加器仿真代码

/*
 *全加器仿真代码
 */
`timescale 1ns/1ns

module tb_full_adder();

reg                in1;
reg                in2;
reg                cin;

wire               sum;
wire             count;

/*
 *初始化
 */
initial
    begin
	     in1  <=  1'b0;
		  in2  <=  1'b0;
		  cin  <=  1'b0;
	 end

/*
 *监视窗
 */
initial
    begin
	     $timeformat(-9,0,"ns",6);    //ns 无小数位  6位位宽
	     $monitor("@time %t:in1=%b,in2=%b,cin=%b,sum=%b,count=%b",$time,in1,in2,cin,sum,count);
	 end

/*
 *随机赋值
 */
always #10 in1 <= {$random} % 2 ; 
always #10 in2 <= {$random} % 2 ; 
always #10 cin <= {$random} % 2 ; 

/*
 *实例化
 */
 full_adder full_adder_inst
 (
          . in1    (in1)   ,
          . in2    (in2)   ,
          . cin    (cin)   ,
          
          . count  (count) ,
          . sum    (sum)
 );
 
 endmodule
 

  • 8
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值