本帖最后由 lcytms 于 2018-11-18 13:44 编辑
0939
状态机你回到哪了?
状态机搬完了以后,是s12吧。
应该回到s1。
S1是对的。
对了,放的时间不够。
我停得早了一点,停晚了就看到了。
没错。
仿真结果都是正确的。
还是粗心大意。
我们不是不会,粗心大意造成的,产品竞争,在这方面是很吃亏的。
0940
明明我们会,就是粗心大意造成的。
就是非常简单的一个逻辑的判断。
现在我们来看。
你有没有做反标?
(没有)。
你有图吧?
data_move这个没图是吧?
没图也可以做反标。
如果没有做,我就现在给做了。
做反标以后就发给大家。
然后我们就可以进入工程的课程了。
这个0:0的都出来了。
0941
用的是Stratix II。
然后呢,我们要执行反标,执行反标之前,有这么几件事要做。
这边要跟工程对接了。
这边仿真都过了。
首先我们要把它的配置管脚要让出来。
从assignments菜单项进入device对话框,选择device and Pin options,选择多用途管脚。
ASDO、nCSO,这两根线,它默认是做通用线。
这根线不能让它反标出来。
要把它设置为输入三态。
这样就不会为它分配了。
其它的我们暂时用不到,就可以做通用。
Data已经把它作为三态了,就是专用的管脚。
0942
过一次分析和综合。
我们在顶层上还有一些管脚,现在是用不到的。
0943
比方说像source的地址,24位的地址。
目标地址。
这些呢,都是由上游的逻辑,它并不是真正分配端口的。
这个呢,可以做成虚拟管脚。
总共有96个脚。
其中有48个脚,是做地址线。
这个地址线,其实我们用不到。
因为它是逻辑。
是内部,不是顶层的端口,所以我们用不到。
把它分配成虚脚。
从assignments菜单项进入assignment editor对话框。
0944
节点。
点list。
选择source_addr和target_addr。
点OK。
在category下面选advanced,高级的。
点assignment name黄色部分,拖到最下面一行,虚拟管脚。
也可以打字母V。
然后在值上打上on。
0945
再做一次分析和综合。
本帖最后由 lcytms 于 2018-11-18 17:39 编辑
0946
稍后还得做一次,要做全编译。
这个管脚只有48了。
这个虚脚给你标注出来了。
虚脚就不会给你分配了。
我们现在进它的Pin Planner,管脚布局里的local的地址线就不再列出来了。
虚脚嘛,这个不需要分配的嘛。
它是内部逻辑嘛。
但是现在我们要做什么事?
现在mem前缀信号,它是3.3V的,肯定不对。
现在运行脚本。
Tools-Tcl scripts,运行它的pin_assignments,run即可。
Run了以后,给你约束出来了。
0947
然后呢,我们给它指定dqs的脚。
现在是16位的,我们dqs是两根线,dqs,dqs。
dqs我放到这边,当然你也可以选下面走。
双击,做dqs。
dqs我放到这。
就是从哪个方向出线,你得告诉它。
它是随路时钟,所有EDA的线都会绑定,围绕着它一起做布局。
然后全编译。
对于高速板,这种反标至关重要。
因为很多高速逻辑,它跑不起来,设计上无论你的逻辑写得多么完美,最后你的高速性能不能实现,一切都是为空。
0948
老板让你跑到800M,你说我跑不到800M,600M可不可以?
无论其它的性能怎么怎么好,你只要跑不到800M,一切都是空谈。
关键看装配。
过30%差不多就有门。
35%之前,它是检查布局的,没问题了。
