基于SRAM的可重配置电路PLD

发布者:GoldenSunrise最新更新时间:2014-10-29 来源: 21ic关键字:SRAM  AT24C256  PLD 手机看文章 扫描二维码
随时随地手机看文章

  基于SRAM的可重配置PLD(可编程逻辑器件)的出现,为系统设计者动态改变运行电路中PLD的逻辑功能创造了条件。PLD使用SRAM单元来保存字的配置数据决定了PLD内部互连和功能,改变这些数据,也就改变了器件的逻辑功能。由于SRAM的数据是易失的,因此这些数据必须保存在PLD器件以外的EPROM,EEPROM或FLASH ROM等非易失存储器内,以便系统在适当的时候将其下载到PLD中,从而实现在电路可重配置ICR(In-Circuit Reconfigurability,在电路可重配置)。

  如何实现ICR?ALTER公司的应用方案AN88中详细介绍一种基于DS87C520微控制器的ISP&ICR设计方法,并钭其源代码放在ALTERA的网上,供用户免费下载。作者在设计一要求具有ICR功能的电子装置时,在详细分析了AN88介绍的方法之后,发现该应用方案中介绍的电路结构复杂,对微控制器性能及微控制器的开发装置的要求和成本都较高,且只适用于工作电压为5V的PLD电路。本文介绍的是作者设计的PLD ICR控制电路,它和ALTERA介绍的方法相比,不但线路结构简洁、开发容易、体积小、成本低,而且只需改变ICR控制电路的电源电压,就能实现工作电压为3.3V或5V的PLD器件的电路内重配置。

  ICR控制电路硬件原理

  ICR控制电路原理图如图1所示。图中的U1是ICR控制电路的核心器件,它是PHILIPS公司在1999年底推出的20引脚低成本的微控制器P87LPC762,该微控制器具有2K字节的程序存储器、128字节的RAM、18/15个I/O、WATCHDOG、通用串行接口UART和一个硬件I2C总线控制器。P87LPC762采用的是80C51加速处理器结构,其指令和80C51兼容,但指令的执行速度在相同时钟下,是标准80C51微控制器的两倍。因它采用的是硬件I2C总线控制器节省大量的软硬件资源。U2、U3是ATMEL公司的串行EEPROM AT24C256,其串行通信协议为I2C,容量为32K字节。在电路中,U2和U3有来存储PLD的配置数据。

ICR控制电路原理图

  ICR控制电路的工作过程为:经MAXPLUS Ⅱ编译生产的PLD配置文件经过预处理后,通过PC机的串行通讯口下载到U1中,并在U1的控制下存储在EEPROM U2和U3中,U1再根据系统的要求通过P0.2、P0.3、P0.4、P0.6和P0.7等5个I/O口,将其存储在U2和U3中的PLD配置数据下载到电路中的PLD。

  因作者设计电路中的PLD是ALTERA公司的ACEX系列的EP1K30,其配置文件的容量为52K字节,故电路中采用了两片AT24C256存储PLD的配置数据。如果配置的PLD是EPF10K10或EPF10K20,则只需要一片AT24C256,此时整个ICR控制电路仅仅只有两片IC,这可以说它是目前结构最简单、成本最低的ICR控制电路了。读者在应用该电路时,可根据其PLD文件的大小(PLD的配置文件的大小可参考ALTERR公司的应用方案AN116)采用1~4片AT24C256。

  ICR控制电路软件设计要点

  在图1介绍的ICR控制电路中,其存储PLD配置数据的EEPROM AT24C256采用I2C串行总线进行数据交换,其数据交换速度较慢(当工作电压为5V时,其最大I2C总线时钟为1MHz),而PLD配置数据又比较大,通常都在数十K字节以上。因此如何提高图1介绍的ICR控制电路的配置速度,这将是软件设计上的一个重点。

  ALTERA公司生产且具有ICR功能的PLD器件有FLEX6000、FLEX10K、APEX和ACEX系列,它们的配置方式可分为PS(无源串行)、PPS(无源并行同步)、PSA(无源并行异步)、PSA(无源串行异步)和JTAG(Joint Test Action)等四种方式,在这四种方式,PS方式因PLD与配置电路的互连最简单,对配置时钟的最小频率没有限制而应用最广泛,因此在图1介绍的ICR控制电路中也采用PS配置方式来实现ICR功能。图2是PS配置方式的时序图。

PS配置方式的时序图

  数据从AT24C256读出时,可采用读当前地址、随机读和顺序读三种方式。这三种方式中,顺序读的最简单,速度最快,因为在同一片AT24C256中,仅需要写入一次读命令就可以按顺序从0地址开始直至读完整片AT24C256中的全部数据。AT24C256顺序读的时序图如图3所示。

  比较图2和图3,可以看出PLD的PS配置时序图和AT24C256顺序读时序图有很多相似之处,其唯一的差别在于:在PS配置方式中,其数据配置顺序是序列的最低位最先输入,而I2C总线读过程则是其序列的最高位最先输出,它们之间的输入和输出顺序刚好相反。如果将PLD的配置文件通过一定的预处理,使其配置数据的最低位存储在EEPROM的最高位上,则在配置过程中,从EEPROM I2C总线上读出的当前位数据正好是PS配置时需要输入到PLD中去的当前位,这将是提高ICR的配置速度,缩短配置时间的最有效措施,其具体过程如下:

 

AT24C256顺序读的时序图

  用户设计的PLD程序经MAXPLUS Ⅱ的编绎后将产生一个后缀为.sof的SRAM的SRAM目标文件,该文件含有除配置数据以外的控制字符,不能直接写入到PLD中去,需要利用MAXPLUS Ⅱ的编程文件转化功能使其生成一个后缀为.ttf的表格文本文件,该文件是不带任何附加符号的PLD配置文件,可以直接配置到PLD中去。该文件中每一字节在下载到ICR控制电路的EEPROM之前,将D7 D6 D5 D4 D3 D2 D1 D0变换为D0 D1 D3 D4 D5 D6 D7之后再写入EEPROM中,则在PLD配置过程中,其配置数据不经任何处理,从EEPROM读出的当前位数据就是此时需要配置到PLD中去的当前位数据(这是作者为什么采用时钟频率较慢的I2C的EEPROM,而没有采用时钟频率相对较快,但没有顺序读功能的SPI接口的EEPROM的原因),从而达到了缩短ICR控制电路配置时间的目的。

  结论

  本文介绍了一种基于微控制器的PLD ICR控制电路,该控制电路结构简单、占用空间小、性价比较高,适用于需要ICR功能的电子装置中,该ICR控制电路是为配置ALTERR系列PLD器件来设计的,稍加屐也适用于XILINX公司的FPGA器件。这个配置电路的主要弱点在于配置速率较慢,只能适应用于配置速率要求不高的应用。

  注:文中的一个概念是ICR(In-Circuit Reconfigurability,在电路可重配置),ICR是ALTERA提出的概念,它和目前ISP(In System Programmabled,在系统编程)相并列的一个概念与IAP(In Application re-Programmable)的意义相差不大。但笔者使用的是ALTERA的PLD,因此在文中采用了ICR这个概念。

关键字:SRAM  AT24C256  PLD 引用地址:基于SRAM的可重配置电路PLD

上一篇:单片机常用接口电路及其编程
下一篇:生产电路的新时代:工程师把电路打印到纸上

推荐阅读最新更新时间:2024-03-16 13:44

利用AVR片内IIC 实现AT24C256 的连续写(页写)与连续读程序
最近刚买回一块AT24C256 EEPROM ,容量为32K Byte ,数据地址宽度为 16Bit ,支持IIC 1M (5V)400K (2.7V) 速度模式 ,利用AVR M16 片内IIC 可以高速稳定地读取数据…… 爽! 经过调试的,与各位大虾分享分享。 程序如下:(winavr) #include avr/io.h #include avr/wdt.h #include stdio.h #include compat/twi.h #define FREQ 8 #include util/delay.h #include avr/signal.h #include avr/pgmspace.h #define
[单片机]
东芝新款微控制器“TMPM36BF10FG”可提供片上SRAM
东芝公司(Toshiba Corporation)日前宣布推出一款基于ARM Cortex™-M3内核的全新TX03系列微控制器“TMPM36BF10FG”,配备了1M字节的闪存ROM和258K字节的SRAM。该产品计划于9月份投入量产。 背景 市场对拥有更大片上存储器容量的微控制器的需求不断增长,这就需要开发更先进、更复杂且需要更多代码和管理更多数据的应用。一个显著的例子就是能源管理系统(EMS)相关应用,这是一个新兴的增长领域,必须处理数据测量、分析并自动传送到远程位置—这就需要一个拥有更大嵌入式内存的微控制器。 特性 TMPM36BF10FG将一个大容量存储器和整合测量与通信系统所需的串行接口范围整合到一个芯片中
[单片机]
用单片机实现SRAM工艺FPGA的加密应用
在现代电子系统设计中,由于可编程逻辑器件的卓越性能、灵活方便的可升级特性,而得到了广泛的应用。由于大规模高密度可编程逻辑器件多采用SRAM工艺,要求每次上电,对FPGA器件进行重配置,这就使得可以通过监视配置的位数据流,进行克隆设计。因此,在关键、核心设备中,必须采用加密技术保护设计者的知识产权。 1 基于SRAM工艺FPGA的保密性问题 通常,采用SRAM工艺的FPGA芯片的的配置方法主要有三种:由计算机通过下载电缆配置、用专用配置芯片(如Altera公司的EPCX系列芯片)配置、采用存储器加微控制器的方法配置。第一种方法适合调试设计时要用,第二种和第三种在实际产品中使用较多。第二种方法的优点在于外围电路非常简单,体积较
[单片机]
单向双端口SRAM的测试算法
引 言 单向双端口SRAM是一种专用的存储器,它具有独立的写地址总线和读地址总线,不仅可以实现单端口的读写,还可以对不同地址的存储单元进行同时读写操作,提高了SRAM的性能。本文分析了单向双端口SRAM的失效模式,并描述了相应的基于字的检测算法。 存储器模型 图1表示了3×3的单向双端口SRAM模块的结构示意图,输入为读地址总线、写地址总线和输入数据总线,输出为输出数据总线。每一个存储单元都有四个端口,分别是数据写入(BW),数据读出(BR),写地址端口(WA)和读地址端口(RA)。在这种结构中,同一列单元的数据写入端和读出端连到总线上,输出采用了线与的方式。对于字长大于1的存储器来说,读地址和写地址一次选中一行,一
[应用]
基于DBL结构的嵌入式64kb SRAM的低功耗设计
嵌入式存储器的容量及其在系统芯片中所占的面积越来越大,对其操作所带来的动态功耗成为系统芯片功耗中重要的组成部分,因此,必须寻求有效的低功耗设计技术,以降低嵌入式存储器对整个系统的影响。为了降低存储器的功耗,人们采用了字线分割、分级字线译码以及字线脉冲产生等技术,大大降低了存储器的动态功耗。 另外一种能有效降低存储器动态功耗的技术就是位线分割(DBL)。针对系统要求,笔者采用DBL结构以及一种存储阵列分块译码结构,完成了64 kb嵌入式存储器模块的设计。 参数的修正与公式的重新推导 DBL结构的原理    DBL 结构就是通过将两个或者多个SRAM存储单元进行合并,以减少连接到位线上的晶体管数目,从而减小位线电容,达到降低存储器动
[单片机]
基于DBL结构的嵌入式64kb <font color='red'>SRAM</font>的低功耗设计
ARM Cortex-M3的SRAM单元故障软件的自检测研究
   引言   目前,对于存储单元SRAM的研究都是基于硬件电路来完成,而且这些方法都是运用在生产过程中,但是生产过程并不能完全杜绝SRAM的硬件故障。在其使用过程中,如果SRAM硬件出错,将导致程序出错而且很难被发现。因此在运用的阶段,为防止存储单元损坏而导致系统出错,通过软件的方式对SRAM进行检测是必要的。   1 SRAM运行状态分析   SRAM是存储非CONSTANT变量(如RW),它具有掉电即失的特点。由Cortex—M3的启动步骤可知,系统上电后,首先执行复位的5个步骤:   ①NVIC复位,控制内核;   ②NVIC从复位中释放内核;   ③内核配置堆栈;   ④内核设置PC和LR;   ⑤运行
[单片机]
ARM Cortex-M3的<font color='red'>SRAM</font>单元故障软件的自检测研究
基于ARM的FPGA加载配置实现
0引言 基于SRAM工艺FPGA在每次上电后需要进行配置,通常情况下FPGA的配置文件由片外专用的EPROM来加载。这种传统配置方式是在FPGA的功能相对稳定的情况下采用的。在系统设计要求配置速度高、容量大、以及远程升级时,这种方法就显得很不实际也不方便。本文介绍了通过ARM对可编程器件进行配置的的设计和实现。 1 配置原理与方式 1.1配置原理 在FPGA正常工作时,配置数据存储在SRAM单元中,这个SRAM单元也被称为配置存储器(Configuration RAM)。由于SRAM是易失性的存储器,因此FPGA在上电之后,外部电路需要将配置数据重新载入到片内的配置RAM中。在芯片配置完成后,内部的寄存器以及I/O管脚必
[嵌入式]
【STM32】SRAM启动
创建工程的调试版本 该操作调试版本会复制原工程的配置 修改FLASH的目标配置 用的是STM32F103C8T6 RAM起始地址为是0x2000 0000大小为20KB, 这里用12KB大小的RAM作为虚拟ROM,用8KB的RAM作为RAM 虚拟ROM起始地址0x2000 0000大小0x3000 RAM起始地址0x2000 3000大小0x2000 配置分散加载文件 keil STM32中sct 分散加载文件学习 注意要与FLASH下的目标配置一致 虚拟ROM起始地址0x2000 0000大小0x3000 RAM起始地址0x2000 3000大小0x2000 ; *************************
[单片机]
【STM32】<font color='red'>SRAM</font>启动
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 学习ARM开发(16)
    ARM有很多东西要学习,那么中断,就肯定是需要学习的东西。自从CPU引入中断以来,才真正地进入多任务系统工作,并且大大提高了工作效率。采 ...
  • 学习ARM开发(17)
    因为嵌入式系统里全部要使用中断的,那么我的S3C44B0怎么样中断流程呢?那我就需要了解整个流程了。要深入了解,最好的方法,就是去写程序 ...
  • 学习ARM开发(18)
    上一次已经了解ARM的中断处理过程,并且可以设置中断函数,那么它这样就可以工作了吗?答案是否定的。因为S3C44B0还有好几个寄存器是控制中 ...
  • 嵌入式系统调试仿真工具
    嵌入式硬件系统设计出来后就要进行调试,不管是硬件调试还是软件调试或者程序固化,都需要用到调试仿真工具。 随着处理器新品种、新 ...
  • 最近困扰在心中的一个小疑问终于解惑了~~
    最近在驱动方面一直在概念上不能很好的理解 有时候结合别人写的一点usb的例子能有点感觉,但是因为arm体系里面没有像单片机那样直接讲解引脚 ...
  • 学习ARM开发(1)
  • 学习ARM开发(2)
  • 学习ARM开发(4)
  • 学习ARM开发(6)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved