作者koyin (GoGoGo)
看板Electronics
标题[问题] counter的hold time violation怎麽解?
时间Wed May 18 21:50:24 2016
各位前辈大家好,
小弟是初心者,现在遇到一个问题,试了很多写法没办法解,
想请益一下,
目前在synthesis後gate level的模拟会跑出hold time violation的警告,
我只知道可以塞buffer让Td增加就可以解,
但是计数器电路的buffer我不知道怎麽塞,
想请教各位前辈解惑一下,谢谢。
这是警告讯息:
Warning! Timing violation
$setuphold<hold>( negedge CKN &&& (flag == 1):
932871 PS, negedge D:932955 PS, 0.152 : 152 PS, 0.106 : 106 PS );
File: ./umc18_neg.v, line = 6843
Scope: TEST.RM.counter_reg_1_ Time: 932955 PS
这是我的计数器程式码:
always @(negedge CLK)
begin
if (RESET==1'b1)
counter <= 6'b0;
else if (IN_VALID==1'b0)
counter <= 6'b0;
else
counter <= counter + 6'b1;
end
再麻烦各位前辈不尽指教><
谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 220.143.165.12
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Electronics/M.1463579427.A.82B.html
1F:推 hsujerry: 手动在gate level RTL塞buffer看看? 或起初就用gate去兜 05/18 22:05
2F:推 hsujerry: 还是说testbench中的flag转态跟CLK切齐? 那样直接灌进去 05/18 22:11
3F:→ hsujerry: 似乎可能造成violation,太久没碰了~ 05/18 22:14
4F:推 kyo547896321: synthesis用的script里面可以加指令直接修hold time 05/18 22:56
5F:→ kyo547896321: 吧 05/18 22:56
6F:推 darky897: Counter里面有hold time violation?好像不太可能 如果发 05/18 22:59
7F:→ darky897: 生应该只能增加clock cycle time了吧 05/18 22:59
8F:推 Baneling: hold time在前段处理意义不大.... 05/18 23:02
9F:→ MAXI: fix_hold 05/19 00:52
10F:→ hsnuyi: APR时才需要加buffer... 你这是设计问题 05/19 10:07
11F:→ hsnuyi: 再者你IN_VALID是enable signal吧? 为啥要这样写... 05/19 10:09
12F:推 impression: 改成posedge试试呢? 05/19 11:23
13F:推 wait: IN_VAILD跟CKN 错开 05/19 12:21
14F:→ koyin: 感谢各位帮忙,我找出原因了,我的data跟VALID都是负缘 05/19 15:30
15F:→ koyin: 把counter改正缘触发就可以了>"""< 05/19 15:30
16F:推 ggyy940: always @(posedge CLK, RESET) 05/22 21:50