双世宠妃百度云盘资源资源 要钱的关注微信的请走开 直接发链接谢谢

【图文】用Verilog
HDL语言编写的四位超前进位加法器_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
HDL语言编写的四位超前进位加法器
上传于||文档简介
&&用​V​e​r​i​l​o​g​ ​ ​H​D​L​语​言​编​写​的​四​位​超​前​进​位​加​法​器
大小:96.16KB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢VerilogHDL
Verilog HDL 简介
Verilog HDL是目前设计界通常采用的一种硬件描述语言,被广泛的应用在数字ASIC和可编程逻辑器件的设计开发工作。其按照一定的规则和风格编写代码,可以从系统级、电路级、门级、开关级等抽象层次,进行数字电路系统的建模、设计和验证工作。
4位超前进位加法器的编程实现
使用ModelSim仿真软件进行相关的编程与仿真。
//4位超前进位加法器对应的Verilog HDL代码:
module fastAdder_4(sum,c_out,a,b,c_in);
input[3:0] a,b;
input c_in;
output[3:0]
wire[4:0] g,p,c;
assign c[0]=c_in;
assign p=a^b;
assign g=a&b;
assign c[1]=g[0]|(p[0]&c[0]);
assign c[2]=g[1]|(p[1]&(g[0]|(p[0]&c[0])));
assign c[3]=g[2]|(p[2]&(g[1]|(p[1]&(g[0]|(p[0]&c[0])))));
assign c[4]=g[3]|(p[3]&(g[2]|(p[2]&(g[1]|(p[1]&(g[0]|(p[0]&c[0])))))));
assign sum=p^c[3:0];
assign c_out=c[4];
endmodulemodule fastAdder_4(sum,c_out,a,b,c_in);
input[3:0] a,b;
input c_in;
output[3:0]
wire[4:0] g,p,c;
assign c[0]=c_in;
assign p=a^b;
assign g=a&b;
assign c[1]=g[0]|(p[0]&c[0]);
assign c[2]=g[1]|(p[1]&(g[0]|(p[0]&c[0])));
assign c[3]=g[2]|(p[2]&(g[1]|(p[1]&(g[0]|(p[0]&c[0])))));
assign c[4]=g[3]|(p[3]&(g[2]|(p[2]&(g[1]|(p[1]&(g[0]|(p[0]&c[0])))))));
assign sum=p^c[3:0];
assign c_out=c[4];
//用于仿真的测试代码:
module fastAdder_4_
reg [3:0] a,b;
wire [3:0]
fastAdder_4 U3(.a(a),.b(b),.c_in(c_in),.sum(sum),.c_out(c_out));
a=4'b0001;b=4'b0101;c_in=1'b0;
#100 a=4'b0001;b=4'b0111;
#100 a=4'b0111;b=4'b1100;
#100 b=4'b1111;c_in=1'b1;
#100 a=4'b1101;b=4'b0100;
#100 a=4'b0000;b=4'b1001;c_in=1'b0;
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:880次
排名:千里之外
原创:22篇
(1)(14)(8)用Verilog编写8位超前进位加法器
关于加法器的写法,网上有很多资料,原理什么的就不多说了,这里给出一个简单通用的8位超前进位加法器的模板,只求拿来就用^_^...
module adder8 (
cin, //carry in
sum, //sum of a and b
co //carry out
input [7:0]
input [7:0]
output wire [7:0]
wire c0, c1, c2, c3, c4, c5, c6, c7, c8;
wire g0, g1, g2, g3, g4, g5, g6, g7;
wire p0, p1, p2, p3, p4, p5, p6, p7;
wire s0, s1, s2, s3, s4, s5, s6, s7;
assign g0=a[0]&b[0];
assign g1=a[1]&b[1];
assign g2=a[2]&b[2];
assign g3=a[3]&b[3];
assign g4=a[4]&b[4];
assign g5=a[5]&b[5];
assign g6=a[6]&b[6];
assign g7=a[7]&b[7];
assign p0=a[0]|b[0];
assign p1=a[1]|b[1];
assign p2=a[2]|b[2];
assign p3=a[3]|b[3];
assign p4=a[4]|b[4];
assign p5=a[5]|b[5];
assign p6=a[6]|b[6];
assign p7=a[7]|b[7];
assign c0=
assign c1=g0|p0&c0;
assign c2=g1|p1&c1;
assign c3=g2|p2&c2;
assign c4=g3|p3&c3;
assign c5=g4|p4&c4;
assign c6=g5|p5&c5;
assign c7=g6|p6&c6;
assign c8=g7|p7&c7;
assign s0=a[0]^b[0]^c0;
assign s1=a[1]^b[1]^c1;
assign s2=a[2]^b[2]^c2;
assign s3=a[3]^b[3]^c3;
assign s4=a[4]^b[4]^c4;
assign s5=a[5]^b[5]^c5;
assign s6=a[6]^b[6]^c6;
assign s7=a[7]^b[7]^c7;
assign sum = {s7,s6,s5,s4,s3,s2,s1,s0};
assign co = c8;
原则上,本模块描述的加法器可以根据需要定义成16位等更高的位数,但是考虑到位数增加后,每根导线的扇出系数变得很大,所以如果需要更高位的加法器,可以用8位或者4位的超前进位加法器进行级联。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。君,已阅读到文档的结尾了呢~~
超前进位加法器 串行进位加法器 行波进位加法器 verilog assign verilog case verilog verilog hdl verilog.uew verilog always 按键消抖 verilog
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
用Verilog实现一个16位超前进位加法器
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口

我要回帖

更多关于 双世宠妃百度云盘资源 的文章

 

随机推荐