0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

一种精简FPGA编程电路的实现方案

电子设计 来源:郭婷 作者:电子设计 2019-06-10 08:01 次阅读

1 、引言

便携式、小型的仪表和设备是一个非常重要的应用领域,在未来一段时间内会有比较大的市场。而FPGA等现场可编程器件也是正在兴起与普及的一种器件,把FPGA更好地运用到上述仪表和设备中,可以减少这些仪器、设备的开发周期,大幅度提升这些仪器的性能,减少总成本和体积等。

在许多应用场合,如大型设备中的板卡,比较适合采用标准的FPGA编程电路。但是对于便携式设备的应用场合,采用标准电路联系FPGA与CPU需要消耗的资源太多。许多DSP芯片只有2个通用I/O引脚,所以如果能只使用1~2个引脚就完成FPGA编程功能,意义将非常重大。

2 、标准的FPGA编程电路

以Xilinx的Spartan系列FPGA为例,图1是一个标准的编程电路。电路中控制器使用了4条控制信号线PROG,CLK,Data,DONE。首先Prog信号控制FPGA的初始化,一个Prog信号的低电平使FPGA进入编程状态,在编程过程及以后的运行过程中,Prog信号保持高电平;在编程过程中,Data信号与CLK信号配合,在每个Clk信号的上升沿,FPGA锁定/读取一个Data信号,如此循环,直到控制器将需要编程的程序全部送到FPGA中;当FPGA正确接收到编程程序以后,就会产生一个DONE信号,通知控制器一切完毕。

该电路是Xilinx公司推荐的一个FPGA的标准电路,对于许多常规应用场合,它还是比较合适的,但是对于手持式仪表等尺寸非常小的设备,由于控制器本身只有1~2个I/O控制线,而上述标准电路占用4个I/O口,就有可能无法应用。

3 、精简的FPGA编程方法

本文给出了一种精简的FPGA编程电路如图2所示。控制器的I/O控制信号线包括P/C和Data。P/C控制信号产生图2中所示的波形,经过Prog解码电路(如图4所示)得到Prog信号,经过CLK解码电路(在本例中也可以不经过),得到CLK信号,它们与Data一起组成完整的FPGA控制信号,完成对FPGA的编程控制。

一种精简FPGA编程电路的实现方案

图1 通常的FPGA下载电路

一种精简FPGA编程电路的实现方案

图2 精简的FPGA下载电路之一

该电路只使用2根I/O控制信号线,比标准编程电路要少,利用特殊控制信号的编码与解码,得到完成FPGA的编程工作。

更进一步,也可以只使用一个I/O控制信号线,如图3所示,使用Prog解码电路(如图4所示)、CLK解码电路和Data解码电路(如图5所示),得到FPGA编程所必须的Prog信号、CLK信号和Data信号。该方法比图2所示的电路所需要的控制线还要少。

一种精简FPGA编程电路的实现方案

图3 精简的FPGA下载电路之二

一种精简FPGA编程电路的实现方案

图4 Prog解码电路

一种精简FPGA编程电路的实现方案

图5 Data解码电路

本方法利用比标准FPGA编程电路更少的I/O控制线,经过解码电路的解码得到FPGA编程所需要的控制信号。对于不同公司的产品,本方法只要稍加变动就可以使用。

4 、应用案例

以Xilinx的Spartan II系列产品为例,图4为Prog控制信号解码电路,图5为Data信号解码电路。不妨假定CLK信号的周期为Tclk,Prog解码电路中的时间常数为tProg=R1*C1,Data解码电路的时间常数为tData=R2*C2。

Prog控制信号解码电路的原理: P/C信号或P/C/D信号由Prog编码和CLK(Data)编码组成,其中Prog编码是一个周期比较长的高电平,见图4的t2-t0,它大于Prog解码电路的时间常数tProg,CLK(Data)编码是周期比较短的脉冲,小于解码电路的时间常数tProg,所以Prog信号可以被解码得到,而其他不相关信号则被过滤掉。一般可以选择Prog编码周期t2-t0》5tProg,而CLK(Data)编码周期t3-t2《1/5tProg。当FPGA编程结束以后,P/C信号,或者P/C/D信号应当立即复位,否则Prog会出现错误。

Data解码电路的原理可以分成Data=0和Data=1两种情况:

Data=“0时”,当P/C/D信号的前一个数据的上升沿t5结束,并保持一段时间,到达t6后,继续保持高电平,经过大约tData(与先前状态有关),Data控制信号线就会出现低电平,即信号0,为了更加可靠,可以等一段时间,到达时刻t9时P/C/D信号再给出一个负脉冲用于锁定数据。当然负脉冲的宽度应当比较窄,否则Data信号会反转,通常负脉冲宽度t10-t9《1/4tCLK。

Data=“1时”,当P/C/D信号的前一个数据的上升沿t5结束,并保持一段时间,到达t6后,立即进入低电平,经过大约tData(与先前状态有关),Data控制信号线就会出现高电平,即信号1,为了更加可靠,可以等一段时间,到达时刻t10时,P/C/D信号再给出一个上升沿用于锁定数据。

这样Data信号也可以被正确地解码出来。在本例中CLK信号无须专门的解码电路,P/C/D信号可以直接作为CLK控制信号使用。

本方法经过实验验证,其中R1=10KW,C1=0.1mF, R2=1KW, C2=0.01mF,D1为1N5817,U1/U2为74HC14。当然也可以根据需要进行调整。

5 、结语

FPGA是一种功能非常强大,非常灵活的器件,正在向各种中、高档的应用普及,采用本文提出的精简FPGA编程方法,节省了控制器的I/O线,克服了FPGA在便携式设备中应用的一个瓶颈。文中给出了其基本原理并通过了实验,具有一定的使用价值。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1629

    文章

    21735

    浏览量

    603150
  • 控制器
    +关注

    关注

    112

    文章

    16350

    浏览量

    177938
  • 编程
    +关注

    关注

    88

    文章

    3615

    浏览量

    93710
收藏 人收藏

    评论

    相关推荐

    一种基于FPGA的UART实现方法设计

    摘要:UART作为RS232协议的控制接口得到了广泛的应用,将UART的功能集成在FPGA芯片中,可使整个系统更为灵活、紧凑,减小整个电路的体积,提高系统的可靠性和稳定性。提出了一种基于FPG
    发表于 06-21 07:17

    一种基于FPGA的DSU硬件实现方法

    摘要:为了实现对非相干雷达的接收相参处理,基于数字稳定校正(DSU)的原理,采用ALTERA公司的StratixⅡ系列芯片和VHDL编程语言,设计了一种基于FPGA的DSU硬件
    发表于 06-28 08:27

    一种基于FPGA和MCU的总线转换方案设计

    为了扩展VME总线和CAN总线的应用范围,充分利用两总线的不同传输特点,采用了模块设计方法,提出一种基于FPGA和MCU的总线转换方案。该方案
    发表于 06-28 08:24

    一种基于FPGA的可配置FFT IP核实现设计

    中,数字信号处理系统经常要进行高速、高精度的FFF运算。现场可编程逻辑阵列(FPGA)是一种可定制集成电路,具有面向数字信号处理算法的物理结构。用F
    发表于 07-03 07:56

    求大神分享一种高速突发模式误码测试仪的FPGA实现方案

    求大神分享一种高速突发模式误码测试仪的FPGA实现方案
    发表于 04-29 06:58

    一种精简FPGA编程方法

    本文提出一种精简FPGA编程电路,很适合大规模地在便携式小型仪表产品中应用。
    发表于 04-30 07:05

    分享一种基于Actel Flash FPGA的高可靠设计方案

    本文以星载测控系统为背景,提出了一种基于 Actel Flash FPGA的高可靠设计方案。采用不易发生单粒子翻转的 flash FPGA芯片,结合
    发表于 05-10 06:58

    分享一种FPGA的动态配置方案

    本文提出了一种基于嵌入式系统和Internet的FPGA动态配置方案
    发表于 05-27 06:38

    分享一种不错的无线语音传输系统设计方案

    本文介绍了nRF401的特点,提出了一种将其应用于无线集群语音传输系统的实现方案。此方案硬件电路简单,易于调试,软件
    发表于 05-31 06:36

    FPGA实现纠错编码的一种方法

    本文提出了一种FPGA实现纠错编码的设计思想,并以Altera MAX+PluslI为硬件开发平台。利用FPGA编程的特点,用软件
    发表于 11-10 17:10 61次下载
    用<b class='flag-5'>FPGA</b><b class='flag-5'>实现</b>纠错编码的<b class='flag-5'>一种</b>方法

    一种基于FPGA的ZigBee物理层发射机的数字基带实现方案_陈

    一种基于FPGA的ZigBee物理层发射机的数字基带实现方案_陈迪平
    发表于 03-14 16:54 6次下载

    一种基于FPGA的数字频谱仪设计与实现

    本文主要介绍了一种基于FPGA的数字频谱仪设计与实现,该系统主要由信号采集模块、高速FFT模块以及LCD显示模块组成。信号采集模块以AD9226芯片为核心,配合前置抗混叠滤波电路
    发表于 12-25 09:46 1.3w次阅读
    <b class='flag-5'>一种</b>基于<b class='flag-5'>FPGA</b>的数字频谱仪设计与<b class='flag-5'>实现</b>

    一种基于CPLD加载FPGA方案设计详解

    编程的双重优点,被广泛应用于通信领域中。FPGA在上电后,需要加载配置文件对内部各功能模块进行初始化,而配置文件加载的效率直接影响系统的初始化时间。因此如何设计一种高效的FPGA加载
    发表于 02-19 14:49 2299次阅读
    <b class='flag-5'>一种</b>基于CPLD加载<b class='flag-5'>FPGA</b>的<b class='flag-5'>方案</b>设计详解

    一种基于FPGA的UART电路实现

    UART即通用异步收发器,传统上采用多功能的专用集成电路实现。但是在般的使用中往往不需要完整的UART的功能,比如对于多串口的设备或需要加密通讯的场合使用专用集成电路
    发表于 04-27 14:07 8次下载

    一种均衡充电管理电路实现方案

    电子发烧友网站提供《一种均衡充电管理电路实现方案.doc》资料免费下载
    发表于 11-14 10:27 1次下载
    <b class='flag-5'>一种</b>均衡充电管理<b class='flag-5'>电路</b>的<b class='flag-5'>实现</b><b class='flag-5'>方案</b>