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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 2322|回复: 4

[求助] 关于verilog语法使用的一个小问题

[复制链接]
发表于 2014-11-3 10:37:24 | 显示全部楼层 |阅读模式

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

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

x
情况是这样的,我想把表达式结果中的其中连续的几位赋值给另一个reg变量如下所示:
reg [4:0] receive;
reg [11:0] send1,send2,send3;

always@(posedge clk)
begin

receive<=(send1+send2+send2)------------>取运算结果的[7:3]

end

这种情况应该怎么描述呢?

如果描述成

reg [12:0] receive_out;
wire [4:0] receive;
reg [11:0] send1,send2,send3;

always@(posedge clk)
begin

receive_out<=(send1+send2+send2);

end


assign receive=receive_out[7:3];

是不是在综合时会浪费很多寄存器??
发表于 2014-11-3 11:40:49 | 显示全部楼层
本帖最后由 chengroc 于 2014-11-3 11:43 编辑

3步
1,加运算
2,截取
3,寄存器打拍

你的第2种写法,如果receive_out的其他bit无load,可以设置综合策略将其优化掉,不会浪费面积
 楼主| 发表于 2014-11-3 15:59:40 | 显示全部楼层
回复 2# chengroc


  思考通了~谢~
发表于 2014-11-4 13:03:00 | 显示全部楼层
你是取高5bit[7:3],但是这几个bit的结果需要参考[2:0]这几个bit。因此加法器的消耗依然是两个8bit。但是最后存结果的时候你可以少存,只存前面的5bit就可以了。
发表于 2014-11-5 16:07:10 | 显示全部楼层
直接把send1、send2、send3定义为reg是不是有点不妥?它们是作为输入的。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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

GMT+8, 2024-11-5 23:28 , Processed in 0.020215 second(s), 9 queries , Gzip On, Redis On.

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