Electronics 板


LINE

※ 引述《karyuuissen ()》之铭言: : 我想先问关於blocking和nonblocking assignment的问题 : 1. 像以下这种2个if的是同时做吗? : always@(posedge clk) begin : if(condition1) : A <= B; : if(condition2) : C <= D; : end 如果你问的是simulator会先做谁。 答案是第一个if先做。因为begin...end是sequential block。 但真实的电路是同时运作的。 : 2. 两个一样的always分开写是谁先谁後?举例如下: : always@(posedge clk) begin : A <= B; : end : always@(posedge clk) begin : C <= D; : end 如果是在同一个module,那IEEE 1364无定义。谁先谁後都有可能, 跟你用的simulatior有关。 : 3. 同上一个问题,若分别在不同的.v档下,但clk是连起来的,如: : //test1.v : always@(posedge clk1) begin : A <= B; : end : --------------------------- : //test2.v : always@(posedge clk2) begin : C <= D; : end : 这样的话又是谁快? 如果是在不同的module...,我不清楚。 : 如果always里面同时有blocking又有nonblocking的情况我就更搞不清楚了... : 4. wire的assign和always@(*)分别是等号右边和判断式变了就变的 : 那谁会比较先做? : 像是: : assign A= (B==C)? D:E; : 和 : always@(*)begin : B = F; : end 同2.。 : 最後想问有关FPGA合成电路critical path warning的问题... : 要怎样才能减少这些warning? : 明明一个posedge触发间if..else和case的层数以及运算都很少了 : 它还是会产生critical path或setup和hold time不够的情形 我不清楚FPGA的这些问题, 但像SoC Encounter、IC Compiler这些physical IC design的tools 可以作timing optimization降低setup/hold time slack。 但如果setup time slack optimize一直都不过, 可能你的电路就是跑不到这麽快,就只好改架构。 有时候timing violations也可能是testbench写得不合理。 : 难道只能一直去改code的写法直到没有warning为止吗? : 抱歉问了这麽多问题XD : 因为project的架构太大,时序搞混会让bug很难找出来.... : Thx --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.115.71.32 ※ 编辑: zxvc 来自: 140.115.71.32 (12/30 12:45)
1F:推 karyuuissen:感谢!! 看来很多都要用模拟才能判断先後了.... 12/30 13:06
2F:→ zxvc:楼上,这不是一个好做法。 12/30 13:20
3F:→ zxvc:如果你今天专为某个simulator写一个design,那很可能把你的 12/30 13:22
4F:→ zxvc:code拿到另一个simulator就挂了。 12/30 13:22
5F:→ zxvc:你应该是避开Verilog那些未定义的部分,去写一个design 12/30 13:24
6F:→ zxvc:在所有simulator都有一致的结果。 12/30 13:24
7F:→ zxvc:不只是Verilog有未定义的行为,C/C++也有所谓的未定义的行为 12/30 13:26
8F:→ zxvc:。sequential block通常就是用来解决这谁先谁後的问题,因为 12/30 13:33
9F:→ zxvc:它的计算是有顺序的。虽然实际的电路是同时运行的,但只要你 12/30 13:36
10F:→ zxvc:仔细的设计,你可以让sequential block在每个clock edge所求 12/30 13:39
11F:→ zxvc:出的值与真实电路一样。 12/30 13:39
12F:→ zxvc:所以HDL只是对真实硬体的一种modeling,它不等价真实硬体, 12/30 13:42
13F:→ zxvc:的所有行为,你可以说它很"像",但就是有不一样的地方。 12/30 13:43
14F:→ karyuuissen:可是我现在这个大架构中有很多module和很多不同倍数的 12/30 13:45
15F:→ karyuuissen:clock,这样用sequential在真实电路下还会同时运作吗 12/30 13:46
16F:→ karyuuissen:就像我问的第2点和第3点那样@@ 12/30 13:47
17F:→ zxvc:而Synthesis & Physcial IC Design就是把这些拟真的电路转成 12/30 13:47
18F:→ zxvc:真实的电路。 12/30 13:47
19F:→ zxvc:k大,我想我上面两句已回答你的问题。 12/30 14:04
20F:→ zxvc:讲坦白的,连simulator本身都是用software去写的,它本身就是 12/30 14:09
21F:→ zxvc:sequential去执行的(不谈multi-thread)。 12/30 14:10
22F:→ zxvc:但sequential的simulator却可以去simulate"同时运行的硬体", 12/30 14:14
23F:→ zxvc:你说神不神奇?其实也不神奇,simulate中文就是"模拟"的意思 12/30 14:16
24F:→ zxvc:,不是"完全等价"的意思。 12/30 14:16
25F:推 karyuuissen:喔喔 了解^^ 12/30 14:37
26F:→ sneak: 感谢!! 看来很多都 https://muxiv.com 08/13 18:54
27F:→ sneak: clock,这样用se https://daxiv.com 09/17 22:49
28F:→ sneak: 的所有行为,你可以说它 https://muxiv.com 11/11 15:37
29F:→ sneak: 的所有行为,你可以说它 https://muxiv.com 01/04 22:06







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灯, 水草

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

TOP