没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/release/download_crawler_static/12367460/bg1.jpg)
Verilog 课程实验报告
![](https://csdnimg.cn/release/download_crawler_static/12367460/bg2.jpg)
实验 1 十六位超前进位加法器
1.1 系统设计要求
用超前进位加法器实现一个有符号位的 16 位加法器,并且考虑溢出的情况
2.1 详细设计
根据超前进位加法器的原理 Co = G | ( P & Ci ) S = P ^ Ci设计出 4位加法器的子模块,
然后通过 4 个 4 位加法器的相连来得到十六位的加法器。原理如下图所示。溢出用 flag=0
表示。
3.1 程序
//-------------16 位超前进位加法器 -----------------
module cla16(a,b,s,flag); // 含有 a,b,输出 s,进位 flag 的模块
input [15:0] a,b;// 输入 a,b
output [16:0] s; // 输出 s
output reg flag; // 进位
FA FA FA
P
0
G
1
P
0
G
1
P
2
G
2
P
3
G
3
C
o,3
C
o,2
C
o,1
C
o,0
C
i,0
FA FA FA
P
0
G
1
P
0
G
1
P
2
G
2
P
3
G
3
C
o,2
C
o,1
C
o,0
C
i,0
o,3
M
u
l
t
i
p
l
e
x
e
r
o
P
1
P
2
P
3
Idea: If (P0 and P1 and P2 and P3 = 1)
then C
o3
= C
0
, else “kill ” or “generate ”.
![](https://csdnimg.cn/release/download_crawler_static/12367460/bg3.jpg)
wire pp4,pp3,pp2,pp1;
wire gg4,gg3,gg2,gg1;
wire [15:0] Cp;
wire [15:0] p,g;
pg i0 (a[15:0],b[15:0],p[15:0],g[15:0]);
add i1 (p[3],p[2],p[1],p[0],g[3],g[2],g[1],g[0],pp1,gg1);
add i2 (p[7],p[6],p[5],p[4],g[7],g[6],g[5],g[4],pp2,gg2);
add i3 (p[11],p[10],p[9],p[8],g[11],g[10],g[9],g[8],pp3,gg3);
add i4 (p[15],p[14],p[13],p[12],g[15],g[14],g[13],g[12],pp4,gg4);
add i5 (pp4,pp3,pp2,pp1,gg4,gg3,gg2,gg1,pp5,gg5);
// 调用四位加法器模块
add4 l0 (p[3],p[2],p[1],p[0],g[3],g[2],g[1],g[0],1'b0,Cp[3],Cp[2],Cp[1],Cp[0]);
add4 l1 (p[7],p[6],p[5],p[4],g[7],g[6],g[5],g[4],Cp[3],Cp[7],Cp[6],Cp[5],Cp[4]);
add4 l2 (p[11],p[10],p[9],p[8],g[11],g[10],g[9],g[8],Cp[7],Cp[11],Cp[10],Cp[9],Cp[8]);
add4 l3 (p[15],p[14],p[13],p[12],g[15],g[14],g[13],g[12],Cp[11],Cp[15],Cp[14],Cp[13],Cp[12]);
assign s[0]=p[0]^1'b0; // 保留位
assign s[1]=p[1]^Cp[0];
assign s[2]=p[2]^Cp[1];
assign s[3]=p[3]^Cp[2];
assign s[4]=p[4]^Cp[3];
assign s[5]=p[5]^Cp[4];
assign s[6]=p[6]^Cp[5];
assign s[7]=p[7]^Cp[6];
assign s[8]=p[8]^Cp[7];
assign s[9]=p[9]^Cp[8];
assign s[10]=p[10]^Cp[9];
assign s[11]=p[11]^Cp[10];
assign s[12]=p[12]^Cp[11];
assign s[13]=p[13]^Cp[12];
assign s[14]=p[14]^Cp[13];
assign s[15]=p[15]^Cp[14];
assign s[16]=pp5|gg5;
// 溢出判断模块
always@(a,b,s)
begin
if ((a[15]==1&&b[15]==1&&s[15]==0)||(a[15]==0&&b[15]==0&&s[15]==1))
flag=1'b1;
else
flag=1'b0;
end
endmodule
//4 位加法器模块
module add4(p[3],p[2],p[1],p[0],g[3],g[2],g[1],g[0],Co,Cp[3],Cp[2],Cp[1],Cp[0]);
input [3:0]p,g;
剩余18页未读,继续阅读
资源评论
![avatar-default](https://csdnimg.cn/release/downloadcmsfe/public/img/lazyLogo2.1882d7f4.png)
- 余青葭2023-07-25这份文件提供了一个详细的介绍,让读者了解如何使用Verilog编写16位加法器乘法器自动售货机。
- 雨后的印2023-07-25这份文档是学习Verilog编程的绝佳参考资料,对于初学者来说非常有帮助。
- 林书尼2023-07-25作者对于Verilog语言的解释非常清晰,让读者能够深入理解其中的原理和机制。
- 仙夜子2023-07-25文件中的示例代码简单易懂,能够帮助读者快速上手。
- 稚气筱筱2023-07-25文件中的实践案例很实用,通过实际演示了如何实现自动售货机的功能。
![avatar](https://profile-avatar.csdnimg.cn/9b47947ff648431cb7e3062b2b0ec9e6_weixin_42596755.jpg!1)
Maxwell'sKitten
- 粉丝: 5
- 资源: 12
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![voice](https://csdnimg.cn/release/downloadcmsfe/public/img/voice.245cc511.png)
![center-task](https://csdnimg.cn/release/downloadcmsfe/public/img/center-task.c2eda91a.png)
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback-tip](https://img-home.csdnimg.cn/images/20220527035111.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![dialog-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/green-success.6a4acb44.png)