微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 请教各位,有关后仿真问题

请教各位,有关后仿真问题

时间:10-02 整理:3721RD 点击:
请教各位,系统设计中有多个时钟域,在用modelsim之类的仿真工具做后仿真时,由于跨时钟域的信号可能出现不定态而导致仿真无法正常进行下去,无法完成后仿真,请问如何处理?能否让工具认为不定态就是逻辑‘1‘,从而让仿真进行下去吗?

请教各位,有关后仿真问题
关键不在时钟域,在于你的设计中如果有不定态x,应该在reset以后尽量不要再出现。如果是后仿真库中有x输出了,则肯定是时序问题造成的,请细究。
工具是不可能做到你那样的要求的,否则就乱套啦!

请教各位,有关后仿真问题
多谢老扁!不过我有一个难题还想听听你的建议:
比如CLK1时钟域产生的多周期信号S1由CLK2去同步锁存(按常规方法加两级CLK2触发的DFF进行双同步),但是由于S1的建立时间不一定满足CLK2时钟域的要求,第一级同步的输出信号第一周期就是不定态,因此在第二级的DFF输出信号的第一周期还是不定态。如果我想用信号S1产生一个CLK2时钟域的单周期信号,就会在仿真中出现该单周期信号为不定态。如果我想用此信号做诸如SDRAM的ACT或READ或WRITE等命令,岂不是命令成为不定态(当然在实际电路中肯定不会出现)?

请教各位,有关后仿真问题
你理解有误。
两级同步就是为解决不定态而设计的,第一级产生不定态的概率已经很小,第二级以后再出现不定态的概率就已经达到了实际工作的要求;所以你大可放心用两级clk2来同步一下即可。另外一般还可以把第一级同步寄存器用不会产生不定态的寄存器来做,当然那和工艺库有关了。
关于这方面的理论和实践论述在本版有专门文章介绍,请下载学习一下。

请教各位,有关后仿真问题
我知道实际电路中和你说的一样,但是在后仿真时容易出现我所说的不定态问题,我没法克服,只好用行为级仿真+认真分析时序代替后仿真,所以我想找到一个折中的方法将后仿真顺利进行。

请教各位,有关后仿真问题

那是单元库做了setup检查了。
如果那样的话可不可以后仿真时不做时序检查,用+nospecify +notimingcheck等来做,也就等同于行为仿真了,只是用单元替代rtl而已,算作一个折中方法吧。
这样你的时序检查就放到静态时序分析里去做吧。
不过这确实是一个问题,大家可以继续讨论,看这些fasle_path的timing后仿真怎么做比较好。

请教各位,有关后仿真问题
好像用动态仿真确实很难避免这个问题。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top