用modelsim仿真疑惑求解
不知道怎么样做可以使tb中的控制信号与design中内部的信号达到一致?
自己先顶一个,在线等待高手指导!
没有明白你说的意思,我是这样理解你提出的问题的。要是直接用design里面的控制信号的话可以用tb/design_signal做控制,没有必要再在tb里做出来一个控制信号。
写错了,应该是tb.design_signal
把design内部的控制信号作为输出端口引出,然后在tb中使用
大概是 blocking 和 non-blocking問題.
这样写可以么 ,我还没有试过
这样岂不是要修改原有的design,而且要逐级向下修改层次端口,多加output port
仔细想想你的tb,tb应该和dut具有一定的独立性,可以从整体仿真环境中剥离出来。
我开始也是这样做的,问题是现在tb中要给的下一个激励信号与DUT中的内部的某个进程有关系,这样的话,我就有点糊涂了
可以的,我经常这样写的!这个当然只是用于仿真,是不可综合行为!
可以的,我经常这样写的!这个当然只是用于仿真,是不可综合行为!
......对应不上,那就是逻辑问题或者时序问题啊。
仿真的时候可以把信号显示出来,为什么解决不了呢?
tb要尽量往简单点写吧,为什么会用到状态机呢
怎么会不同步,除非使用不同的时钟信号,或者状态机异步转移。用同一个主时钟同步控制。
赞成9#的说法
1. 用force試試看
2. timescale沒設?
在产生激励的时候,可以这样写@(posedge clk) ...,这样能解决问题吗?
你经常这样写,不代表这样写是好的。你后仿真怎么办?
还有,你仿真和综合的代码不一致,你如何保证这里面不会发生任何风险?
另外,小编,你做的design,如果变成了1颗芯片,在正常工作时,是否也需要外部严格配合
你的时序或者控制要求?tb,就是一个外部环境。
恩,你说的很有道理,按照他们的方法从内部抽取信号来控制激励信号的产生,确实很方便,但是不是外部环境给的,到时候成片之后,就没有内部信号抽取了,很容易发生逻辑错乱
所以现在只能慢慢调试外部激励信号
我说了啊,这个只是用于功能仿真,再说,现在的大型设计的话用modelsim做后仿真的话也太困难了吧,覆盖率很难保证,我说的只是我的个人意见,做完P&R之后用STA比较靠谱!
我也说了,你这样的话功能仿真和后仿真的design都不能说是一个,你这样的仿真能保证什么?
sta只能用来保证同步path的timing没有问题,异步路径只能依靠动态后仿,后仿真
本来就不是用来覆盖功能的。
后仿做sta只能保证时序,要万无一失,感觉还是要用modelsim做功能性的仿真,防止时序偏差影响功能紊乱
我的理解是STA分析不出来的话modelsim更不可能看得出来,应为STA设置为OCV的operating condition的时候采用的是最消极的时序分析方式。具我的理解,modelsim在进行延时标注时每个延时值都是固定的。这个我觉得属于个人喜好和方式的不同。大家各自有自己的方式,习惯了并且能在现实应用中有用了都是好方法!而且STA并不是不能仿真异步路径,只要你做个比较准确的约束,异步路径的分析也是准确的。STA是用来分析寄存器之间的路径的,并没有限制到两个寄存器之间必须是同步的。
我们公司一般采用的是modelsim/VCS做功能仿真,时序上的就交给后端软件了!
恩,一般是这样的,但是你也说道sta只能针对同步时钟信号做比较全面的分析,而且仅仅是时序上的,而我说的是为确保万无一失,还是要做个后功能仿真,查看一下,反标注延时信息之后,有没有影响到设计的具体功能信号翻转!而modelsim在对异步信号进行分析方面还是挺有 用的。
他很固执,不用继续了。
异步的定义最基本点就是时序关系不确定,用sta的结果来说异步path分析准确不准确
本来就不是一个正确的概念。这种所谓准确的分析,是以"定"分析"不定",根本不可靠。
作为一个公司的话,数字流程里居然还有仿真时多拉port的情况而且还是经常,只能说胆子挺大的。
这种问题,贴代码最有效了。
