在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 2002|回复: 6

问个流水线加法器的问题

[复制链接]
发表于 2009-10-26 22:54:00 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
module adder8_2(cout ,sum ,clk ,cina ,cinb ,cin) ;
input [7 :0]cina ,cinb;
input clk ,cin;
output [7 :0] sum;
output cout;
reg cout ;
reg cout1 ;
reg[3 :0]sum1;
reg[7 :0]sum;

always @(posedge clk) begin //第4 位相加;
{cout1 , sum1} = cina [3 : 0] + cinb [3 : 0] + cin ;
end
always @(posedge clk) begin  //高4 位相加,并且将8 位拼接起来;
{cout ,sum} = {{cina[7],cina [7 :4]} +{cinb[7], cinb[7 :4] + cout1} ,sum1};
end

endmodule

一个2级流水线的加法看不懂这一句{cout ,sum} = {{cina[7],cina [7 :4]} +{cinb[7], cinb[7 :4] + cout1} ,sum1};
cina[7]是什么意思?
发表于 2009-10-26 23:21:54 | 显示全部楼层
符号位扩展啊,结果要比输入多一位的
 楼主| 发表于 2009-10-27 09:50:34 | 显示全部楼层
always @(posedge clk) begin  //高4 位相加,并且将8 位拼接起来;
{cout ,sum} = {{cina[7],cina [7 :4]} +{cinb[7], cinb[7 :4] + cout1} ,sum1};
看不懂谁告诉下?
发表于 2009-10-27 10:51:58 | 显示全部楼层
如果要实现2级流水加法的话
{cout ,sum} = {{1'b0,cina [7 :4]} +{1'b0,cinb[7 :4] + cout1} ,sum1};

否则的话实现的就不是2个数相加了
发表于 2009-10-27 11:08:31 | 显示全部楼层
2楼很对
就是符号位扩展
 楼主| 发表于 2009-10-27 13:25:46 | 显示全部楼层
{cout ,sum} = {{cina[7],cina [7 :4]} +{cinb[7], cinb[7 :4] + cout1} ,sum1};
是怎么实现8位链接的?
{cina[7],cina [7 :4]} +{cinb[7], cinb[7 :4] + cout1}能具体解释下么
发表于 2009-10-27 14:06:13 | 显示全部楼层
{cina[7],cina [7 :4]}
+{cinb[7], cinb[7 :4]}
+                     cout1
=进位,和的高4位
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-17 10:26 , Processed in 0.025260 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表