文献标识码: A
DOI:10.16157/j.issn.0258-7998.172005
中文引用格式: 刘焱,周圣泽,罗军,等. 基于FPGA的并串转换电路硬件实现[J].电子技术应用,2017,43(12):21-24,28.
英文引用格式: Liu Yan,Zhou Shengze,Luo Jun,et al. Hardware implementation of parallel-to-serial circuit based on FPGA[J].Application of Electronic Technique,2017,43(12):21-24,28.
0 引言
并串转换电路作为一种重要的数字信号传输途径,在SPI、I2C、UART等接口协议及高速SERDES、PCIE等通信接口上具有广泛的应用。在近年来的集成电路发展中,针对并串转换电路的设计主要有三种途径,分别是采用集成电路定制的设计方式、基于可编程逻辑阵列(Field Programmable Gate Array,FPGA)的设计方式以及采用软件的设计方式。基于集成电路定制的并串转换电路设计方式由于流片成本高昂,通常仅应用在一些对传输速率要求非常高的场合,如1.25 Gbps的并串转换集成电路[1-2]、2.5 Gbps的PCIE并串转换电路[3]、1.25 GHz的差分收发芯片[4]以及4G高速并串转换电路[5]等。而采用软件的并串转换设计方式通常只适应于传输速率要求较低的场合,同时由于软件设计方式通常要占用处理器的时间,在频繁通信的场合会降低处理器的性能。基于FPGA的并串转换电路实现由于能够很好的在成本和性能之间取得一个折中,因而获得了广泛的发展,如在SPI[6]、I2C[7-8]等接口协议中的应用。
在基于FPGA的并串转换电路实现中,采用计数器的方法来实现并串转换电路是应用最多的方法,如孙志雄等采用计数器的方法实现了16位输入/8位数据输出的并串转换电路设计及仿真[9],王冲等采用计数器的方法实现了9位的并串转换电路设计[10],王鹏等采用计数器的方法实现了N位的并串转换电路设计[11],薛沛祥等采用计数器的方法实现了任意位的并串转换电路设计[12]。由于在基于FPGA的设计中,资源使用与速度是一对矛盾体,因而如何根据具体的应用需求以最小的资源来获得最大的性能是工程设计的目标[13]。
针对不同的应用需求,基于FPGA对不同的并串转换电路进行了硬件实现,分别比较分析了采用移位寄存器、计数器及组合逻辑条件判定三种并串转换硬件电路结构的资源消耗与速度性能,并通过设计仿真对并串转换硬件电路的功能进行了验证。实验结果表明采用移位寄存器的并串转换电路实现方法具有最优的速度性能表现,可适应于高速应用的领域。采用计数器的并串转换电路实现方法具有最优的性价比表现,具有资源与速度的综合能力优势。采用组合逻辑条件判定的并串转换电路实现方法在一些对寄存器资源有严格限定的场合具有较高的应用价值。
1 硬件实现结构
资源和性能是硬件电路结构的一对矛盾体,如何设计更好的硬件电路结构使其资源使用更小、性能更高成为研究者的追求目标。基于FPGA的并串转换电路有不同的硬件实现结构,为了在其资源使用和性能之间找到一个最优的平衡,分析比较了三种不同的并串转换电路硬件结构,分别如图1、图2和图3所示。
方法1的并串转换电路硬件实现结构采用了移位寄存器的设计方案,通过设计N个移位寄存器,并初始化为0,在每个时钟周期左移一个寄存器(置1),来控制串行输出数据的位宽。这种设计方案由于组合逻辑设计较少,因而关键路径的延迟理论上会更短,整个硬件电路的速度会更高。
方法2的并串转换电路硬件实现结构采用了计数器累加的设计方案,通过设计一个位宽为log2N的计数器,进行N次累加后来控制串行输出数据的位宽。这种设计方案减少了寄存器资源的使用量,其关键路径由组合逻辑的加法器决定,关键路径延迟会比方法1更长一些。
方法3的并串转换电路硬件实现结构采用了组合逻辑条件判定的设计方案,通过对N位并行输入的数据依据奇偶特性进行位与及位或组合逻辑判定,进而来对串行输出数据的位宽进行控制。这种设计方案在硬件描述语言代码上显得更简单点,其寄存器资源使用与方法2相差不大,但由于采用了更多的组合逻辑运算,因而其关键路径延迟在三种方法中应当是最长的。
2 设计仿真验证
并串转换硬件电路采用模块化和层次化的设计思路,基于相同的代码设计层次(如图4所示)对三种不同的硬件实现结构进行设计,以便尽可能地对模块进行复用。在代码设计层次中,并行输入数据的位宽由参数文件进行定义,顶层仿真文件和硬件电路实现文件通过对参数文件进行引用来实现参数的传递。
设计仿真流程如图5所示,采用Verilog硬件描述语言对上述三种不同的并串转换硬件电路结构进行了设计实现,并基于Quartus Prime 16.0、Modelsim SE 10.2c及Debussy 5.4v9对设计电路进行了综合、仿真和验证。图6展示了采用方法2并串转换硬件电路结构的功能仿真结果,仿真结果表明并串转换硬件电路设计达到了预期的功能。
3 实验结果及分析
为了对不同硬件电路结构的资源使用和性能进行分析,实验选取了不同位宽的并行输入数据进行了综合。图7中展示了不同硬件实现方法消耗的逻辑资源随数据位宽变化的影响,从图中可以发现随着硬件结构位宽的线性增加,其硬件实现消耗的逻辑资源也在线性增加。同时,方法1消耗的逻辑资源最多、方法3其次、方法2最少。这是由它们的硬件实现结构决定的,方法1中采用了移位寄存器的实现结构,相比于方法2中采用的计数器实现结构在同等数据位宽条件下需要更多的逻辑资源来表征数据状态的变化。而方法3中采用的是组合逻辑条件判定硬件实现结构,相比方法2使用了更多的逻辑资源,但比方法1的逻辑资源使用量要低。
不同硬件实现方法寄存器资源随位宽的变化如图8所示,当数据位宽越大时,其消耗的寄存器资源更多。其中,方法1由于采用了移位寄存器的实现结构,消耗的寄存器资源最多。而方法2和方法3中消耗的寄存器资源相差不大。
不同硬件实现方法最高综合速度随位宽的变化如图9所示。随着位宽的增加,其消耗的逻辑与寄存器资源越来越多,能够工作的最高工作频率也逐渐降低。从图中可以发现,方法3的最高工作频率相对最低,这是由于方法3中采用了组合逻辑条件判定硬件实现结构,其关键路径延迟相对最长。
为了从成本和性能两个方面对方法1、方法2和方法3的硬件实现结构进行综合的比较和评估,采用式(1)所示的加权等效评估方法。式(1)中S∈{Cost_A,Cost_R,Speed},其中Cost_A和Cost_R分别表示某种硬件实现结构消耗的等效逻辑资源及寄存器资源。Speed则表示某种硬件实现结构通过综合工具综合后能够达到的最高综合速度。N表示不同位宽硬件结构的总个数,其中n=1,2,…,N。an表示在第n中位宽条件下硬件实现结构消耗的资源或者综合的性能。
采用式(1)所示的评估方法对不同的硬件实现方法进行等效评估,比较结果如表1所示。从表中可以看出,方法1具有最高的性能优势,但其消耗的资源也是最多的。表1中同时列出了不同硬件实现结构速度与成本的比值,方法2具有最好的效费比,其在单位逻辑资源和单位寄存器资源下能够贡献最多的速度性能。
通过上述对不同硬件实现结构的对比及分析,可以发现方法2在硬件实现结构的成本与性能之间具有最优的平衡特性,因而可以在SPI、I2C、UART等接口协议以及集成电路老化试验激励加载等对速度要求不高的领域中广泛应用。同时,在对传输速率要求很高的应用领域中,则需要优先选择方法1的硬件实现结构。
4 结论
并串转换电路在集成电路芯片驱动、老化试验信号激励、SPI、I2C及UART等接口协议数据传输领域具有广泛的应用,基于FPGA的并串转换电路实现由于具备可编程、灵活等特点在集成电路测试验证中获得了更多的关注。针对基于FPGA的并串转换电路资源使用和性能之间的矛盾,对比分析了三种不同方法的并串转换电路硬件实现结构。实验结果表明采用计数器的并串转换硬件电路结构在资源使用和性能之间具有最好的性价比,采用移位寄存器的并串转换电路结构具有最优的速度表现。
参考文献
[1] 赵文虎,王志功,吴微,等.1.25 Gbps并串转换CMOS集成电路[J].固体电子学研究与进展,2003,23(1):73-78.
[2] 郭亚炜,张占鹏,章奕民,等.一种1.25 Gbps CMOS以太网串并/并串转换电路[J].微电子学,2003,33(1):54-55,59.
[3] 黄佳.高性能2.5 Gbps PCI Express并串转换电路的设计[J].广西师范学院学报(自然科学版),2009,26(3):55-59.
[4] 杨毓军,王永禄,周述涛.一种超高速并串转换电路的新实现方式[J].微电子学,2006,36(2):145-147,153.
[5] 朱正,邱祖江,任俊彦,等.一种全CMOS工艺吉比特以太网串并-并串转换电路[J].通信学报,2002,23(1):70-76.
[6] 王珏文,金伟信,蔡一兵,等.基于FPGA的SPI总线接口的实现[J].现代电子技术,2010,(14):102-104.
[7] 张家会,熊先越,曾丽珍.基于FPGA的I2C总线设计[J].光通信技术,2011 (9):40-41.
[8] 钟小敏,王小峰.I2C总线接口协议设计与FPGA实现[J].现代导航,2016 (4):291-294.
[9] 孙志雄,谢海霞.基于FPGA的高速串并/并串转换器设计[J].现代电子技术,2014,37(8):151-152.
[10] 王冲,汪宝祥.基于FPGA的串行通讯接口设计[J].微处理机,2016 (3):73-76,80.
[11] 王鹏,程芸,董书莉.基于FPGA的多格式数据传输设计[J].电子测量技术,2014,37(1):70-75.
[12] 薛沛祥,宋志刚,李墩泰.基于串行通信的任意位数据传输的verilog实现方式[J].电子科学技术,2014,1(1):50-54.
[13] JUN L,QIJUN H,SHENG C,et al.High throughput Cholesky decomposition based on FPGA[C].6th International Congress on Image and Signal Processing,2013:1649-1653.
作者信息:
刘 焱,周圣泽,罗 军,王小强,罗宏伟
(工业和信息化部电子第五研究所,广东 广州510610)