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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 4767|回复: 13

[求助] 为什么寄存器别优化掉?

[复制链接]
发表于 2015-6-16 22:37:13 | 显示全部楼层 |阅读模式

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

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

x
对一工程综合,名为DPWM.v的模块,结果说里面有几个寄存器被优化掉,什么原因呢?我觉得寄存器是有驱动的,不应该被deleted。(部分代码)output en;

reg en;

//以下三个是定义的内部寄存器
reg en1;
reg en2;
reg counter8bit;

always@(posedge clk_sys)

begin

if(counter8bit==8'b11111111)


counter8bit <= 8'b0;

else

counter8bit <= counter8bit+8'b1;

end

always@(posedge clk_sys)

begin

if(counter8bit>=d_reg)

en1<=1'b1;

else

en1<=1'b0;

end

always@(posedge clk_sys)

begin

if(counter8bit>=(d_reg + 1'b1))

en2<=1'b1;

else

en2<=1'b0;

end

always@(posedge clk_sys)

begin

en<=(en1^en2);

end

always@(posedge clk_sys)

begin

if(en==1'b1)

                ...............(后面的就不粘贴了)

这三个寄存器en1 en2 counter8bit 不是都有使用吗?为什么综合结果说

Following instances are deleted as they do not drive any primary output:没有用驱动任何输出?什么意思?
'......(路径)/DPWM/mux_counter8bit_22_17',
'......(路径)/DPWM/mux_en1_30_17',
'......(路径)/DPWM/mux_en2_38_17',



求大神帮助!
 楼主| 发表于 2015-6-17 10:34:46 | 显示全部楼层
顶!
发表于 2015-6-17 10:38:20 | 显示全部楼层
回复 1# 西边的鸵鸟


   你把en1接出到一个output port上试试看,它还会删除吗?
发表于 2015-6-17 10:56:26 | 显示全部楼层
formal过了就行啊
 楼主| 发表于 2015-6-17 13:27:05 | 显示全部楼层
回复 4# icfbicfb
关键是没有过啊,版主!!,我在想是不是因为这些寄存器被优化掉了,导致RTL与netlist不匹配,形式化验证过不了。所以想尽力找出被优化掉的原因。
 楼主| 发表于 2015-6-17 13:29:13 | 显示全部楼层
回复 3# sjtusonic
改为输出,就不会被优化掉了。可是这不是我想实现的逻辑啊,求版大在帮我看看,,,,
 楼主| 发表于 2015-6-17 16:34:39 | 显示全部楼层
回复 3# sjtusonic
版大,先不说en1或者en2.你看一下那个counter8bit,这个寄存器,是我用来做计数用的,为什么还要被deleted?这讲不通啊。。。
发表于 2015-6-17 17:05:23 | 显示全部楼层
我觉得,你的en1和en2确实可以被优化掉啊,优化之后就只有count和en就可以了。
always@(posedge clk_sys)
begin
en<=counter8bit==d_reg;
end
 楼主| 发表于 2015-6-17 19:58:04 | 显示全部楼层
回复 8# timchen0716
感觉您的这个答案好像也是我想要的表述,我在仔细研究研究。好像就是我要的结果。多谢您的回复。
发表于 2015-6-19 09:05:44 | 显示全部楼层
回复 9# 西边的鸵鸟


    大致看了代码 应该是要采出来一个cycle的高脉冲en吧。你既然用了计数器,所以感觉完全没必要在用两个en1和en2了。这样做面积开销大,并且时序也不会太完美。
if count8==dreg
   en=1
else
   en=0
end
其实可以再挖掘一下,看看count8和dreg相等的时候有没有什么规律可循,尝试用count8的少量比特来做控制条件,这样估计timing会更好吧。

个人意见,说的不对请指正
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2025-1-16 03:52 , Processed in 0.021936 second(s), 7 queries , Gzip On, Redis On.

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