wye11083 发表于 2012-4-17 22:52:22

发现了一个秘密,RST的作用

本帖最后由 wye11083 于 2012-4-17 23:08 编辑

可能每个人都理所当然认为RST就是复位的,其实RST不仅仅是复位。
今天用飞线把LCD和一片FPGA连起来,但是LCD死活不工作,而LCD模块仿真是没问题的 。但是无论如何调,上板都不显示。难道是什么坏了?
回到仿真,发现大的模块封装也不工作了,查看LCD模块计数器,全0。郁闷了,怎么回事?想了好久,突然发现RST是直接拉高了 ,而模块中有数十个寄存器是赋初值的(!!注意初始值!!),难道是初值的问题?接上RST,上板一切正常。
即FPGA内部写的RST的另一个作用就是把要用到的寄存器全部赋给初值。有时候我的程序跑不起来说不定也跟这有关。
PS:我用的器件是S2E,老的片子,新片子应该也是这样子。对于买的开发板,RST都是接好的,一般不用特殊处理,但是对于核心板,如果写了一大堆带初值的reg,务必确保芯片内部存在RST信号,并且在上电之后先拉低一下。

把代码也传上来,H/VSync,DE控制,RGB|666,其它看接口定义。


注意不是操作什么控制器的,这就是个LCD控制器,模块有SPI总线用于输入命令,第一个字节是SPI地址,后面的看TestBench就知道怎么回事了,修改每帧的头尾空白周期数等。这只是一个最底层的控制器,没有帧缓冲,连行缓冲都没有,只有两个提前的信号告知上层准备数据。因此基于这个模块的后续开发需要先做行缓冲,再做帧缓冲。
这个顶层模块只是驱动LCD的,能让LCD显示指定的颜色。

aozima 发表于 2012-4-17 23:12:24

看MCU手册里面寄存器都有个复位值,所以RST还是复位。

wangshaosh123 发表于 2012-4-17 23:36:12

{:shocked:}地球人都知道

shangdawei 发表于 2012-4-17 23:47:36

rst 也可能给某些寄存器 置位

feiwa 发表于 2012-4-18 00:50:42

顶一下楼主分享的设计经验,技术的细节是成败的关键。

dr2001 发表于 2012-4-18 08:27:26

本帖最后由 dr2001 于 2012-4-18 08:29 编辑

别家FPGA不清楚,Xilinx的略新的FPGA(印象中S2就已经有了。)的所有REG,RAM都是能带初值的。而且新的综合器直接能把HDL的初值描述综合进去。
具体参考FPGA Editor,打开某个Slice,REG里边一般会有一个Init0/Init1的属性,那个就是上电初值。(FPGA配置完成后的初值。)

如果你非要上电复位,可以例化X家FPGA内部的一个配置逻辑模块,里边有可以用的复位信号等。具体参考对应FPGA的Lib手册。

具体是怎么实现的,参考Configuration的UG,FPGA在配置的最后几步,有对应的独立的全局复位,全局高阻信号的解锁。

shangdawei 发表于 2012-4-18 20:32:15

dr2001 发表于 2012-4-18 08:27 static/image/common/back.gif
别家FPGA不清楚,Xilinx的略新的FPGA(印象中S2就已经有了。)的所有REG,RAM都是能带初值的。而且新的综合 ...

请教是否 Xilinx的略新的FPGA 不要外部 rst 也可以 ? 配置完成后, 初值立即生效吗 ?

dr2001 发表于 2012-4-18 21:40:13

本帖最后由 dr2001 于 2012-4-18 21:44 编辑

严谨而准确的回答是参考Xilinx的手册。Configuration和User Guide手册中有相关的内容。

配置完成之后的大致顺序是:GTS解锁,IO启动;GSR,FF初值生效;GWE解锁,FF可以翻转。所以初值是能保证的。
这个顺序是在Generate Programming File里可配置的。
应用例如,X家固定分频生成CLKEN可以用串行移位寄存器,小分频数很省资源。

shangdawei 发表于 2012-4-19 15:38:22

dr2001 发表于 2012-4-18 21:40 static/image/common/back.gif
严谨而准确的回答是参考Xilinx的手册。Configuration和User Guide手册中有相关的内容。

配置完成之后的大 ...

xilinx 配置和启动



andyskyboy 发表于 2012-8-29 14:42:01

马上看看什么情况。。。。
页: [1]
查看完整版本: 发现了一个秘密,RST的作用