FPGA验证

2024-10-23

FPGA验证(精选7篇)

FPGA验证 篇1

0 引言

微处理器的研究是计算机科学与技术的核心研究内容之一,其更新换代更是计算机行业迅速发展的强劲动力。而微处理器的演变一方面依赖于生产工艺上的进步,另一方面则取决于其微体系结构上的设计。从科学计算、工业应用再到民用数码产品,应用领域的拓宽和专用计算机发展的迫切需求正期待着新型体系结构的诞生。而一个新的微体系结构的出现是否符合其应用领域更高层次的需求则需要一个评价环境或平台。在计算机微体系结构的研究领域,对于不同微体系结构的处理器的性能验证,更多地是通过理论分析来进行和完成的,再通过对数学模型的建立和分析,得出最终结论。此外,软件仿真也是常用的方法。这两种方式在一定程度上虽然能够对系统性能进行客观、科学评价,但仍存在其局限性,例如,数学模型的分析效果与模型建立的精确程度密切相关;而软件仿真则更是只能对微处理器的部分性能指标进行模拟,而不可能仿真实现所有环节。经过研究分析可知,一个通用的硬件验证平台则可以弥补模型仿真的不足,实现更为贴近实际的效果评价。这种平台对微体系结构的研究和微处理器的开发都大有助益。具体来说,可以帮助研究开发者缩短设计周期,在第一时间快速验证设计的正确性;同时,不同微体系结构的处理器也可以在这个平台上进行性能的比较。

国外现有的验证平台可分为软件模拟平台和硬件验证平台。

其中,软件模拟平台是通过软件模拟系统来对CPU设计进行正确性验证。常见的软件模拟工具有:Simics、Synopsys公司的VCS、Cadence公司的NC Verilog和Verilog XL、Mentor Graphics公司的ModelSim等[1]。前述工具中,Simics仿真平台是一种商用仿真系统,在追求性能的同时,也保证了仿真的精度[2]。

另外,硬件验证平台则是对原型实物在电路板上进行实际验证。

其中,BEE系统由美国Berkeley大学开发,是一种基于多FPGA的可重构硬件平台,属于较高端的仿真计算系统[3]。

RAPIDO项目由菲利普研究院主持,包含两个部分:原型系统和PC机。原型系统为含有FPGA和ARM核的处理器以及存储器的嵌入式系统,并通过PCI-to-PCI桥与PC机相连[4]。

如果一个待测试的系统已经形成了完整的机器,使用真实的应用来进行测试则是很好的方法[5],事实上,常常使用的是基准测试程序,例如SPEC CPU基准程序集。该程序集由整数程序和浮点程序组成,其性能评价的标准是程序的运行时间[6]。

国内的硬件验证平台主要分为两大类。

一类是专门面向特定款微处理器的,例如,国防科大的多核流体系结构原型验证平台,该平台基于多FPGA实现,设计了片间流优化机制,可支持多核流体系结构的互联映射[7]。又如,中国科学院计算技术研究所开发的针对高性能处理器龙芯2F的硬件验证平台,既能验证其逻辑功能,又能测试其性能指标[8]。

而另一类平台则以面向基础教学为主。例如,清华科教仪器厂出品的TEC-XP与TEC-CA,这两种系统有自己的指令系统和监控程序,能够与PC机相连,可进行联机操作和执行比较完整的程序,用户可自行设计带有流水及Cache的处理器,而该系统可对其跟踪运行[9]。另有一种FD-MCES计算机体系结构实验仪,采用FPGA为主芯片,配有实验控制电路、键盘、打印机、开关、LED等,可完成RISC计算机系统结构相关实验[10]。还有一部分教学实验平台只能对确定的处理器进行验证,指令系统不可修改[11]。

本文设计了一种基于FPGA的微体系结构验证平台,该平台由FPGA硬件验证板和上位机软件分析系统组成。其实现的功能为:可以将设计完成的微处理器下载到FPGA芯片当中,由硬件验证板构成该微处理器能够正常工作的最小系统,同时,板上拥有可简单显示处理器性能指标的光电资源;硬件验证板也可以和上位机进行通信,将该处理器工作时的性能参数传输给上位机,由运行在上位机的软件系统进行分析,从而,为微体系结构的分析研究提供依据。由于条件所限,该平台的硬件部分没有实际制作,本文通过使用现有的开发板,搭建了一个原型系统,验证了该平台的功能。

1 硬件验证板的设计

1.1 硬件平台的基本功能

硬件验证板是整个系统的基础,为微处理器的工作提供了底层平台,其逻辑框图如图1所示。该硬件平台具有的功能主要有:下载调试、基本输入/输出、串行通信、功能扩展。

1.2 硬件平台的结构

硬件验证平台的设计以FPGA为核心,外围电路有:电源模块、JTAG下载调试模块、显示输出模块、基本输入模块、串行通信模块以及功能扩展接口。其平面结构如图2所示。

在整个硬件平台系统中,串行通信模块、输入模块中的去抖动单元、显示输出模块中的程序运行周期数统计单元等是在FPGA芯片上实现的,而其他部分则要通过分立元件在电路板上实现。

1.3 硬件平台的工作流程

当微处理器下载到FPGA芯片中,输入输出模块为其基本功能的验证提供了切实有效的保障,可以运行一段代码以测试处理器对IO的读写控制。输入模块中提供的微动开关可以取代时钟电路而为CPU的运行提供手动脉冲时钟信号,以实现指令的单拍运行;同时,显示输出模块的数码管会实时显示处理器内部各相关流水段寄存器的最新状态,还可以统计一段代码运行的周期数,以比较不同体系结构对于程序执行效率的影响。串行通信模块则采集了与系统性能指标相关的更多参数,并实时传送给系统计算机,供软件系统使用。功能扩展模块则为进一步的应用预留了发展空间,预留的接口可以安排SD卡读写接口、以太网接口、VGA视频接口等等,以利于对加载了操作系统后更为复杂的系统性能进行全面测试。

2 软件评测系统的设计

2.1 软件系统的基本功能

软件系统的功能是通过JTAG接口进行FPGA下载,并读取由串行接口发送的性能指标相关数据,而且还要对其进行分析。本系统对待测处理器跟踪监测的功能除了在硬件平台上进行呈现之外,还可通过PC机软件界面显示更多的信息。在这一过程中,PC机和硬件平台通过串行接口进行实时通信,硬件平台将微处理器的各种状态参数随时发送给PC机,而在软件界面上,这些信息则将以文字和图形化的方式加以清晰显示。图3为软件平台的逻辑结构。

2.2 软件系统实现的CPU性能评价

除基本功能外,软件平台还将对性能参数进行处理,以得到量化的处理器基本性能指标,如计算每一条指令的平均时钟周期数CPI:

CPI=CPU时钟周期数/IC (1)

其中,IC为指令的条数。

计算CPI所需的参数将由FPGA传送给CPU。

同时,还可计算MIPS(每秒百万条指令数):

ΜΙΡS=CΡΙ×106(2)

一定程度上,MIPS可反映系统的性能。

另外,软件平台还将统计得到Cache命中率与Cache容量的关系、与块大小的关系、与组数的关系,并以图形的方式加以绘制和实现。

该软件还可实现对流水线的跟踪分析。随着系统的单步运行,软件界面上将动态、同步显示流水线的时空图,而且还将计算出流水线的实际吞吐率,计算公式为:

ΤΡ=n(k+n-1)Δt(3)

其中,n为任务数,k为流水的段数,Δt为时钟周期。

此外,还可以计算流水线的加速比、流水线的效率等性能参数。

3 OpenRISC处理器的功能验证

为了对系统自身功能进行验证,还需要一款能充分利用本系统功能的微处理器。本文采用32位的开源软核处理器OpenRISC,对该处理器的指令系统、寻址方式、数据表示、寄存器结构以及5级流水线结构、具有Cache的存储系统在开发验证平台上进行跟踪测试。

OpenRISC是开放源代码的精简指令集计算机处理器,采用Verilog HDL实现了寄存器传输级描述。其性能介于ARM7和ARM9之间[12]。在对该处理器微体系结构的验证过程中,需要深入研究OpenRISC的结构、流水线及相关性设计方法,也要进一步研究Cache结构和设计方法。

3.1 OpenRISC处理器在FPGA开发板上的移植

本课题对OpenRISC开源软核处理器的源码基于现有FPGA开发平台进行了移植。该开发板采用Altera公司的型号为EP4CE17C8N的FPGA,外设配备了数码管、微动开关、LED发光二极管、RS232接口,JTAG接口等,可以基本满足移植测试需要。移植的具体工作包括:构建了适合OpenRISC开源软核处理器指令运行的RAM模块,构建了系统时钟及系统复位模块,使用Verilog硬件描述语言编写顶层模块,将CPU、总线、GPIO、串行通信接口等主要功能模块进行了组合并且针对现有的FPGA开发平台进行了配置与改造,如图4所示。

OpenRISC开源软核处理器的移植结果可以通过一个简单的C语言程序实例在OpenRISC处理器上运行来验证。该C语言程序的实现功能为,控制开发板上的LED,与上位机进行串行通信,同时发送一组数据。经验证,该示例程序可有效控制开发板上的资源并正确实现了与系统计算机之间的串行接口的通信,从而证实了OpenRISC在本开发板上的成功移植。

3.2 基于Ubuntu系统的OpenRISC汇编指令程序的交叉编译环境的搭建与应用

作为一种嵌入式处理器,在开源软核处理器OpenRISC上运行的程序需要在PC机环境下进行交叉编译。该部分工作主要是在Ubuntu系统下进行了交叉编译环境的搭建,同时,编写Makefile设定编译、连接、转换等流程,最后,还要将编译得到的机器码转换成可以在OpenRISC的RAM中运行的mif文件。同时,对开源软核处理器OpenRISC的指令集进行了研究,编写了可以在开发板上运行的OR1200汇编语言指令程序,实现了OpenRISC处理器通过GPIO对开发板上资源的读写控制操作,为下一步处理器的性能评测奠定了良好基础。

3.3 在FPGA开发板平台上对开源软核处理器OpenRISC的汇编指令实现跟踪

使用Verilog硬件描述语言对汇编指令单步跟踪模块进行了设计,实现了通过微动开关控制OpenRISC汇编指令的单步运行。同时,通过对指令计数模块的编写,可以实现对程序运行周期数的统计,从而为验证微处理的指令流水的执行效率提供了基础准备。目前,对汇编语言指令运行周期数的统计是通过数码管模块实现并显示的。在进一步的工作中,这一显示也可通过串口通信传送到系统计算机,最终在系统计算机界面上显示出该数据。此处运行的是用于单步跟踪的汇编程序,其具体功能是将一个数据通过开发板上的LED进行输出显现。

3.4 编写串行通信程序,实现OpenRISC与系统计算机的通信

本串行接口通信程序的基本功能是实现了待测试微处理器与上位机之间的通信。借助这一通道,硬件平台上待测试微处理器内部各寄存器中每一时刻所存储的内容都可以实时地传送至上位机,便于上位机对这些数据实行进一步的分析。同时,传送的数据也可以是存储器内某一存储单元或某一存储区域的数据;也还可以传送Cache中存储的数据等

等。总之,通信程序为系统计算机软件能够准确分析该待测试微处理器的性能提供了有力的数据支持与通道保证。

4 结束语

本文所介绍的系统能够很好地完成对微体系结构进行研究验证的设定目标,硬件平台和软件系统的设计也能够满足对微体系结构进行基本验证的要求,同时预留了功能扩展的空间,使得系统具有进化升级的可能。在现有FPGA开发板上构建了一个原型系统,并针对开源软核处理器OpenRISC进行了测试,实现了对指令的跟踪以及待测试处理器与系统计算机之间的通信,真实验证了本平台的基本功能,因而表明该系统具有一定的实用价值。

参考文献

[1]胡建国,曾献君,陈亮,等.CPU验证平台的研究与实现[J].微电子学,2006,1:49-55.

[2]CHRISTENSSON M,ESKILSON J,FORSGREN D,et al.Simics:A full system simulation platform[J].Los Alamitos:Computer,2002,2:50-58.

[3]CHEN Chang.Design and applications of a reconfigurable computing system for high performance digital signal processing[D].University of California,Berkeley,2005:1-2.

[4]BUSA N,ALKADI G.RAPIDO:a modular,multi-board,hetero-geneous multi-processor,PCI bus based prototyping framework for the validation of SoC VLSI designs[C]∥Rapid System Prototyping,Proceedings.13 th IEEE International Workshop on,2002:159-165.

[5]HENNESSY J L,DAVID A.Patterson.计算机系统结构——量化研究方法(第四版)[M].白跃彬,译.北京:电子工业出版社,2007-08.

[6]PATTERSON D A,HENESSY J L.Computer Organization and De-sign:The Hardware/Software Interface,Third Edition[M].San Francisco:Morgan Kaufmann Publishers,2005.

[7]柴俊.多核流体系结构原型验证平台的研究与实现[D].长沙:国防科技大学,2009:8.

[8]张瑾,王剑.基于龙芯2F处理器的硬件验证平台的设计与实现[J].计算机工程与科学,2009,31:270-275.

[9]汤志忠,杨春武.开放式实验CPU设计[M].北京:清华大学出版社,2007-06.

[10]涂时亮,陈利峰,马国森,等.计算机体系结构实验教程[M].北京:高等教育出版社,2008-02.

[11]李山山,汤志忠,周继群.基于FPGA的开放式教学CPU的设计与测试系统[J].计算机工程与应用,2005,14:98-99.

[12]倪继利,陈曦,李挥.CPU源代码分析与芯片设计及Linux移植[M].北京:电子工业出版社,2007-04.

FPGA验证 篇2

集成电路设计业正面临着一系列的挑战,SOC(System-on-Chip)已经成为集成电路设计的发展趋势和业界的焦点,SOC性能越来越强,规模越来越大,已经变得越来越复杂,其开发周期也越来越长。在SOC芯片设计中,仿真验证所占比重越来越大,据有关数据的统计分析,仿真验证占SOC芯片研发周期70%的时间,SOC逻辑错误是造成SOC芯片设计失败而重新流片的主要原因,这对投资回报率和产品上市时间造成了不利和负面的影响。采用先进的设计与仿真验证方法成为SOC设计成功的关键。建立基于大容量FPGA的SOC硬件仿真验证平台,可以加速逻辑设计应用仿真验证,减少SOC芯片流片风险。

处理器IP核是SOC设计中最为关键和核心的部分,目前在SOC 设计中广泛使用32位 RISC 处理器,如ARM 公司的ARM7/9处理器、IBM 的PowerPC处理器、MIPS 公司的MIPS处理器、Motorola 的MCore处理器、ARC公司的ARC处理器等,这些处理器均属于商业内核,使用者必须支付相对昂贵的授权费。近年来开放性源码的理念已经从软件领域(如Linux 等)扩展到了集成电路领域,出现了OpenCores等专门发布免费IP核源代码的组织。目前有三种开放的32位处理器IP核: GaislerResearch 公司的LEON、OpenCores 组织的OpenRISC1200和Altera 公司的NiosII。

上述三种开放性处理器IP核具有高性能、低成本、良好的可配置性和完善的开发环境,受到了学术界和工业界的普遍重视。其中LEON和OpenRISC1200 主要是面向ASIC 设计,它们具有开放的源代码以及相关ASIC 平台开发的支持,LEON支持SPARC V8指令集,并通过欧洲航天局应用验证,开发环境也比较完善,目前国内研究和应用LEON核较多,本文以验证LEON核为例研究并设计FPGA逻辑验证平台。

2 SOC验证平台硬件设计

目前市场主流的FPGA厂商有Xilinx、Altera、Lattice、Actel、Atmel等等,本文以Altera Cyclone II FPGA为例。Altera Cyclone II采用全铜层、低K值、1.2伏SRAM工艺设计,裸片尺寸被尽可能最小的优化,性价比较高,同时集成嵌入式18比特x18比特乘法器、专用外部存储器接口电路、4kbit嵌入式存储器块、锁相环(PLL)和高速差分I/O,Cyclone II主要规格如表1所示:

使用Altera QuartusII 对LEON2内核(不带FPU、USB控制器、以太网控制器)进行综合,LEON2内核占用18000 个逻辑单元(Logic Elements),如带FPU、以太网络控制器、USB控制器等IP核,综合后逻辑单元将达到35000个。

考虑到SOC验证平台的扩展性和性价比,选用EP2C50为仿真验证FPGA,配置芯片为EPCS16,USB PHY控制器采用 MAX3454EETE,以太网PHY控制器采用DM9161,硬件架构如图1所示。

SOC验证平台硬件电路包括电源电路、复位电路、时钟电路、配置电路、调试电路、存储电路、扩展接口、USB等硬件模块。

2.2 硬件模块设计

2.2.1 电源电路

SOC验证电路需要多路电源,主要有5V、3.3V、2.5V、1.8V、1.2V电源,其中3.3V、2.5V、1.8V、1.2V由LDO电源芯片从5V转换而来,5V电源电流负载能力不低于5A,3.3V、2.5V、1.8V、1.2V不低于800mA。

2.2.2 复位电路

复位信号包括按键复位信号、上电复位信号、JTAG复位信号、外围电路复位信号,其中上电复位信号由MAX811生成,上电复位电路如图2所示。

2.2.3 时钟电路

25MHz、24MHz有源晶振产生的时钟信号分别连接到EP2C50的CLK1、CLK2,25MHz时钟信号用于LEON核时钟,24MHz时钟信号通过PLL倍频为48MHz时钟,用于USB核时钟。

2.2.4 配置电路

EP2C50用SRAM来存储配置数据,由于SRAM具有易失性,所以每次EP2C50上电,都需要下载配置数据,用主动串行配置模式来配置,该模式最高DCLK频率可达40MHZ。EPCS16串行配置芯片的接口有四个信号:串口时钟输入(DCLK),串行数据输出(DATA0),AS数据输入(ASDOI),和片选信号(CS#),配置电路如图3所示。

2.2.5 调试电路

通过EP2C50的JTAG接口可对验证平台进行调试和配置。JTAG主要包括TCK、TDI、TDO、TMS,接口定义如图4所示。LEON核集成DSU调试单元,当上电DSU_BRK信号为高时,处理器进入DSU调试模式,DSU调试器可读写LEON所有寄存器、cache、外部存储器等。

2.2.6 存储电路

通过数据线D[24]、D[25] 配置存储电路的数据总线宽度,在系统上电复位信号RESET#的上升沿,D[24]、D[25]的值被锁入内部锁存器,处理器通过D[24]、D[25]决定数据总线宽度,数据总线宽度配置方式如表1所示。

为了测试SOC验证平台是否支持各类存储器,在SOC验证平台上集成不同类型、不同数据总线宽度的存储器,存储器类型和型号如表2所示。

2.2.6 扩展接口

为调试和扩展方便,在SOC验证平台上预留出扩展接口,扩展接口含数据总线、地址总线、片选信号等,扩展接口定义如表3所示。

2.2.7 USB

由于EP2C50上未集成USB PHY电路,为了调试USB电路,需在SOC验证平台上集成USB PHY电路,本验证平台选择MAX3454芯片,该芯片支持USB1.1和USB2.0,USB PHY电路如图5所示。

SOC验证平台还集成串口、以太网、音频、PWM、ADC、PS/2、I2C、SPI、ISO7816、LPC等接口,由于篇幅有限,本文不再详细描述。

3 SOC验证平台逻辑调试和验证

当SOC验证平台的各个硬件模块调试成功后,通过Synplify和Quartus软件综合LEON源代码,利用QUARTUS完成布局布线,将文件下载到DPCS16,然后进行调试各IP模块,验证流程如图6所示。

SOC逻辑验证步骤如下:

3.1设计输入

创建好工程文件后,添加设计输入文件,设计输入文件可包含VHDL、Verilog HDL、AHDL等文本文件,也可有存储器数据文件及第三方EDA工具生成的文件。典型文本输入工具有UltraEdit等,工程中添加文件后,需要给设计分配管脚和时序约束。

3.2 前仿真

主要验证在不考虑电路的逻辑和门的时间延迟的理想环境下的逻辑行为和设计构想的一致性,典型工具有Mentor公司的ModelSim、Synopsys公司的VCS和VSS、Aldec公司的Active、Cadense公司的NC。

3.3 综合

综合的主要功能是将HDL语言翻译成最基本的与、或、非门、RAM、触发器等基本逻辑单元的网表,并根据约束条件优化所生成的门级逻辑连接,输出网表文件,以用于布局布线。综合流程如图7所示。

除了QuartusII自带综合工具外,第三方综合工具有LeonardoSpectrum、Synplify、FPGA Compiler II等。

3.5 布局和布线

将综合生成的网表文件输入到QuartusII布局布线工具中,布局布线将工程逻辑和时序要求与EP2C50器件的可用资源相匹配,将每个逻辑功能分配给最好的逻辑单元,进行布局布线,并选择相应的路径和管脚分配。

3.6 后仿真

后仿真也叫时序仿真,在综合及布局布线后,电路已经映射到特定工艺环境后,考虑器件延时的情况下对网表文件进行仿真,仿真流程如图8所示。

3.7 编程和功能验证

通过JTAG接口,利用Quartus编程器将布局布线生成的pof/sof文件下载到EPCS16。重新启动,通过DSU调试器验证每个IP模块的功能,并通过硬件驱动软件、操作系统和上层应用软件协同调试验证。

4 总结

本文提出了一种基于Altera EP2C50 FPGA的SOC验证平台的软硬件设计方法,并给出了电路框图及逻辑验证流程图。在EP2C50 FPGA内实现LEON 处理器核、存储控制器及USB等各种IP核,构成一个非常实用的SOC逻辑验证平台。

完成逻辑设计输入、前仿真、综合、布局布线、后仿真后,将pof/sof文件下载到EPCS16,通过DSU调试器在线对IP核、硬件驱动软件、操作系统和上层应用软件进行协同调试,从而大大缩短了SOC芯片的开发时间。

参考文献

[1]曾繁泰等.EDA工程方法学.清华大学出版社,2003

[2]曾繁泰,王强,盛娜等.EDA工程的理论与实践.电子工业出版社,2004

[3]丰玉田,付宇卓,赵峰.大规模SoC设计中的高效FPGA验证技术的研究与实现,电子技术应用,2006,(02)

[4]夏飞,刘光明.基于FPGA组的ASIC验证原型系统和逻辑分割算法的研究与实现.计算机工程与科学,2006,(09)

FPGA验证 篇3

关键词:画质处理算法,FPGA硬件验证平台,大屏幕液晶电视机,HDMI视频输入,LVDS输出接口,Vby1输出接口

1 引言

随着家用电视机向智能化和大屏幕化方向发展, 市场对电视机的画质体验提出了更高的要求。目前, 4K×2K分辨率的大屏幕电视机已经逐步成为市场的主流, 但是电视节目源大部分还是FHD高清电视格式以及分辨率更低的网络视频源。于是, 通过高性能的画质处理算法, 比如高级图像缩放算法、图像细节增强算法、图像递归降噪算法和网络视频噪声消除算法对输入视频信号进行加工处理, 以尽可能高的品质在大屏幕电视机上实现图像显示就显得非常必要。由于视频图像的动态特性, 画质处理算法效果的验证除了在计算机上通过软件仿真外, 最终的效果验证需要在硬件平台上实际运行检验。硬件平台实现方案一般有两种, 一种是制作芯片验证画质处理算法, 另一种是通过FPGA平台验证画质处理算法。制作芯片进行验证的方案周期长、灵活性差、成本高昂, 而FPGA平台由于其内部丰富的逻辑资源、灵活的可编程性以及高速的性能, 成为验证画质处理算法硬件验证平台的首选。

2 FPGA验证平台整体结构

F P G A验证平台采用日本某公司基于X i l i n xxKintex-7的T B-7K-325T-I MG开发板作为基板进行二次开发, 扩展接口板利用TB-7K-325T-IMG开发板提供的高密度、高速度接口, 将所有的外围电路设计成一个整体扩展板和基板相结合, 这样大大提高了基板和接口板之间电气连接和机械连接的可靠性, 避免了FPGA平台在上电使用过程中因为接口板松动导致接触不良损坏电路板。接口板上包含了画质处理算法验证需要的从视频输入到液晶显示屏驱动的完整的电路单元。其中包括HDMI1.4A输入接口电路、TB-7K-325T-IMG开发板、Vby1输出接口电路、LVDS输出接口电路、液晶显示屏接口电路、微处理器控制电路、RS232接口电路、复位电路和时钟电路、电源产生电路等。FPGA验证平台是一款非常通用的画质处理算法开发平台, 在功能上具有非常好的通用性, 结构上具有非常高的可靠性。如图1所示。

3 FPGA验证平台单元电路

3.1 TB-7K-325T-IMG开发板

T B-7 K-32 5 T-I M G开发板是日本某公司设计的一款基于Xilinx Kintex-7系列FPGA芯片的专门面向视频处理应用的通用开发平台, 该开发平台的参考设计套件还提供了LVDS接口实现方案, 以及视频处理不可缺少的DDR3控制器实现方案, 大大简化了开发平台的使用难度。为方便用户进行二次开发, 搭建适合于用户应用的新的开发环境, 开发板提供了两个HPC (High Pin Count) 和两个LPC (Low Pin Count) 外围扩展接口, 扩展接口的电压可以在2.5V和3.3V之间选择, 接口电平可以是2.5VVCMOS电平、3.3V CMOS电平或者高速LV DS差分电平信号。多种接口电平选择和数目庞大的IO为外接扩展接口提供了灵活的选择空间, 每个HPC和L P C接口的内部还有专门的时钟输入引脚, 这样的引脚安排使得在接收外界扩展板输出信号的时候, 能对输入的时钟利用FPGA芯片内部的PLL和DLL资源对时序进行调整, 以便更好地满足接口的时序要求。开发板上提供了丰富的时钟资源, 能够满足画质处理算法逻辑对外接时钟输入的要求。开发板上提供的XC 7 K 32 5 T-2 F F G 9 0 0 C E S芯片, 内部集成有大量的存储器, 方便画质处理算法对行存的大量需求。

3.2 HDMI1.4A输入接口电路

H DM I1.4A输入接口电路是视频信号的输入通路, 可以接收480P, 576P, 720P, 10 8 0 P, 4K×2 K等多种格式的视频输入。HDMI1.4A输入接口电路采用ADI公司设计的A DV 7619芯片, 这款芯片自带硬件HDCP处理功能, 大大简化了芯片H DCP控制的软件要求。ADV7619芯片内部还集成有色度空间转换功能, 可以实现视频信号在不同色度空间的转换, 在不经过内部色度空间转换模块, 420格式输入的情况下, ADV7619芯片可以支持输入4K×2 K@6 0H z信号, 这个功能对画质处理芯片算法验证至关重要。ADV7619芯片输出的信号可以设置为DDR输出方式, 奇偶点输出方式等, 降低输出时钟的频率, 降低电磁干扰。如图2所示。

3.3 Vby1输出接口电路

V by1输出接口电路是将T B-7 K-325T-I MG开发板输出的LVDS格式的液晶显示屏驱动信号, 通过扩展板上的转换芯片变成驱动液晶显示屏的V by1格式信号。传统的液晶显示屏驱动接口长期以来采用的都是LVDS格式信号, 但是随着液晶显示屏分辨率的不断提高和帧频的不断提升, 满足显示要求所需的LVDS接口线数目越来越多, 增加了生产成本, 降低了系统的可靠性。针对市场对液晶显示屏驱动接口的要求, 日本某公司制定了Vby1接口标准。Vby1接口标准非常类似于现在以太网使用的物理层传输标准, 只是传输方向为单向。Vby1接口标准采用CDR技术, 没有单独的时钟信号, 而是通过8B/10B编码方式, 将时钟信息嵌入到数据流中, 然后在接收端通过CDR技术分离出数据和时钟。这样的处理方式消除了数据和时钟之间存在的延时偏差问题, 使得数据的传输速率不再受时钟和数据延时偏差的影响。这样的话, 数据线的传输长度得到了很大的延伸, 最高数据传输率受到的限制只是信号衰减损耗, 这可以通过对信号进行预加重的办法来加以改善。Vby1接口的数据传输速率可以达到3Gb/s以上, 一对V by1数据线传输的数据, 相当于6对LVDS信号传输的数据量 (包含一对时钟信号) 。

F P G A验证平台的V b y1输出接口电路使用8片THine公司的THCV215芯片, 每片芯片将两组LV DS信号转换成两路V by1输出信号, 每组LV DS信号包含一对差分时钟和5对数据信号, 这样的话可以支持16路Vby1数据输出信号, 基本上可以满足各种常见液晶显示屏的驱动要求。THCV215芯片具有预加重和驱动能力控制输入端, 可以根据工作环境要求进行选择, 确保Vby1数据信号在比较坏的工作环境下也能保证较高的信号品质。由于数据编码中采用了8B/10B编码方式, 使得数据信号中包含的直流成分大致平衡, 从而使得Vby1输出信号可以采用电容隔离的交流耦合方式。交流耦合方式克服了接口共模电平不同带来的影响, 使得接口之间的连接非常方便。THCV215芯片还提供多种像素位数选择, 包括6位、8位、10位和12位, 从而满足不同视频应用的要求。如图3所示。

3.4 LVDS输出接口电路

为了支持LVDS接口的液晶显示屏, FPGA验证平台提供了LVDS输出接口。LVDS输出接口直接连接到液晶显示屏驱动插座接口, 采用100R阻抗差分对进行布线, 并按照LVDS标准的要求作等长匹配。TB-7K-325T-IMG开发板的HPC和LPC接口信号都是按照差分对安排的, 在TB-7K-325T-IMG开发板上, 差分对走线的特性阻抗设计为100R, 正好是常用LVDS标准差分走线的特性阻抗。利用TB-7K-325T-I MG开发板参考设计提供的例子可以很方便地生成所需要的LVDS IP, 然后利用TB-7K-325T-I M G开发板上能支持LV D S信号速率的输出引脚就能非常方便地搭建出所需的LVDS接口。目前, FPGA验证平台的LV DS接口电路最多可以支持4组LV DS信号输出, 基本上可以满足大多数LV DS接口液晶显示屏的驱动要求。

3.5 TB-7K-325T-IMG开发板接口

T B-7 K-325T-I MG开发板扩展接口由4个电路板连接座组成, 包括两个HPC连接座和两个LPC连接座。每个连接座上的接口信号都是按照差分对形式组织并在开发板上对走线进行了等长匹配。差分走线的特性阻抗是100R, 单端信号线的特性阻抗是50R, 符合常用差分线和单端走线的特性阻抗标准。这些接口信号既可以作为差分对使用, 也可以作为单端信号使用, 接口信号的电平可以设置为LV DS信号电平或者2.5 V CMOS、3.3V CMOS接口电平, 使用起来非常方便。在使用LVDS输出接口或Vby1输出接口的情况下, TB-7K-325T-IMG开发板输出的是LVDS信号, 这时候所用连接座中的信号按照差分方式组织。而在用作接收HDMI1.4A输入接口电路输出的数字视频信号的情况下, 所用连接座中的信号电平设置为3.3V CMOS电平, 以便跟HDMI1.4A接收芯片A DV7619输出信号的电平相匹配。在有一些应用场合, 输入TB-7K-325T-IMG开发板的信号电平有可能是2.5V CMOS电平, 可以通过TB-7K-325T-IMG开发板上相应的跳线将连接座的接口电平设置为2.5V, 就能轻松实现接口电平的匹配, 无需使用非常复杂繁琐的电平转换电路。通常使用的电平转换电路不但连线复杂, 而且增加时钟和数据的延时, 使得接口逻辑信号的时序恶化。

3.6 微处理器控制电路

在整个FPGA验证平台中, 共需要三组IIC控制信号。第一组IIC控制信号负责控制HDMI1.4A接口芯片ADV7619, 完成对芯片内部寄存器的读写控制;第二组IIC控制信号负责控制TB-7K-325T-I MG开发板FPGA芯片内部画质处理算法模块控制寄存器的读写;第三组IIC控制信号负责控制液晶显示屏的控制接口, 通过液晶显示屏的IIC控制接口对内部的寄存器进行读写。这三组IIC总线的实现都是通过51系列微处理器C8051F020芯片使用软件模拟IIC时序实现的。通过软件模拟实现IIC总线时序的方式比较灵活, 调整和修改都比较方便。C 8 0 51F 0 2 0芯片内部集成了程序F L A S H, 无需外界程序存储器。C8051F020微处理器的调试通过J TAG接口, 无需使用专门的硬件仿真器, 调试方便工作可靠。C8051F020微处理器芯片只需外接石英晶体产生时钟信号就可以工作, 外接电路简单, 集成度高。C8051F2020微处理器芯片还具有丰富的端口, 可以用来完成其他控制和显示功能, 比如驱动外接的LED用作状态显示。如图4所示。

3.7 RS232串行接口电路

R S 2 3 2串行接口电路用来完成微处理器C 8 0 51 F 0 2 0和上位机之间的通信, 方便通过外部的上位机向微处理器C8051F020传送控制信号。R S 2 32串行接口逻辑通过微处理器内部的硬件电路实现, 在FPGA验证平台电路板上采用MAXIM公司MAX3232E芯片完成RS232电平转换功能。M A X3232E芯片使用单一的3.3V电源, 通过内部电荷泵的形式生成RS232接口需要的高电压。此外, M A SX 3232E芯片具有的非常好的抗静电特性, 可以使得RS232接口可以适应非常恶劣的电气工作环境。如图5所示。

3.8 复位电路和时钟电路

F PGA验证平台的时钟全部采用T B-7 K-325T-I MG开发板上的时钟资源, 配合使用F PGA芯片内部的PLL和DLL资源生成所需的全部时钟信号。在F P G A验证平台上, 需要三个复位信号, 一个用来复位TB-7K-325T-IMG开发板FPGA芯片内部的逻辑;一个用来复位C8051F020微处理器芯片;一个用来复位HDMI1.4A输入信号接收芯片ADV7619。各个复位信号之间没有逻辑上的相关性, 在功能上完全独立。为了调试方便, 便于在使用过程中隔离问题, 三个复位信号都采用专门的硬件电路生成。F PGA验证平台需要的三个复位信号都是低电平有效, 复位信号生成电路采用了MAXIM公司设计的适用于3.3V电源环境的MAX811T芯片。MAX811T芯片只有四个引脚, 具有上电复位功能和掉电复位功能, 并有手动复位按键输入端, 可以消除手动复位时的抖动。不论是上电复位还是手动复位输入情况, 都能输出非常稳定的复位信号。如图6所示。

3.9 电源产生电路

FPGA验证平台需要三种电源, 包括3.3V电源、1.8 V电源和12V电源。3.3V电源和1.8 V电源主要用作数字逻辑电路部分的供电, 12V电源则是显示屏接口的需要。在FPGA验证平台上, 12V电源通过TB-7K-325T-IMG开发板的连接座引到扩展板上, 而3.3V电源和1.8V电源则是使用两片TI公司的LM Z14203芯片从12V电源降压得到。LM Z14203芯片是内部集成滤波电感的同步整流型DC-DC变换器, 具有外接元件少, 输入电压范围广, 输出电压范围广的优点, 输入电压最高可达42V, 输出电压最低可以到0.8V, 最大可以输出3A电流。LMZ14203芯片还有过流保护功能, 可以在很大程度上保护后面的芯片和走线不会因为过流损坏。LMZ14203在输出1.8V和3.3V这样的标准电压的时候, 都有非常完整的参考设计电路和反馈环路补偿参考, 设计比较方便。如图7所示。

4 结束语

FPGA验证 篇4

关键词:1553B总线,接口,现场可编程门阵列,光纤

0 引言

MIL-STD-1553B[1](数字式时分制命令/响应型多路传输数据总线)由美国国防部于20世纪70年代末提出,它采用曼彻斯特编码方式和冗余的总线型拓扑结构,具有非常好的时钟同步能力及容错机制,极大地简化了电子设备之间的互联,因而被广泛应用于对可靠性要求较高的军事、航空、航天等领域[2]。

随着1553B总线优越性能不断体现,我国相关领域的应用需求不断增多,其关键地位也日益突出。但由于1553B协议本身较为复杂、国内技术相对落后,在1553B总线的设计中大多采用国外的协议接口芯片,典型如DDC公司的BU-61580等。一方面,这类芯片不仅价格昂贵,而且容易受国外限制;另一方面,在实际应用中,芯片许多功能略显多余,不能进行灵活设计。

现场可编程门阵列FPGA可将大量逻辑集成在单片IC中,其内部资源丰富,相应EDA开发工具功能强大[3],是理想的片上系统设计与实现平台。FPGA具有开发周期短、成本低、灵活性高等诸多优点,基于对协议规范的分析,通过FPGA来实现MIL-STD-1553B总线接口是可行的。本文提出了一种基于FPGA的1553B总线接口设计方案,并编写VHDL代码进行仿真,最后在FPGA上完成了设计验证,实现了传统1553B协议数据的1 Mb/s电缆传输和3 Gb/s以上光纤传输。

1 MIL-STD-1553B总线介绍

MIL-STD-1553B是一种命令/响应型多路传输总线,它采用冗余的总线结构,在当前传输线发生故障时可立刻切换到冗余传输线上,防止通信中断。同时,1553B协议严格规定了消息格式,限定了每条消息的最大传输数据量及总线单元的最大响应时间,并规范了总线耦合方式、电缆电气特性等,从各个方面确保总线传输的高可靠性。

1553B总线包含三种总线单元:总线控制器BC、远程终端RT和总线监视器MT,各单元在总线控制器BC的调度下有序地进行通信。总线上数据以字为基本单位进行传输,分为命令字、状态字和数据字,每个字包含20位。总线单元间每一次数据的交换称为一条消息,1553B协议规定了10种消息格式,除此之外其他格式的消息均为非法消息。总线采用曼彻斯特编码方式,方便接收端提取同步时钟,简化了总线结构[4]。

2 1553B总线接口整体设计方案

总线接口是外部系统与总线之间的数据交换媒介,其主要功能是完成总线协议的处理。根据1553B协议的特点,总线接口整体设计方案如图1所示。

由图1可知,总线接口包括模拟收发器、曼彻斯特编解码器和协议处理逻辑三大模块。其中,模拟收发器完成FPGA输出信号与总线信号之间的电平转换,可由专用转换芯片完成,而曼彻斯特编解码器和1553B协议处理逻辑是接口的主要组成部分,完成数据编解码和协议处理,通过FPGA实现。总线接口通过一定的地址、数据和握手信号与外部系统相连。

3 曼彻斯特编解码器模块设计

3.1 1553B总线数据格式

信号编解码的设计方案由总线传输层特性决定,1553B消息字格式和曼彻斯特码型如图2所示。

1553B总线以字为单位进行数据传输,每个字包含20位,其中前3位为同步头,后17位为数据位和奇偶校验位,如图2(a)所示。

总线数据传输速率为1 Mb/s,采用曼彻斯特Ⅱ双相码编码方式,每位数据中间均有一个跳变沿,由正到负的跳变表示逻辑‘1’,由负到正的跳变表示逻辑‘0’,其码型对应关系如图2(b)所示。

3.2 编码器设计

编码器的设计相对简单,主要完成对待发送消息字的曼彻斯特编码,并将其并串转换后输出。由于曼彻斯特码每位数据中间均有跳变,故发送时需将每一位分割成两位,分别发送。其工作过程为:

(1)同步头编码,若为数据字同步头,则编码为“111000”(由高位到低位,下同),若为状态字或命令字同步头,则编码为“000111”;

(2)数据和奇偶校验位编码,若为‘0’,则编码为“10”,若为‘1’,则编码为“01”;

(3)按由低到高的顺序将编码后的40位数据串行输出。

FPGA采用16 MHz主时钟,由于编码后每位数据对应0.5μs,故将主时钟分频后产生2 MHz时钟来控制编码器发送40位数据,每个时钟沿发送一位,正好满足1553B总线1 Mb/s的速率要求[5]。

3.3 解码器设计

解码器主要完成消息字的解码,并将其串并转换后输出,其工作过程为:

(1)检测到总线上有效电平,解码器开始工作;

(2)同步头解码,检测到指令字和状态字同步头用“011”表示,检测到数据字同步头用“100”表示;

(3)16位数据位和1位奇偶校验位解码;

(4)将解码后的消息字(20位)并行输出。

同步头和数据位检测示意如图3所示。

由1553B协议可知,同步头包含三个位时,在1.5个位时处有跳变。如图3(a)所示,同步头到来后,解码器连续采集48个数,理论上,采用16 MHz时钟,如果检测到24个‘0’和24个‘1’,则表示收到有效同步头,但考虑到信号上升时间及下降时间等因素,实际若检测到22个或者23个‘0’和‘1’,就可以判定同步头有效,进行下一步数据的接收。

数据位包含一个位时,在0.5个位时处有跳变。如图3(b)所示,在每个数据中间部位,若前一时钟采样到‘0’,后一时钟采样到‘1’,则表示当前数据位为‘0’,反之则是‘1’。另外,如果采到的数没有跳变,为全‘0’或者全‘1’,则产生错误标志,通知协议处理逻辑或子系统进行相应的错误处理。

4 协议处理模块设计

4.1 协议处理模块响应流程

协议处理模块实现BC,RT,MT三种总线终端的协议处理,在FPGA模块设计之前,根据1553B协议对协议处理模块三种工作模式下的响应流程分别进行分析设计。

4.1.1 BC模式[6]

BC(总线控制器)是1553B总线的核心,总线上任何类型的数据交换都由它发起。BC模式下接口响应流程设计如图4所示。

MIL-STD-1553B协议规定的总线指令可分发送指令、接收指令和方式指令三种,共能实现四种类型的功能:RT到BC的数据传输、BC到RT的数据传输、RT到RT的数据传输和总线管理。根据图4,BC模式下接口主要工作过程为:

(1)根据外部系统需求发送相应命令字,发起总线传输;

(2)根据指令类型的不同,进入不同响应流程,主要包括数据字发送、数据字接收和状态字接收等;

(3)消息完成后进行消息结束处理,主要包括消息结束标志的产生,差错处理,以及根据收到的RT状态字判断总线终端状态等。

需要注意的是,BC如果在规定的时间内没有收到RT状态回复,则需重新发送命令字进行重试(Retry)。

4.1.2 RT模式[7]

RT(远程终端)是1553B总线上的指令/响应型终端,它响应BC发送的指令,按要求接收或发送数据,在规定时间内回送状态字,并服从BC的总线管理。RT模式下接口响应流程设计如图5所示。

根据图5,RT模式下接口主要工作过程为:

(1)收到命令字后进行指令分析,根据指令类型进入相应的响应流程;

(2)按照流程进行数据字接收、发送,并回复状态字;

(3)消息完成后进行消息结束处理,主要包括消息结束标志的产生,差错处理,以及特殊方式指令下方式标志的产生等。

4.1.3 MT模式

MT(总线监控器)是总线上的监听单元,它监控总线上的信息传输,完成对总线的上原始数据的记录,但它本身不参与总线的通信。

MT模式接口的功能较为简单,主要进行指令字、状态字和数据字的接收并将其写入相应缓存中,方便以后提取分析,可通过BC模式或RT模式下接口相应的子模块实现。

4.2 协议处理模块FPGA总体设计

根据以上三种模式下接口响应流程的分析,对协议处理模块各FPGA子功能模块进行了划分[8],总体设计框图如图6所示。

协议处理模块主要由数据接收部分、数据发送部分和数据缓存部分组成,此外还包括超时检测、地址译码及读写控制、中断管理等辅助部分。由于三种模式下某些功能重复,为了提高FPGA资源利用率,设计时充分考虑了相应模块的模式复用,整个协议处理逻辑可在外部模式选择信号的控制下工作在BC,RT和MT模式。

16 MHz的全局时钟通过时钟管理模块为各FPGA功能模块提供工作时钟,各模块间通过一定的握手信号互联,保证协议处理逻辑有序工作。整个协议处理模块的基本工作原理如下:按照1553B协议规范,通过接收器接收总线上的数据并存入缓存,通过发送器取出缓存中的数据并发送到总线上,同时不断以中断和握手信号与外部系统进行通信,通知外部系统向缓存中写入待发送数据或从缓存中读取已接收数据,并共同完成差错处理和协议逻辑的管理[9]。

5 设计仿真与验证

根据设计方案,编写了重要模块的FPGA代码,模拟实现BC功能和RT功能,采用Active-HDL软件仿真,其中BC向RT的数据传输仿真结果如图7所示。

仿真通过后,在Virtex-5 FPGA[10]平台上对设计进行了验证,如图8所示。将BC功能模块和RT功能模块的代码经ISE综合、布局布线后分别下载到两块开发板中实现,开发板通过串口与PC机通信。PC机将指令和数据写入FPGA相应寄存器中,BC和RT在PC机指令的控制下进行1553B协议通信。验证过程中通过示波器查看模拟总线的波形,并通过ChipScope观察和比对协议收发数据。

同时,为提高接口性能,用光纤代替传统电缆传输介质,采用8B/10B编解码代替曼彻斯特编解码,并利用FP-GA内嵌RocketIO内核,进行了传统1553协议数据的光纤传输[11],传输过程数据比对ChipScope采样如图10所示。

验证结果表明,BC和RT功能模块能够正常按照1553B协议进行数据的发送和接收,完成基本1553B协议的处理,实现1553B协议数据的1 Mb/s电缆传输和3 Gb/s以上光纤传输,数据比对无误,说明该接口设计方案实际可行,具备开发应用价值,同时也为光纤1553接口的设计提供了一定参考价值。

6 结语

本文提出一种基于FPGA的1553B总线接口方案,该接口采用模块化和通用性设计,能够工作在BC,RT和MT三种模式,实现曼彻斯特编解码,并完成1553B协议的处理。编写VHDL代码对设计方案进行了仿真和验证,证明了其可行性,同时对光纤1553接口的设计进行了探索性研究。目前,1553B接口芯片主要依赖进口,若能积极开展该方面的研究,开发出具有自主知识产权的通用IP核,对于摆脱国外限制,降低成本,提升我国在该领域的自主竞争力具有重要意义,其应用前景非常广泛。

FPGA验证 篇5

1 去隔行算法

1.1 算法改进

去隔行的实质就是对隔行电视信号进行插补,重建奇偶场中空缺的行信息,将场图像还原成帧图像[4]。在众多空域插补算法中边缘检测算法运算量比较少,而且效果比较好,是一种比较实用的算法。然而这种传统检测方法无法预测较低角度的边缘方向,而且一旦误判边缘方向,不但无法消除锯齿现象,还会严重影响图像品质。同时传统边缘检测算法只适用于小范围的运动,对大范围的运动,效果并不理想。

因此本文对传统边缘检测算法进行了改进,通过扩大搜索范围,以实现小角度插值;此外参数MAD值不仅包含对角线上点对的绝对差值,而且还加入了临近像素点对的绝对差值,从而保证了搜索最优位置的插值与逐行图像中实际像素值的近似度。图1为改进的算法流程图。

1.2 边缘检测

边缘检测就是在待插补图像中逐点检测各个待插值点边缘上各点的特性,其特性由检测点的亮度Y0与相邻点的亮度Yi的差值来确定。绝对亮度差:

设置一个阈值T,如果∆Y≥T,则认为该点不在边缘上,否则该点在边缘上。差值的符号反应了亮度的边缘方向,小于零则表示亮度由高到低变化,该点在负边缘上,否则该点在正边缘上。

在横向上用待插补图像第二行像素点的亮度值减去第一行的亮度值,得到亮度差值DX,如此操作,直至得到最后一行与倒数第二行像素点的亮度差,此时只得到了row-1行的亮度差,最后一行亮度差补零。绝对亮度差DX与行门限值threshoudx相比较,如果则EX=1,反之为0。纵向上,用第三列像素点的亮度值减去第一列的亮度值,直至得到最后一列与倒数第三列像素的亮度差,同样最后一列亮度差补零,并根据列门限值threshoudy可以得到纵向的边缘信息DY,EY。

1.3 图像插值

根据边缘信息DX,EX,DY,EY对隔行图像进行插值。图像插值的流程图如图2所示:

从流程图可以看出图像插值的步骤:

1):读入图像的YUV值,边缘信息:DX,EX,DY,EY。设置门限值Threshold和搜索长度Slength。Threshold为经验值,Slength设为8。

2):判断当前插值点是否位于图像的边界上。边界的范围由搜索长度Slength决定:如果icol-2-Slength时,则认为插值点是边界,反之不是。

3):若此点是边界,那么插值点的值为上下两个像素点的均值,若不是边界跳转到(4)。

4):以待插值点为中心,分别在顺逆时针方向上搜索,寻找对角线上具有相同边缘的点对,若边缘相同记为1,否则为0,将顺逆时针的搜索结果分别存在VDIR和VREW中。

5):计算待插值点在顺逆时针对角线方向上相邻三对像素绝对差值之和MAD,若对应的VDIR或VREV为1,则与MAD_CEN-TER进行比较,找出最小值;若为0则不比较。

6):若(5)中比较出的较小值仍为MAD_CENTER,则此插值点的值为上下两个像素点的平均值。

7):若(5)中比较出的最小值不是MAD_CENTER,则判断最小值在顺时针方向上还是逆时针方向上。

8):若(7)中判断最小值在顺时针方向上的某条对角线上,则插补点的插值为此对角线上两个像素的平均值。

9):若(7)中判断最小值在逆时针方向上的某条对角线上,则插补点的插值为此对角线上两个像素的平均值。

通过这个九个步骤可以求出插补点的插值,经过同样步骤可将隔行图像插补成逐行图像。

1.4 算法硬件架构

图3为算法硬件架构图。其工作过程为:首先将隔行RGB信号转换为YUV信号,并将YUV数据送入插值模块和YUV转RGB模块;APB模块配置搜索长度,门限值,亮度阈值等参数;将亮度信号Y及亮度阈值thresholdx,thresholdy送入边缘检测模块;将计算出的边缘信息DX,EX,DY,EY,及搜索长度Slength,门限值Threshold送入插值模块,计算图像插值。最后将所得的逐行YUV信号转化为RGB信号,完成去隔行处理。

2 验证平台

验证平台采用模块化的设计原则,借鉴自顶而下的代码设计思想,整个系统分为六个模块:Flash读模块,SDRAM初始化模块,SDRAM写模块,SDRAM读模块,隔行VGA时序产生模块,去隔行模块。平台的结构如图4所示:

2.1 Flash Memory读写模块设计

Flash Memory作为闪速存储器,是近年来发展很快的新型半导体存储器。它既有ROM的特点,又有很高的存取速度,而且易于擦除和重写,功耗很小,同时价格也非常低。平台用的是SPANSION公司的S29GL064A型号,容量为8MB Flash Memory。

控制面板:控制面板是Altera公司DE2_70开发板自带的一个人机交互界面。Flash Memory每写入一个数据需要特定的命令序列,操作比较繁琐,而控制面板可以很容易的将大量数据写入Flash Memory中。因此用控制面板替代Flash写模块,将图像的隔行R、G、B数据写入到Flash Memory中。

Flash读模块:模块利用了乒乓RAM的设计技巧,将数据从Flash Memory中取出,交替存入两个双口RAM中,为SDRAM的写操作准备数据。

2.2 SDRAM读写模块设计

SDRAM具有密度高,数据读写速度快的优点,从而成为数据缓存的首选存储介质[5]。设计所用的是ISSI公司的IS42S16160B型号,容量为32MB的SDRAM。SDRAM的控制时序非常复杂,接口方式与普通的存储器差异很大[6]。为了解决这个矛盾,Altera公司提供了一个通用SDRAM控制器,控制器精简了接口,降低了SDRAM的控制难度[7]。

SDRAM掉电后数据会丢失,为了保持数据,必须对SDRAM进行刷新操作。本设计SDRAM要求在64ms内对8192行进行刷新,根据SDRAM时钟频率(134.75Mhz),计算得到刷新的时钟计数为1052。为了提高操作的灵活性,将刷新计数器分别嵌入在SDRAM读、写模块里,对SDRAM进行不定时刷新,但要保证时钟计数小于1052。

初始化模块:SDRAM工作之前需要进行初始化操作。初始化步骤如下:

1)系统上电后等待200μs,以稳定电压及时钟,然后进行至少一个空操作;

2)对芯片中所有的Bank执行Precharge命令,完成预充电;

3)向芯片发出Auto refresh命令,进行至少八次刷新操作;

4)执行Load mode register命令,装入模式寄存器,对SDRAM工作模式进行设定。

写SDRAM模块:写SDRAM模块采用了状态机的设计方式,通过两个乒乓RAM,将Flash Memory中的数据转存入SDRAM中。写状态机为:空操作→读操作→空操作→预充电命令1→空操作→预充电命令2→空操作→刷新→空操作。需要注意的是预充电命令1经过SDRAM控制器的解码模块后给SDRAM的命令是突发停止命令,预充电命令2才是真正的预充电。

读SDRAM模块:为了产生符合要求的VGA时序,SDRAM读模块需要将读出的G、G、B数据送入到VGA时序产生模块中。读SDRAM模块同样采用状态机的设计方法,其状态机和写状态机一致。

2.3 VGA时序产生模块设计

VGA是IBM在1987年推出的一种视频传输标准,具有分辨率高、显示速度快、颜色丰富等优点[8]。常见的彩色显示器一般由CRT(阴极射线管)构成,彩色是由R,G,B(红:Red,绿:Green,蓝:B1ue)三色组成。VGA时序如图3所示:

本模块功能是产生隔行数据有效信号、行同步信号、场同步信号,并配合从SDRAM读出的R、G、B数据,组成隔行VGA时序。

3 结论

算法及验证平台在Altera公司的DE2_70开发板上已成功实现,经算法处理后的逐行图像可以清晰的呈现在显示器上,达到了预期的效果。

经过验证,改进的算法明显的改善了图像的品质,使图像更加清晰。图6(a)右边为原始图片,左边为改进算法处理后的图像,图6(b)为传统算法处理后的图像。测试平台用Flash Memory代替昂贵的信号发生设备,并且可以产生多种标准VGA时序,应用范围广。而且对于视频处芯片中涉及到VGA时序的其他模块,如图像缩放模块、图像锐化模块等,本平台同样可以验证,可见其具有良好的应用扩展性。

参考文献

[1]刘政林,刘菊,邹雪城,等.一种新型运动自适应去隔行算法[J].微处理机,2008(6):116-118.

[2]夏宇闻.Verilog数字系统设计教程[M].北京:北京航空航天大学出版社,2003.

[3]普玉伟,叶兵,曾德瑞,等.一种运动自适应去隔行技术及其VLSI结构[J].电视技术,2011,21:40-44.

[4]刘然,巫英坚,许小艳,等.一种用于DIBR的去隔行算法[J].计算机应用研究,2011(4):43-47.

[5]侯宏录,张文芳.基于FPGA的SDRAM控制器设计方案[J].兵工自动化,2012(2):57-60.

[6]SDR SDRAM Controller White Paper.Altera Corproration,August 2002.

[7]罗韬,姚素英,史再峰,等.自适应加权滤波的去隔行算法及其FPGA实现[J].吉林大学学报(工学版)增刊2[J],2008,9:281-286.

FPGA验证 篇6

关键词:现场可编程门阵列,系统级芯片,原型验证,验证平台

0 引言

随着SoC设计规模的与日俱增,其功能日趋复杂,芯片的验证阶段占据了整个芯片开发的大部分时间。为了缩短验证时间,在传统的仿真验证的基础上涌现了许多新的验证手段,如SDV(Software Driven verification)、BFM(Bus Function Model)等,以及基于FPGA的原型验证技术。

因FPGA工艺及技术的发展,其速度、容量和密度都大大增加,功耗和成本在不断的降低,使得基于FPGA的原型验证得到广泛的应用。基于FPGA的原型验证可以比软件仿真速度高出4~6个数量级,而且还可以提高流片成功率,并为软件开发提供了硬件平台,加速了软件的开发速度。

本文主要论述了FPGA基原型验证的实现方法,并且针对ARM1136为内核的So C,如何快速而有效地搭建一个原型验证平台做了详细的论述,最后还以UART为例来说明一种简单、可重用性好、灵活性强的测试程序架构。

1 基于ARM1136的SoC设计

本文验证的SoC芯片是定位于手持视频播放设备、卫星导航产品的高性能应用处理器,采用了ARM1136作为内核,ARM11在提供超高性能的同时,还能保证功耗、面积的有效性。

同时在这个架构中还采用了ARM公司的AMBA(Advanced Microcontroller Bus Architecture)总线,它是一组针对基于ARM核的片上系统之间通信而设计的标准协议。在设计中,对于一些处理数据和通讯速度要求较高的设备挂在AHB总线上,而那些对总线性能要求不高的设备挂在APB总线上。

为了能够提高一些设备间的数据传输速度,该设计加入了DMA,其支持存储器到存储器、存储器到外设、外设到存储的传输

基于ARM11设计的So C系统构架如图1所示,这个系统还包括了USB控制器、LCD控制器、图像处理单元GPU、视频处理单元VPU、GPS、I2S、通用异步串口UART、同步串口SPI、TIMER、PWM、实时时钟(RTC)、I2C总线和功耗管理单元(PMU)等。

图1基于ARM1136的SoC架构(参见右栏)

2 FPGA原型验证平台的快速搭建

FPGA的发展为SoC的原型验证提供了巨大的发挥空间,面对复杂的SoC系统,传统的一些验证方法和单一的验证技术已经不能满足设计的要求。本文所设计的平台不仅能加快开发速度,提高流片成功率,而且还具有低错误率、快速和简易的特点,因此特别适合用于RT代码更改频繁的设计中。

2.1 FPGA原型验证平台的硬件环境设计

FPGA原型验证平台的硬件设计应该考虑FPGA的逻辑资源、应用资源、扩展能力、PCB信号质量、调试难度、组态和成本等方面的因素。本原型系统设计的FPGA开发板采用的是Terasic公司的DE3开发板,其FPGA芯片是Stratix III EP3SL340,扩展板是根据SoC整体验证方案而设计的PCB板。FPGA原型验证平台的硬件架构如图2所示,为了使FPGA的调试性能增强,该平台加入了ICE在线调试器,它可以让验证人员和软件开发人员观察到ARM内核和设计中各个寄存器的状态信息,并且可以进行单步运行、在线调试等。

2.2 FPGA原型验证平台的软件环境设计

So C芯片采用的是ASIC工艺流程,ASIC和FPGA在实现结构上是不同的,AISC通常使用综合工具将RTL级代码映射到芯片制造厂提供的标准单元上。这些标准单元包括完成逻辑功能的与非门、非门、或非门等基本门单元和完成存储功能的各类触发器、锁存器,以及其它的宏单元。而FPGA器件为了实现可编程功能,通常使用查找表结构实现电路的逻辑功能。本文原型设计流程如图3所示,在图示中仅是将部分模块列出,如PMU和GPIO。

2.2.1 设计代码的转换

虽然FPGA和ASIC所用资源和实现方式不同,但在进行原型设计中需要遵循的一个原则就是“尊重原设计”。在FPGA现有资源情况下实现So C时,尽可能地少改动原So C设计,在此基础上需要对原设计做如下转换:

(1)存储模块。存储单元是必须进行代码转换的,ASIC中的存储单元通常用代工厂所提供的Memory Compiler来定制。如果直接将ASIC代码中的存储单元作为FPGA的输入,通常综合器是综合不出来的,即使能综合出来,也要花费很长时间,并且资源消耗多、性能不好。而FPGA厂商一般提供经过验证并优化的存储单元,因此存储单元要进行代码转换。在设计里用FPGA的RAM宏单元来替换ESRAM,So C芯片里面的DDR PHY是模拟的模块,因此要替换成Altera公司的PHY的IP核。

(2)时钟和门控。数字电路中,时钟是整个电路最重要、最特殊的信号。在ASIC中,用布局布线工具来放置时钟树,利用代工厂提供的PLL进行时钟设计。而FPGA中通常已经配置一定数量的PLL宏单元,并有针对时钟优化的全局时钟网络,一般是经过FPGA的特定全局时钟管脚进入FPGA内部,后经过全局时钟BUF适配到全局时钟网络,这样的时钟网络可以保证相同的时钟沿到达芯片内部每一个触发器的延迟时间差异可以忽略不计,因此时钟单元需要采用FPGA的PLL宏单元和专门的时钟布线资源来替换。

为了减少功耗,So C设计中使用了门控时钟(clock gating),如图4所示,对于FPGA来说这种门控时钟容易产生毛刺,导致数据不正确,所以在FPGA设计中要使用时钟使能寄存器代替门控时钟。

图4门控时钟的处理(参见右栏)

2.2.2 设计综合

综合是将较高级抽象层次的描述转换成较低层次描述,在这里就是把HDL程序转化成标准的门级结构网表。本设计采用的EDA工具是Synopsys公司的Synplify,将So C的各个模块分别进行综合,综合时要加约束文件和Altera公司的相应器件的库文件,产生一个FPGA网表文件。

2.2.3 等价性检查

形式验证(Formal Verification)主要用来在覆盖所有可能输入情况下,检查是否与给定的规范一致。等价性检查(equivalence checking)是形式验证中的一部分,它主要是检查两个门级网表(gate-level netlist)之间是否一致,保证网表处理后不会改变电路的功能,或者检查RTL和门级网表之间是否一致,保证网表能正确地实现RTL代码所描述的功能,或者检查RTL间是否一致,保证两种RT L描述逻辑一致。这种方法主要是用来寻找实现(Implementation Design)中的缺陷,而不是设计中的缺陷。由于芯片开发中,设计代码将不断的更改,都需要更新FPGA的镜像文件,这样在频繁的镜像制作过程中,可能会因为环境和设计的更改引出许多实现过程中的错误,而本文为了减少这些错误,采用的Synopsys公司的Formality工具,主要用于检查网标和RTL间是否一致,把RTL设计作为Reference Design,而把网标作为ImplementationDesign,在进行等价性检查时要加入Altera器件综合过程中需要的相关库文件。

2.2.4 设计整合和布局布线

把多个设计文件转换合并到一个设计库文件中,并把整合后的设计输入到Altera公司的Quartus II工具,将综合过的网表中的逻辑门映射到FPGA的内部资源中,如ALUT等。

布局是指从映射取出定义的逻辑和输入输出块,并把它们分配到FPGA内部的物理位置,布线是指利用自动布线软件使用布线资源选择路径试着完成所有的逻辑连接。

2.2.5 时序分析

在设计实现过程中,在映射后需要对一个设计的实际功能块的延时和估计的布线延时进行时序分析。而在布局布线后,也要对实际布局布线的功能块延时和实际布线延时进行时序分析。时序分析不仅可以检查出我们代码设计中的时序问题,还可以检查出由于布局布线产生的时序问题。在本设计中用Altera公司的Time Quest来进行时序分析,通过对原型设计增加时序约束,提高了工作主频和减少了关键路径的延时。在设计中经常存在时序违约的情况,这时需要查看违约的关键路径,然后查找原因,进行修改后再进行时序分析,重复整个过程直到满足要求。

2.2.6 镜像文件的生成和下载配置

Quartus II经过整合、布局布线等一系列操作后,最终会生成一个配置FPGA的位流文件(.sof格式),然后利用Quartus II的Programmer工具,通过USB Blaster下载到FPGA,此时FPGA实现了原So C设计的功能,原型验证环境搭建完成。

3 FPGA原型验证测试激励的设计

测试程序在FPGA基原型验证中起至关重要的作用,现在的So C设计很多都采用IP复用的方式,本文所设计出的测试程序有可重用性好、功能覆盖率高和调试简易等特点。

测试程序的基本框架如图5所示,具体模块的测试程序只需要根据框架所提供的接口进行编写相应的测试程序即可,代码主要由以下四部分组成:

(1)系统启动部分。主要包含系统的异常向量表和系统启动后设置ARM内核的配置程序,如各种模式下的堆栈设置、开启或关闭FIR和IRQ、设定中断向量表等,在Boot_gfd.s中提供了跳到测试程序的接口。

(2)模块测试部分。在此部分根据各个模块的功能,编写相应的测试函数,系统在执行时会调用这些函数,完成我们各个模块的功能测试。

(3)头文件部分。为了方便代码的编写和理解,在typedef.h文件中对系统的数据类型做了重新定义并包含了部分公用函数的宏定义。一个So C系统中拥有大量的寄存器,在本设计中用Register.h文件来存放这些寄存器地址的宏定义。

(4)Scatter文件部分。scatter文件是用来描述ARM连接器生成映像文件时需要的地址映射信息和加载域信息。

下面以UART模块为例,在此框架下根据其接口编写相应的测试程序。

验证计划:通过待验UART与PC进行通信来验证其功能是否正确,主要验证的功能点有:1)寄存器读写;2)三种工作模式普通模式、自流控模式、Loop Back模式;3)奇偶校验;4)波特率;5)FIFO触发级。

测试程序:根据上边的功能点可以划分两个测试的基本的函数,一个是寄存器读写的测试函数UART_RWTst(),还有一个就是UART工作配置函数UART_Config(),这个函数提供一个接口,通过这个接口可以配置UART的工作模式、奇偶校验方式、波特率大小、FIFO触发级。在更高层的测试应用程序中调用配置程序,变化配置参数,使其与PC进行收发数据,然后查看或比对数据,判别其功能是否正确。测试程序文件结构如图5所示。

验证结果:当待验UART向PC发送数据时,在PC的超级终端会显示这些数据,UART功能验证结果可通过观测或数据比对来判断,如图6所示。

图6 PC显示待验UART发送的数据(参见右栏)

4 结论

同样的测试激励程序在此原型平台的执行速度要比SDV(Software driven verification)平台快4~6个数量级。本验证平台的搭建过程中对其进行了形式验证和时序分析,大大减少了在原型设计中由于FPGA实现而导致的错误。本平台的软件测试程序具有接口简单、易调试、可重用性好等特点,笔者在此原型平台下完成了部分模块的验证,有效地提高了验证效率,缩短了项目的开发周期,加大了流片成功率。

参考文献

[1]虞致国,魏敬和.基于JTAG的SoC软硬件协同验证平台设计[J].微电子学与计算机,2010(10):166-168.

[2]韩可,邓中亮,施乐宁,等.针对JTAG调试的RTL验证环境设计原理[J].电子测量技术,2008(1):80-84,95.

FPGA验证 篇7

UART是一种短距离串行通信接口,主要用于计算机、微处理器与小型通信网络之间的短距离通信。目前,通信接口技术已发展成为硬件和软件相结合的综合性技术,在嵌入式系统设计中,异步串行通信接口已成为必不可少的一部分。随着FPGA技术和嵌入式系统的发展,在单芯片上可以实现多种功能,虽然目前许多器件已经把UART集成在内,但是要求用单一芯片实现处理器和控制器等复杂功能,同时需要串行通信的场合,采用高密度、大容量FPGA器件来设计UART具有很高的使用价值[1]。

1 UART通信原理

在基带处理的原理样机中FPGA芯片与DSP芯片之间的通信可以采用UART方式。UART是一种应用广泛的短距离串行传输端口,常常用于短距离、低速、低成本的通信中。基本的UART通信只需要2条信号线(RXD,TXD)就可以完成数据的相互通信,接收与发送是全双工方式。TXD是UART的发送端,为输出;RXD是UART的接收端,为输入。

异步通信中,数据是一帧一帧传送的,如图1所示。在帧格式中,一帧数据首先是一个起始位‘0’(低电平),然后是8位数据位,接下来是奇偶校验位(可以省略),最后是停止位‘1’(高电平),起始位‘0’信号只占一位,用来通知接收设备一帧数据的到来。停止位用来表征数据的结束,它可以为1位、1.5位或2位。线路上在不传送数据时应保持位‘l’(高电平)[2]。

2 UART的FPGA实现

UART由3个部分组成:波特率发生器 接收模块和发送模块。其中波特率发生器实际上就是一个分频器,可以根据给定的系统时钟频率(晶振时钟)和要求的波特率算出波特率分频因子,算出的波特率分频因子作为分频器的分频数。波特率分频因子可以根据不同的应用需要更改。

UART的接收机设计比发送机复杂,在此先介绍接收机的设计。由于串行数据帧和接收时钟是异步的,由逻辑1转为逻辑0可以被视为一个数据帧的起始位。然而,为了避免毛刺影响,能够得到正确的起始位信号,必须要求接收到的起始位在波特率采样的过程中至少有一半都是属于逻辑0才可认定接收的是起始位。由于内部的采样时钟mclkx16周期(由波特率发生器产生)是发送或接收波特率时钟周期的16倍,所以起始位需要至少8个连续的mclkx16周期的逻辑0被接收到,才认为起始位接收到,接着数据位和奇偶校验位将每隔16个mclkx16周期被采样一次(即每一个波特率时钟被采样一次)。如果起始位的确是16个mclkx16周期长,那么接下来的数据将在每个位的中点处被采样。

状态机一共有5个状态:RSTART(等待起始位)、RSAMPLE(采样)、RSTOP(停止位接收)、RWAIT和RCENTER。

① RSTART状态:当UART接收器复位后,接收状态机将处于这一个状态。在此状态,状态机一直在等待RXD的电平跳转,从逻辑1变为逻辑0,即起始位,这意味着新的一帧UART数据帧的开始,一旦起始位被确定,状态机将转入RCENTER状态。RXDSYNC信号是RXD的同步信号,因为在进行逻辑1或逻辑0判断时,不希望检测的信号是不稳定的,所以不直接检测RXD信号,而是检测经过同步后的RXDSYNC信号;

② RCENTER状态:对于异步串行信号,为了使每一次都检测到正确的位信号,而且在较后的数据位检测时累计误差较小,显然在每位的中点检测是最为理想的。在本状态,就是由起始位求出每位的中点,通过对mclkx16的个数进行计数(RCNT16),但计数值不是想当然的“1 000”,要考虑经过1个状态,也即经过了1个mclkx16周期,所希望得到的是在采样时1/2位;另外,可能在RSTART状态检测到的起始位不是真正的起始位,可能是一个偶然出现的干扰尖脉冲(负脉冲)。这种干扰脉冲的周期是很短的,所以可以认为保持逻辑0超过1/4个位时间的信号一定是起始位;

③ RWAIT状态:当状态机处于这一状态,等待计满15个mclkx16,在第16个mclkx16时进入RSAMPLE状态进行数据位的采样检测,同时也判断是否采集数据位长度以达到数据帧的长度(FRAMELEN),如果到来,就说明停位来临了。FRAMELEN在设计时是可改的(使用了Generic),在本设计中默认为8,即对应的UART工作在8位数据位、1位校验位格式;

④ RSAMPLE状态:即数据位采样检测,完成后无条件状态机转入RWAIT状态,等待下次数据位的到来;

⑤ RSTOP状态:无论停止位是1还是1.5位,或是2位,状态机在RSTOP不具体检测RXD,只是输出帧接收完毕信号(RECDONE<='1'),停止位后状态机转回到RSTART状态,等待下一个帧的起始位。

发送器只要每隔16个mclkx16周期输出1个数据即可,次序遵循第1位是起始位,第8位是停止位。校验位为1位,可以奇校验或是偶校验,停止位是固定的1位格式。

状态机一共有5个状态:XIDLE(空闲)、XSTART(起始位)、XWAIT(移位等待)、XSHIFT(移位)和XSTOP(停止位)。

① XIDLE状态:当UART被复位信号RESETL复位后,状态即将立刻进入这一状态。在这个状态下,UART的发送器一直在等待一个数据帧发送命令XMITCMD。这时由于XMITCMD是一个外加信号,在FPGA之外,不可能对XMITCMD的脉冲宽度进行限制,如果XMITCMD有效在UART发完一个数据帧后仍然有效,那么就会错误地被认为,一个新的数据发送命令又到来了,UART发送器就会再次启动UART帧的发送,显然该帧的发送是错误的。在此时XMITCMD进行了脉冲宽度的限定,用XMITCMDP代替XMITCMD信号,XMITCMDP是一个短脉冲信号。当XMITCMDP=‘1’,状态机装入XSTART,准备发送起始位;

② XSTART状态:在这个状态下,UART发送一个位时间宽度的逻辑0信号至TXD,即起始位。紧接着状态机转入XWAIT状态。XCMT16是mclkx16的计数器;

③ XWAIT状态:同UART接收状态机中的RWAIT状态类似;

④ XSHIFT状态:当状态机处于这一状态时,实现待发数据的并串转换。转换完成后立即回到XWAIT状态;

⑤ XSTOP状态:停止位发送状态,当数据帧发送完毕,状态机转入该状态,并发送16个mclkx16周期的逻辑1信号,即1位停止位。状态机送完停止位后回到XIDLE状态,并等待另一个数据帧的发送命令。UART接口如图2所示。

其中输入信号有6个,分别为mclkx16为用于产生波特率的主时钟;read为从接收器中的读使能信号,低电平触发;write为向发送器中写数据的写使能,低电平触发;reset为复位信号;datain[7..0]为数据输入端口;rx为接收器串行输入端口,无数据传输时应置高电平。输出信号有7个,分别为dataout[7..0]为数据输出端口;txrdy为新的数据可以写入发送器;parityerr为表明在接收的一帧数据中是否有校验错误;framingerr为表明发给接收端的一串数据不满足帧数据格式而出错;overrun为溢出,表明当新数据送给接收器时接收器中的已有数据尚未被读出而发生的溢出;tx为发射机串行输出端口;txrdy为表明新数据可以写入发送器。

串口输入信号datasignal与串口输出信号datareceived信号的结果一致,证明了串口通信的正确性。

3基于DSP仿真器UART的FPGA设计方法

验证模块如图3所示,中间的模块是自行设计的UART模块通过TX与RX互联实现数据自环,右边模块是实现与DSP通信的总线控制模块,左边为时钟锁相环(时钟控制)。验证是通过DSP与FPGA的并行总线来实现的(DSP与FPGA在一块电路板上可以通过总线通信)。

DSP发送32个数如图写到*P1这个地址(FPGA的地址),再从FPGA读出来把接收到的数据存到a地址(DSP的外围SRAM)。可见DSP发送的32个数据与a地址存的数据一致。至此验证了DSP与FPGA的通信准确性。

4 结束语

本文使用Altera Quartus II 7.2等开发软件完成了FPGA与DSP之间UART方式的设计,并且使用Cyclone III EP3C25Q240C8N器件实现了UART模块的功能,最后通过自己设计的UART模块进行数据自环(由DSP发送数据,FPGA接受数据,数据自环,再发还回DSP),最后通过DSP仿真器验证串行数据的正确性,此模块具有较高的实用价值。

摘要:通用异步收发器(Universal Asynchronous Receiver/Transmitter,UART)作为RS232协议的的控制接口得到广泛应用,基于FPGA实现的UART设计可以使系统更加紧凑、稳定。对系统结构进行了模块化分解,使之适应自顶向下的设计方法。通过与DSP间的数据通信对设计功能进行了验证,在此基础上衍生出一种将UART模块嵌入FGPA芯片与DSP互联进行功能验证和调试的新方法。

关键词:通用异步收发器,FPGA,DSP

参考文献

[1]黄智伟.FPGA系统设计与实践[M].北京:电子工业出版社,2005.

[2]姜宁,范多旺.基于FPGA/CPLD的通用异步通信接口UART的设计[J].信息技术与信息化,2006(1):30-34.

【FPGA验证】推荐阅读:

质量验证07-14

配方验证10-21

标准验证05-11

协议验证05-15

措施验证05-24

验证确认05-28

验证研究06-04

验证方案06-18

验证报告07-05

公式验证07-26

上一篇:电力开关柜下一篇:地籍测量基本方法研究