yxm433 发表于 2012-12-28 20:07:30

fpga做spi的从机,spi_clk需要接到fpga的专用时钟脚吗

如果用fpga 做spi的从机的话,spi_clk应该接接入到fpga的专用时钟引脚吗?还是普通IO口就可以?

spi_clk有12MHz

wuyuehang 发表于 2012-12-28 20:54:42

本帖最后由 wuyuehang 于 2012-12-28 20:56 编辑

普通io就行,看看bank的电平需要匹配。
因为单片机在没有spi接口的时候就是io模拟,时序也不很精确。但是我想fpga跑的时序应该比单片机精确很多。
我 刚刚搞完sccb的总线,波形很好看,如果是单片机模拟的话估计可能sclk不会那么准。

Fourier00 发表于 2012-12-28 21:24:03

普通管教就可以了,但是还是要有一个本地时钟信号,至少要是24m以上,那两根线作为普通数据线就可以了

NJ8888 发表于 2012-12-28 21:26:27

时钟脚最好,不用本地时钟同步,直接用SCK操作

蓝色风暴@FPGA 发表于 2012-12-28 21:44:01

当然是接专用时钟引脚,接总比不接好,你接了也可以当普通IO用,为什么不接呢?

yxm433 发表于 2012-12-28 21:46:37

看来大家的意见不统一,有没实际做过的经验可以借鉴的???

NJ8888 发表于 2012-12-28 21:49:03

yxm433 发表于 2012-12-28 21:46 static/image/common/back.gif
看来大家的意见不统一,有没实际做过的经验可以借鉴的???

我接到GCLK上,因为我有8个GLCK,不用白不用

Fourier00 发表于 2012-12-28 22:55:54

当然你上全局也可以,这个不能做真正的时钟信号,一般都要一个本地时钟,lz可以找一个spi接口芯片看看,都有晶振接口管脚

redroof 发表于 2012-12-29 08:47:59

Fourier00 发表于 2012-12-28 22:55 当然你上全局也可以,这个不能做真正的时钟信号,一般都要一个本地时钟,lz可以找一个spi接口芯片看看,都 ...

如果你只干这一件事,当然可以直接用SPI时钟,就像很多串行AD一样。
如果你还要干其它事,就用本地时钟吧,因为SPI不收发数据的时候是没有时钟的

xivisi 发表于 2012-12-29 09:07:11

才12MHz 随意接吧,除非用这个时钟扇出很多

McuPlayer 发表于 2012-12-29 09:24:34

用普通IO就可以,当然也可以把GCLK当普通IO用

如果你的SPI模块非常简单,比如就是个类似SPI Memory的东西,可以用异步设计。
如果你的SPI模块只是你FGPA设计的一部分,并且要与其他模块接口,最好用同步设计。
而用了同步设计,使用什么IO口都无所谓了,GCLK和普通IO比并没多少优势。

Fourier00 发表于 2012-12-29 11:45:14

本帖最后由 Fourier00 于 2012-12-29 11:54 编辑

redroof 发表于 2012-12-29 08:47 static/image/common/back.gif
如果你只干这一件事,当然可以直接用SPI时钟,就像很多串行AD一样。
如果你还要干其它事,就用本地时钟吧 ...

如果有从器件使能可以不要本地时钟

redroof 发表于 2012-12-29 12:15:45

Fourier00 发表于 2012-12-29 11:45 static/image/common/back.gif
如果有从器件使能可以不要本地时钟

除非你这个FPGA只干这一件事啊!也就是说你的FPGA只是作为一个简单的SPI从设备。
不然,主机不给你发数据的时候,你没有时钟,啥也不能做了。
参见上面McuPlayer的说法。。。

实际使用中大部分情况是用本地时钟的,这个时候SPI_CLK用什么引脚都一样,对FPGA内部而言它根本就不是时钟,只是普通数据。
整个FPGA完全用SPI时钟工作的情况,除了学生做实验,基本碰不上。

Fourier00 发表于 2012-12-29 13:07:32

redroof 发表于 2012-12-29 12:15 static/image/common/back.gif
除非你这个FPGA只干这一件事啊!也就是说你的FPGA只是作为一个简单的SPI从设备。
不然,主机不给你发数据 ...

刚刚我说错了,其实是这样的,一般的异步设计fpga没这个能力,只能做同步设计,所以需要一个本地时钟,如果不用本地时钟fpga设计出来的接口可靠性堪忧,因为无法从异常的状态跳出来,至于有些芯片没有本地时钟,asic中有异步设计,可以做到用随路时钟,所以我觉得自己做接口的时候最好有本地时钟,同时还要考虑一些可靠性问题

redroof 发表于 2012-12-29 13:16:19

Fourier00 发表于 2012-12-29 13:07 static/image/common/back.gif
刚刚我说错了,其实是这样的,一般的异步设计fpga没这个能力,只能做同步设计,所以需要一个本地时钟,如 ...

如果你用FPGA当作一堆164和595给单片机扩展IO,当然可以没有本地时钟,直接用SPI的时钟来工作就行了,没问题的。
如果单片机不发SPI数据,整个FPGA就完全不动
这也不叫异步设计。因为你还是只有一个时钟。


dr2001 发表于 2012-12-29 13:31:07

如果用SPI的CLK驱动FPGA内部的相关逻辑,那么放在GCLK上有好处。但是这样有可能需要做数据CDC,不一定更简单。
如果用FPGA自己的时钟去过采样SPI CLK,那么就完全无所谓;只不过要求FPGA时钟要足够快。

根据情况自己选择就行了。

Fourier00 发表于 2012-12-29 13:46:28

redroof 发表于 2012-12-29 13:16 static/image/common/back.gif
如果你用FPGA当作一堆164和595给单片机扩展IO,当然可以没有本地时钟,直接用SPI的时钟来工作就行了,没 ...

有问题,挂死了,就回不来

qswsjs 发表于 2013-1-5 21:26:06

学习一下啊!!!

yuanbao502 发表于 2013-1-6 08:39:47

普通IO口,然后本地同步

kavinsun 发表于 2013-1-9 15:46:34

不需要
设置建立保持时间约束,看时序报告是否满足即可!
页: [1]
查看完整版本: fpga做spi的从机,spi_clk需要接到fpga的专用时钟脚吗