FPGA通过某种通用接口(如SPI)和外部芯片通信时,FPGA如何实现才能满足芯片手册给出的时序要求呢?
如SPI接口中,FPGA通过模拟产生时钟和串行数据与一个外部芯片进行通信,其建立和保持时间是有时序要求的,这个时序要求可以通过外部的手册上获得。那么在FPGA中模拟这个接...
如SPI接口中,FPGA通过模拟产生时钟和串行数据与一个外部芯片进行通信,其建立和保持时间是有时序要求的,这个时序要求可以通过外部的手册上获得。那么在FPGA中模拟这个接口要如何保证这个时序要求呀?以保证FPGA发送过去的数据能被外部芯片正确接收的。
展开
3个回答
展开全部
首先,对照外部芯片的电气特性部分,确认电平连接方式,在FPGA的管脚约束满足外部芯片的电气要求即可。
其次,在FPGA设计中满足外部器件的时序要求,这包括两部分,一个是功能实现,一个是时序约束。基本功能实现,可以通过编写代码的方式,同时查看外部芯片的时序要求,满足setup/hold 要求,就针对SPI的时序而言,其CLK和DI、DO的时序要求很简单,很容易满足(如果实现不会,就看这时序图设计电路,或网上下载个成熟电路,把他们看明白)。而时序约束,通过编写SDC等文件实现,你这里只需要周期约束即可满足,而其他的offset、miti-cycle等约束是否需要,在设计过程中确认。
最后,其他要求,如jitter等,需要依靠FPGA器件自身性能满足。这个不需要设计,只需要查看FPGA DATASHEET即可。
其次,在FPGA设计中满足外部器件的时序要求,这包括两部分,一个是功能实现,一个是时序约束。基本功能实现,可以通过编写代码的方式,同时查看外部芯片的时序要求,满足setup/hold 要求,就针对SPI的时序而言,其CLK和DI、DO的时序要求很简单,很容易满足(如果实现不会,就看这时序图设计电路,或网上下载个成熟电路,把他们看明白)。而时序约束,通过编写SDC等文件实现,你这里只需要周期约束即可满足,而其他的offset、miti-cycle等约束是否需要,在设计过程中确认。
最后,其他要求,如jitter等,需要依靠FPGA器件自身性能满足。这个不需要设计,只需要查看FPGA DATASHEET即可。
追问
谢谢您的详细回答!!您的意思是外部芯片的setup/hold要求也是通过编码方式来实现,而不是通过约束来实现吗?如果是,那如何编码呢?
追答
约束也是实现方式之一,只是在目前的应用中,你只是要满足SPI的SK和DI/DO的setup/hold的时序,这部分完全可以通过代码实现。如何编码?你感觉很困难,或者无从下手,估计是你陷入思维错区了,你仔细看下SPI芯片的手册,数据的setup是如何描述的,都是配合CK和DI/DO一起描述的,比如SPI的一种情况,(FPGA端、主用)CK的下升沿输出DO数据。那么针对SPI芯片接收而言,使用CK的上升沿采样数据,因此你设计的数据 Dsetup time基本保证在1/2 period(CK),这样的话远远满足芯片要求的setup time。其余模式类似。因此,SPI设计中主从的模式选择很重要就是这样,简化了setup/hold time的设计。
迪凯特科技(北京)有限公司
2023-07-28 广告
2023-07-28 广告
单片机串口通信的原理是利用单片机的串口通信模块,通过把数据转化为一位一位的用时序方式传送数据,实现单片机与外部设备之间的数据通信。
串口通信的概念非常简单,串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通信慢,但是串口可以...
点击进入详情页
本回答由迪凯特科技(北京)有限公司提供
展开全部
既然是FPGA模拟时序那么这个时间要求当然也就是在此范围内的,也就是你实现的时序就是按照人家的要求来的,或者按照最标准的SPI接口时序做也可以
追问
谢谢你的回答,不过能否解释的更详细点呢。。FPGA本身并不知道外部芯片的时序要求。如芯片手册中给出时钟沿采数时,其建立时间不能小于3ns,那我在FPGA中模拟SPI时序时,怎么保证产生的时钟和送出的BIT数据能满足这个要求呢?靠什么方法呢?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
fpga在一个端口中给外部新片一个clk就可以
追问
谢谢你的回答,我想问的是外部芯片手册中给出的时序要求(如建立时间和保持时间等)怎么满足呢?
追答
同样通过io口来满足。比如ad需要转换周期,只需在fpga内添加一个定时器,在某个时间段内给外部新片脉冲。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询