作者gn00446610 (Tsk)
看板Electronics
标题[问题] verilog同样的电路,确有不同的结果?
时间Sat Jul 5 14:47:51 2014
小弟不才有一个小小疑问请想请教各位先进。
小弟作了一个小实验,HDL大概长这样:
output reg IQCLK;
always@(posedge EXTERNAL_CLK) begin
if(DATA_READ_CLK) begin
IQCLK <= 1;
end
else begin
IQCLK <= 0;
end
end
output reg IQWRT;
always@(posedge EXTERNAL_CLK) begin
if(DATA_READ_CLK) begin
IQWRT <= 1;
end
else begin
IQWRT <= 0;
end
end
===========================================
小弟的问题是,在作timing simulator的时候发现IQWRT上拉电位的时间点都比
IQCLK的速度还要在快一点??Why?????
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.124.181.210
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/Electronics/M.1404542874.A.782.html
※ 编辑: gn00446610 (140.124.181.210), 07/05/2014 14:50:02
1F:→ michael6172:wire delay cause this two difference result 07/05 17:02
2F:→ gn00446610:m大..那有办法去控制嘛?还是要作时续约束?? 07/05 17:06
3F:→ letitgo02:如果没有要输出用 sequential电路都是 clock based 07/05 21:15
4F:→ letitgo02:不会有影响 其他运算 看你需求 07/05 21:16
5F:→ letitgo02:没有要输出FPGA用 07/05 21:17
6F:推 kuoll:你应该检查netlist是不是用了不同的cell 如果没有timing 07/06 01:56
7F:→ kuoll:violation就不用在意这个时间差 07/06 01:56
8F:→ gn00446610:那麽有没有办法让IQCLK的时间点比IQWRT上拉的时间点快 07/06 15:49
9F:→ gn00446610:一点或者同时发生??? 07/06 15:49
10F:→ lovepy:有甚麽特殊需求或原因一定要两个同时发生吗?? 07/06 16:32
11F:→ lovepy:因为如果是一般的同步的话 基本上只要保证下次边缘触发时 07/06 16:33
12F:→ lovepy:所有的数值在那之前已经稳定的拉起来就可以正常运作了 07/06 16:33
13F:推 kuoll:将IQWRT再接几个delay cell就可以晚点上拉了 07/06 19:56
14F:→ gn00446610:l大,小的是因为要符合datasheet上的时序要求 07/07 12:07
15F:推 kuoll:那你的HDL不该这样设计 应该分两cycle拉讯号 07/07 14:52
16F:→ gn00446610:有点不是很懂k大您的意思??或者举例一下 07/07 15:20
17F:推 kuoll:我晚点回信跟你解释一下好了 07/07 18:00
18F:推 illl:k大信可以顺便寄给我吗?感恩 07/08 18:02
19F:推 cpyi:1ovepy正解 下一个clock之前对就好了 拉起来之後 07/28 03:16
20F:→ cpyi:时间 没有影响 考虑这个问题的两种情况 07/28 03:17
21F:→ cpyi:第一种 就是下一个clock setup time还没算完 07/28 03:17
22F:→ cpyi:第二种情况 就是太快算完 导致hold time不符合 07/28 03:18
23F:→ cpyi:你的问题应该是第二个 解决方法就是加一些buffer(2 Not gates 07/28 03:19
24F:→ lovepy:datasheet? 意思是你的输出信号会去控制其他晶片吗? 08/01 09:32
25F:→ lovepy:比较标准的作法应该是在合成的时候设定output delay 08/01 09:32
26F:→ lovepy:比较快速的做法是 你原FPGA用正缘触发 晶片用负缘触发 08/01 09:34
27F:→ lovepy:不过这样电路操作频率因有些地方的延迟浪费而降低 08/01 09:36
28F:→ gn00446610:我这段code是要输出讯号控制其他chip的没错 08/03 17:41
29F:→ gn00446610:而且最後得到的结果,似乎是要对合成下一些constrain 08/03 17:42