原创 FPGA研发之道(15)-设计不是凑波形(五)接口设计

2014-7-20 21:19 2139 11 12 分类: FPGA/CPLD 文集: FPGA研发之道

作为FPGA工程师来说,碰到新的问题是设计中最常见的事情了,技术发展趋势日新月异,所以经常会有新的概念,新的需求,新的设计等待去实现。不是每个通过BAIDU或者GOOGLE都有答案。

因此,新的设计经常会有,那如何实现?

假设,FPGA需要设计一个接口模块,那我们就需要了解一下几个问题:

(1)       同步接口还是异步接口模块;

(2)       有哪些信号,功能是什么?

(3)       信号之间时序关系是什么?

(4)       传递的效率能够达到多少;

(5)       等等!

谁会给予这些答案,有一个好的tutor就是“datasheet”,一般来说FPGA设计一个接口模块,必然与其他硬件电路进行连接。

 假如是外部连接接口为总线接口,那至少包括却不限于以下信号,

(1)       地址:能够支持的最大地址空间,数据和地址是否复用接口;

(2)       数据:一般读数据和写数据复用同一接口,一般数据信号此时都为三态。三态信号有OE信号。

(3)       读写命令。单次的读操作、单次的写操作

(4)       是否支持突发传输,burst的读写操作

(5)       同步还是异步。

(6)       控制信号之间的相位关系及建立保持时间的要求。

20140720211641116.jpg

   图为 TI 系列35X系列处理器的GPMC的接口,由图中可以看出其时钟、地址、数据等操作信号。

 如果是同步并行接口,一般用于数据流传输,如AD/DA的输入或输出,网口PHY的输出信号等,一般的同步并行信号,通常包括,(1)时钟信号、(2)数据、信号(3)使能信号等。

   20140720211711978.jpg     上图为RMII的数据接口,图中可以看到其控制信号,数据信号及使能信号。作为流传输接口,一般可以支持双向双工传输。上述两种接口描述了两种主流的FPGA的外部接口,即总线接口和流传输接口。通过软件定义和FPGA内部逻辑设计,总线接口可以实现流的传输(总线接口实现双向传输,可以通过轮询和中断两种方式实现),同时流传输接口也可以实现总线读写功能。可以根据具体的使用环境进行设计。

      SERDES接口则是另一种数据流的传输接口, 现在FPGAserdes最高可以支持到28Gbps。实际上为了满足减少板级连线,并且提高传输速率的需求。集成更多的SERDES也是FPGA发展的趋势。

20140720211739499.jpg

上图为SERDES的框图,由PCSPMA模块构成,PMA一般为硬核IPPCS为软核或者硬核模块,收发独立,且都为差分信号(serdes将在后续章节详述)。值得一提的是,SERDES接口对FPGA逻辑的接口一般固定位同步并行接口,数据信号位宽都较大。

这些接口如何做详细设计,一方面可根据其上述共性特点,这能够对其特点有大概的认识,另一方面则是FPGA连接的器件的DATASHEET。根据这些器件接口功能的描述和支持的特性。FPGA可根据需要和功能特性,进行有选择的实现(例如总线接口不需要brust操作,则可只实现单次的读写,就可以满足业务的需求,进行功能裁剪和简化等等)。

  接口设计完成,FPGA就要对设计进行基本测试。对于流接口来说,能够支持环回的功能的话(即将收到数据流再发回),就极大方便测试。对于总线接口则需要支持对FPGA内部某地址的读写操作的测试。这就属于可测性设计的范畴。(后续将专题详述FPGA的可测性设计)。

如果一个模块没有任何的输入输出,其再复杂的功能也等同一块石头,或者只有输入,没有输出也等同一块石头。因此输入和输出则是一个设计的第一步。  

文章评论1条评论)

登录后参与讨论

用户1726050 2015-7-14 16:41

写的太好了!!!
相关推荐阅读
阿昏豆 2015-11-21 23:25
把大象关冰箱的步骤 --- NAND FLASH控制器磨损管理算法芯片化硬实现
把大象关冰箱的步骤 --- NAND FLASH控制器磨损管理算法芯片化硬实现   目前,存储领域包括eMMC,SATA SSD ,PCIe SSD等控制器是一个非常热门的领域。通常,由于...
阿昏豆 2015-11-09 22:25
平行宇宙的追逐--异步FIFO控制器的设计
  平行宇宙的追逐--异步FIFO控制器的设计。    在逻辑设计中,通常会用到异步FIFO,异步FIFO控制器是经典的异步信号传输的范例,通过FIFO控制器与异步双端口RAM的组合实现数据的...
阿昏豆 2014-08-23 23:36
FPGA研发之道(25)-管脚
     管脚是FPGA重要的资源之一,FPGA的管脚分别包括,电源管脚,普通I/O,配置管脚,时钟专用输入管脚GCLK等。 (1)电源管脚:    通常来说: FPGA内部的电压包括...
阿昏豆 2014-08-10 22:22
FPGA研发之道(24)-控制(下)
   首先依次回答上篇提出的几个问题:       第一个问题:如何避免状态机产生lacth 示例如下,通过在always(*)语句块中,添加默认赋值,ns_state = cs_state; alw...
阿昏豆 2014-08-07 21:53
FPGA研发之道(23)-控制(上)
本质上说,FPGA的模块设计就是将输入转化成想要得到的输出结果。而除了某些简单模块,即在当拍内完成,即将输入进行逻辑操作后,再输出。(如简单加法器等)。其余大部分的设计需要通过时序逻辑和组合逻辑混合实...
阿昏豆 2014-08-06 23:12
FPGA研发之道(23)-控制(上)
本质上说,FPGA的模块设计就是将输入转化成想要得到的输出结果。而除了某些简单模块,即在当拍内完成,即将输入进行逻辑操作后,再输出。(如简单加法器等)。其余大部分的设计需要通过时序逻辑和组合逻辑混合实...
我要评论
1
11
关闭 站长推荐上一条 /2 下一条