作者WizardRush (插很大)
看板Electronics
标题Re: [问题] veriog撰写问题
时间Thu Aug 6 00:54:45 2009
事实上,我比较在意原PO本来的写法为什麽有错误?
在我的想法中,只要将mod_n写成DFF的形式,可以解
决原PO推文中的问题...
always(posedge) begin
if(reset)
mod_n <= 13'd2000 ;
else begin
if(state==s1) mod_n <= mod_n+13'd10;
if(state==s2) mod_n <= mod_n-13'd10;
end
end
对於latch的写法,说真的我不会使用,之前有位朋友
跟我说,latch在成本上比DFF还要省..
但是在课程的训练中,他们几乎都教导我,在code一定
要避免latch的写法,甚至在坊间的书也都有类似的讲法..
可是当原PO提出了用latch方式,我还真是疑惑...
究竟latch在此能否使用,若是可以,又该如何描述...
而在此设计中,面积占最大也就是这个mod_n 13 bits register..
所以latch若是真能取代,面积应该会小一些才是...
--
又赚了一篇..
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.135.103.42
※ 编辑: WizardRush 来自: 220.135.103.42 (08/06 00:55)
1F:推 felghana:印象中上课老师是说 若是某个变数在某个case下没被assign 08/06 01:12
2F:→ felghana:值 合成软体会帮你加上latch 至於这样好不好要看你的设计 08/06 01:12
3F:→ felghana:因为latch这种东西 容易让电路不稳定 08/06 01:13
4F:→ felghana:其实我本来最想来问的是有没有不加latch还能维持值的方法 08/06 01:16
5F:→ felghana:因为我猜 我的电路就是错在那边 08/06 01:16
6F:→ WizardRush:ㄏㄏ..latch说真的有很多种 印象中合成器好像下指令 08/06 01:21
7F:→ WizardRush:就可以取代 不过我也没去查过 我是懒鬼.. 08/06 01:22
8F:推 bighead319:latch不是不能用,而是要很小心,除非你能很确定控制住 08/06 22:30
9F:→ bighead319:一切的行为,否则因为latch造成的bug很难抓,因此一般 08/06 22:31
10F:→ bighead319:不会鼓励使用latch,尤其是初学者,大都会被禁止使用。 08/06 22:32
11F:→ WizardRush:那我想请教一下 假如想要学latch的使用方式 我该参考些 08/06 22:52
12F:→ WizardRush:什麽文件比较合适呢?可否给点建议..谢谢 08/06 22:53
13F:推 bighead319:你先去了解一下latch的行为吧,以及他的构造,这在一些 08/06 23:09
14F:→ bighead319:数位IC的书都会有,你就知道为啥latch要小心,以及为啥 08/06 23:10
15F:→ bighead319:latch比一般DFF小 08/06 23:11
16F:推 pow:重点是 你的硬体设计里面如果原本没有latch 为什麽要让他合成 08/06 23:48
17F:→ pow:除非学硬体描述语言 不用知道硬体是什麽... 08/06 23:49
18F:→ WizardRush:因为latch若是可以取代DFF在我设计中的作用 我会想尝试 08/07 00:19
19F:→ WizardRush:看看..毕竟我从来没有想过如何使用latch 08/07 00:19
20F:→ WizardRush:数位IC的书 不好意思 可以的话 可以介绍一下 08/07 00:22
21F:→ WizardRush:因为坊间我只买过关於verilog的书 请问你指的是这一类 08/07 00:23
22F:→ WizardRush:的吗?bighead板友 08/07 00:23
23F:→ WizardRush:重新温习一下板上相关latch的文章 现在比较想了解 08/07 00:53
24F:→ WizardRush:在某些特定的时机(设计) 是否可以做取代..? 08/07 00:53
25F:→ WizardRush:或许改天写写程式自己测试一下吧...感谢各位先进 08/07 00:55
26F:推 bighead319:latch你用RTL去测没有用,你要能保证做成真正电路後 08/07 13:56
27F:→ bighead319:因为delay造成的扰动所产生的误触发,你要能保证这行为 08/07 13:57
28F:→ WizardRush:若是我的post-sim正确 也没有办法证明tape-out後会正确 08/07 20:54
29F:→ WizardRush:吗? 08/07 20:55
30F:推 pow:post-sim如果正确是因为glitch的宽度很小或者发生时机刚好 08/09 07:49
31F:→ pow:那很有可能tape-out之後 glitch宽度变大 或者时机(delay)变 08/09 07:49
32F:→ pow:造成有error发生 continuous system在digital domain通常 08/09 07:49
33F:→ pow:会有这方面的问题 这也就是clock会考虑jitter的原因 08/09 07:50