【FPGA学习】Verilog之加法器

         在fpga工程应用设计中,随处可见加法器,乘法器等等。现在将一些常用模块和心得体会先记录下来,以便日后使用。

一位半加器

module halfadder(cout,sum,a,b);

         outputcout,sum; //不申明,默认是wire变量

         input  a,b;

         assign{cout,sum}=a+b;//cout为进位,sum为和

endmodule

 

一位全加器

module fulladder(a,b,cin,cout,sum);

         inputa,b,cin;

         outputcout,sum;

         assign{cout,sum}=a+b+cin;

endmodule

 

 

利用两个半加器实现全加器

module halfadder(a,b,sum,cout);

         outputcout,sum; //不申明,默认是wire变量

         input  a,b;

         assign{cout,sum}=a+b;

endmodule

 

module fulladder(x,y,c_in,sum,c_out);

         inputx;

         inputy;

         inputc_in;

         outputsum;

         outputc_out;

         wirea_sum;

         wirea_out;

         wireb_out;    

         assignc_out=a_out|b_out;

         halfadderhalf(x,y,a_sum,a_out);

         halfadderhalf1(c_in,a_sum,sum,b_out);

endmodule

 

 

测试文件的编写技巧

就拿上面的半加器来说,我们需要添加的就是输入信号a,b.可以采用下列方法:

第一种:

#100 a=0;

#100 b=0;

#100 a=1;

#100 b=1;

这种编辑方式虽然十分方便,可是对于很多情况的测试编写困难。

 

第二种:

Integer I;

For(i=0;i<=15;i=i+1)

a=I;//注意这里a是一位,因此输出为0101010101010101

第三种:

Repeat(16)

 a ={$random}%2;//这里产生随机的0 1比特流。


原文:http://blog.csdn.net/tengweitw/article/details/11296961

作者:nineheadedbird


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值