Electronics 板


LINE

本人有个verilog如以下设计 always@(posedge appclk or posedge reset) if(reset) state <= 2'b00; else if(!enable) state <= 2'b00; else case(state[1:0]) 2'b00: if(condition1) state <= 2'b10; 2'b10: if(condition2) state <= 2'b11; 2'b11: if(condition3) state <= 2'b10; endcase 其中enable来自另一clk domain always@(posedge cpuclk or posedge cpurst) if(cpurst) enable <= 0; else if(condition4) enable <= cpuwrdata[1]; 简而言之 由cpu填写enable=1的时候 state才能跳动到其它数值 请问这个enable需不需要先synchronize到appclk再给state使用? (假设两clk domain完全独立) 与同事讨论 一派说法是要: post-sim的时候观察到 若enable active的时间太接近appclk rising edge 的确会发生timing violation 导致state跳到非00的值或是unknown 另一派说法是不用: 以我们的应用:enable刚启动时 condition1,2,3都是inactive 因此appclk rising瞬间不论抓到enable是0还是1 依RTL要继续由condition1,2,3来判断state下一步 即然condition1,2,3都不动作 state自然该保持在00 下一Tenable稳定了 自然state也不会跳错了 本人经验尚浅 版友可否指正两派说法的弱点之处? --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 122.146.122.70
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Electronics/M.1508493878.A.438.html
1F:→ Leadgen: 敲2下,不会花你很多时间。而且不会出现奇怪的问题。 10/20 19:19
2F:推 mmonkeyboyy: 一楼到也不是 这个东西是sync设计当出现的问题之一 10/20 20:37
3F:→ mmonkeyboyy: 这个cross clock domain design (应该是这个名字) 10/20 20:38
4F:推 mmonkeyboyy: 或是clock domain crossing 应该google 有很多 10/20 20:40
5F:推 bakerly: 不敲两级s会有metastable问题,但有metastable问题不代表 10/20 21:52
6F:→ bakerly: 一定会死,enable从0变1时保证condiction都是0的确是一 10/20 21:52
7F:→ bakerly: 种解法,但要注意的是enable从1变0 一样有metastable问题 10/20 21:52
8F:→ bakerly: ,这时state有可能会有短暂暂态,这个暂态会不会让你的电 10/20 21:52
9F:→ bakerly: 路挂掉你就要自已确认了。 10/20 21:52
10F:推 ericute: 请问原po与b大,如果enable第一T抓到unknown,state不就 10/21 09:19
11F:→ ericute: 会错了吗?为什麽还能确认是在00这个state呢,谢谢 10/21 09:19
12F:→ ericute: 我想法是跟condition有无成立应该没关系,可能还是有机 10/21 09:22
13F:→ ericute: 会fail 10/21 09:22
14F:推 bakerly: 如果enable 0的够久,state 已经归0,在enable变1时condu 10/21 10:46
15F:→ bakerly: ction 也全为0的条件下, 这电路state的din在enable rise 10/21 10:46
16F:→ bakerly: 的前後会一直维持在0,这时跟本不会有setup hold 的问题 10/21 10:46
17F:→ bakerly: ,会出现unknow一定是前题没被满足。 10/21 10:46
18F:推 ericute: 谢谢b大,了解没注意到enable一开始会很长一段0。题外, 10/21 11:47
19F:→ ericute: 若enable在一段0後,接着不是long pusle的话,是否就不 10/21 11:47
20F:→ ericute: 适用原po说的第二种情形呢,还是得syn过,感谢 10/21 11:47
21F:推 bakerly: 这电路state归0只有靠enable为0来达成,但enable和state 10/21 14:20
22F:→ bakerly: 非同步,所以enable falling时的确有可能造成state unkno 10/21 14:20
23F:→ bakerly: w而向後扩散导致电路失败,这和enable是不是long plus 没 10/21 14:20
24F:→ bakerly: 关系,再长的puls还是可能会死。 10/21 14:20
25F:→ kuoll: 我是原po 谢谢b大详细解释 10/21 21:48
26F:推 mmonkeyboyy: 这如果没有实验纯跑模拟应该有的会给过 10/22 10:03
27F:→ mmonkeyboyy: 但你真正实作下去会有点问题 这个现代tool会给warn 10/22 10:03
28F:→ mmonkeyboyy: ing 才是 10/22 10:03
29F:→ ahoyhoy: 完全不会toggle的有时候就直接拉 10/23 17:59
30F:→ ahoyhoy: 一般还是会砍个二级sync一下 10/23 17:59







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:BabyMother站内搜寻

TOP