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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

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

[原创] 求助?多重驱动问题,

[复制链接]
发表于 2017-7-3 17:39:48 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 lailix 于 2017-7-3 17:45 编辑

[Synth 8-3352] multi-driven net d_pty_en_OBUF with 1st driver pin 'ldpc_output_inst/d_pty_en_tmp_reg/Q' ["C:/Users/admin/Desktop/a/ldpc_output.v":44]

[Synth 8-3352] multi-driven net d_pty_en_OBUF with 2nd driver pin 'ldpc_encode_part_inst/parity_P0_calcu_inst/cnt_pty_en_reg/Q' ["C:/Users/admin/Desktop/a/parity_V0_calcu.v":123]



代码如下:(部分)对应 -- 44行




  1.         reg [10:0] cnt;
  2.         reg d_pty_en_tmp;
  3.         always@(posedge clk or negedge rst_n) begin
  4.                 if(!rst_n) begin
  5.                         cnt <= 'd0;                                              d_pty_en_tmp <= 'd0;
  6.                         end
  7.                 else begin
  8.                         if(cnt==total_bit-1) begin
  9.                                 cnt <= 'd0;
  10.                                 d_pty_en_tmp <= 'd1;
  11.                                 end
  12.                         else
  13.                                 cnt <= cnt+1;
  14.                         end
  15.         end
  16.         
  17.         wire d_pty_en;
  18.         assign d_pty_en = d_pty_en_tmp;


复制代码



对应  -- 123行




  1.         reg cnt_blk_en;   
  2.         reg [3:0] cnt_blk;
  3.         reg cnt_pty_en;
  4.         reg [2:0] cnt_pty;
  5.         always@(posedge clk_blk) begin
  6.                 if(!rst_n) begin
  7.                         cnt_blk <= 'd0;
  8.                         cnt_pty <= 'd0;
  9.                         end
  10.                 else begin
  11.                         if(cnt_blk_en=='d1) begin
  12.                                 if(cnt_blk=='d15) begin
  13.                                         cnt_blk <= 'd0;
  14.                                         cnt_blk_en <= 'd0;
  15.                                         cnt_pty_en <= 'd1;
  16.                                         end
  17.                                 else
  18.                                         cnt_blk <= cnt_blk + 1;
  19.                                 end
  20.                         else if(cnt_pty_en=='d1) begin
  21.                                 if(cnt_pty=='d7) begin
  22.                                         cnt_pty <= 'd0;
  23.                                         cnt_blk_en <= 'd1;
  24.                                         cnt_pty_en <= 'd0;
  25.                                         end
  26.                                 else
  27.                                         cnt_pty <= cnt_pty + 1;
  28.                         end
  29.                 end
  30.         end


复制代码



其他部分就没有相关的变量赋值了,综合的结果如上所示,求各位高手指点一下啊!谢谢啦。



结果是critical warning
发表于 2017-7-3 18:08:55 | 显示全部楼层
d_pty_en_tmp赋值给d_pty_en,cnt_pty_en_reg也赋值给d_pty_en
 楼主| 发表于 2017-7-3 19:35:15 | 显示全部楼层
回复 2# 大林


   d_pty_en_reg是哪里来的呢?综合出来的吗?不是很懂。
发表于 2017-7-3 19:51:16 | 显示全部楼层
你应该写了这两个语句:assign d_pty_en = d_pty_en_tmp;assign d_pty_en = cnt_pty_en;
 楼主| 发表于 2017-7-3 21:20:37 | 显示全部楼层
回复 4# 大林


      这是没有的,因为这是对一个值两次赋值。之前我把综合后的电路看了一下,是有d_pty_en_reg, 我把代码重新写了一遍,之前的问题没有了,不过现在也没法再去验证了。我困惑的是,代码里面并没有对一个值两次赋值,但综合后会出现multi-driver,这个问题不太清楚。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

X

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

GMT+8, 2025-7-6 08:05 , Processed in 0.016679 second(s), 7 queries , Gzip On, MemCached On.

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