高速数字电路设计与实现-Read

合集下载

一种高性能异步FIFO的设计与实现

一种高性能异步FIFO的设计与实现

27卷 第8期2010年8月微电子学与计算机M ICROELECTRONICS &COM PUTERVol.27 No.8August 2010收稿日期:2010-05-13;修回日期:2010-06-08一种高性能异步FIFO 的设计与实现李 冬1,赵志凯2(1中国矿业大学信息与电气工程学院,江苏徐州221008;2中国矿业大学计算机科学与技术学院,江苏徐州221008)摘 要:提供了一种全新的高性能异步FIF O 设计方案.首先定义了F IFO 的通信协议和总体结构设计,然后围绕如何提高FIF O 性能依次论述了存储阵列设计、读写控制逻辑和空/满判断逻辑的设计方法.通过与FPGA 本身的F IF O 模块比较,该方案可以提高FI FO 性能30%以上.关键词:异步F IFO ;亚稳态;多时钟中图分类号:T P302 文献标识码:A 文章编号:1000-7180(2010)08-0145-04Design and Implementation of High Performance Asynchronous FIFOLI Dong 1,ZHAO Zhi kai 2(1School of I nformation and Electr ical Engineering,China U niversity of M ining and T echnolog y,Xuzhou 221008,China;2School of Co mputer Science and T echnolo gy,China U niversity of M ining and T echnology ,Xuzhou 221008,China)Abstract:T hi s paper presents a high performance FIF O desig n t hat interfaces subsystems on a chip working at different speeds.T he communication protocol and the ar chitecture of F IFO are pr oposed at first.A im at improving its operation speed,the design of stor ag e array,read/w rite control logic and full/empty status logic are described par ed with the ex isting F IFO block,the desig n s performance improv ement r atio is more than 30percent.Key words:asy nchr onous FIF O;meta stability;multiple clock1 引言随着计算机及电子器件的飞速发展,高速处理器中的逻辑越来越复杂,芯片规模不断扩大,在一个芯片中常常含有多个不同的高速时钟.当数据从一个时钟域传输到另一个时钟域时,确保数据在高速状态下的可靠传输就成为一个重要问题.异步FIFO (First In First Out)单元成为解决这类跨时钟域的数据可靠传输问题的不可缺少的元件.异步FIFO 是一个缓冲存储部件,用于在两个不同时钟域之间进行数据交换.数据从一个时钟域生成并写入FIFO,然后从另外的时钟域读出并被使用.为了提高FIFO 的性能,需要精心设计FIFO 的体系结构和电路实现.为此,文中对已有的工作进行了仔细研究.不同的设计有不同的读写控制策略和空/满逻辑判断方法.有些方法会导致性能降低,比如存储阵列会严重影响系统性能[1]、在设计中使用减法器来进行空/满逻辑判断也会降低系统性能[2].文中基于FIFO 存储电路的功能和特点,讨论了FIFO 设计的关键技术,重点探讨了高性能异步FIFO 的设计和实现方法.2 总体结构2.1 外部端口FIFO 是一种用来作为缓冲的存储器,它能对数据进行快速顺序的存储和发送,主要用来解决不同速率器件间的速率匹配问题.图1是采用FIFO 连接的数据通信系统.图1中,数据发送系统和数据接收系统采用不同的工作时钟.数据发送系统产生数据,数据接收系统使用数据.FIFO 模块通过不同的端口分别与数据发送系统和数据接收系统连接,其中与数据发送系统连接的端口统称为 写端口!,与数据接收系统图1 采用F IFO 连接的数据通信系统连接的端口统称为 读端口!.写端口包括四组信号,分别是:(1)req put 来自数据发送系统的发送请求信号;(2)data put 数据发送总线;(3)full 该值为1时表示FIFO 存储空间满;(4)clk put 数据发送系统工作时钟.读端口包括五组信号:(1)req get 来自数据接收系统的数据请求信号;(2)valid get 标志接收的数据是否有效;(3)empty 该值为1时表示FIFO 存储空间空;(4)data get 数据接收总线;(5)clk get 数据接收系统工作时钟.2.2 通信协议FIFO 的写端口和读端口分别遵循不同的通信协议.写端口的数据通信协议如下:当数据发送系统有数据需要传输时,在clk put 时钟上升沿来临之前,数据需要放在dataput总线上,并给出req put 信号,如果在时钟上升沿来临时,full 信号为低电平,则数据被写入FIFO.如果时钟上升沿来临时,full 为高电平,则数据发送系统需要一直等待full 信号变为低电平,数据才能正常发送.如图2所示,在时钟沿A,数据被正确写入FI FO;在时钟沿B,数据不能被写入FIFO,需要等待FIFO 腾空.图2 F IFO 写端口的时序图读端口的数据通信协议如下:当数据发送系统有数据需要传输时,在clk get 时钟的上升沿来临之前,数据接收系统首先发送req g et 信号,如果FIFO 中存在有效数据,那么数据将被放在data get 数据总线上,同时valid g et 和em pty 信号也被置为相应的值.在clkget 的下一个时钟沿来临时,数据接收系统可以根据后两个信号来决定数据总线上的data get 数据是否有效.valid get 表示当前读取的数据是否有效,empty 表示当前数据读取之后,FIFO 是否为空,在系统初始化时,empty 的初值置为0.2.3 结构设计FIFO 的总体结构如图3所示.与RAM 相比,FIFO 对存储阵列按顺序读写,不需要额外的地址端口.图3 FI FO 的总体结构FIFO 的存储阵列类似于一片双端口的RAM,可以同时执行读操作和写操作,读写操作受控于不同的时钟.空/满状态判断逻辑根据读、写指针的变化实时检测当前FIFO 的空/满状态.读控制和写控制逻辑分别根据相应的读写信号,控制存储存储阵列执行读操作和写操作.3 存储阵列与读写控制逻辑改善存储阵列与读、写控制逻辑是提高FIFO 性能的有效途径.3.1 存储阵列设计当前广泛使用的片上存储单元有SRAM 、DRAM 和Flash 等多种形式.由于对FIFO 进行读、写操作的性能与存储阵列的性能密切相关,因此我们选择SRAM 来构建存储整列.SRAM 是静态随机存取存储器,它的每一个单元由6个尺寸不同的晶体管构成[1],它存储数据是依靠晶体管之间的正反馈结构.在执行读写操作时,由于它既不需要像DRAM 那样的预充电-求值过程,也不需要Flash 那样的编程-擦除过程,因而效率较高.146微电子学与计算机2010年通过对晶体管尺寸的优化,读写性能可以得到较大改善.为了加快读操作的时间,SRAM采用了灵敏放大单元,以便加快读操作的时间并提高数据的可靠性.多个SRAM单元排列在一起构成了存储阵列.为了便于同时优化读、写性能,阵列的排列需要尽量接近方形.3.2 读写控制逻辑FIFO的读写控制逻辑控制读写指针和存储阵列进行工作.FIFO对存储阵列按地址依次读写.系统初始化之后,FIFO的读写指针均指向0地址,每执行一次读操作或者写操作,相应的读写指针顺序加1.当指针移到存储阵列的最后一个位置后,下一个操作会使指针返回地址0.读写指针如此周而复始地变化,FIFO空间得到了最有效的运用.写指针总是指向下一个要写入的单元,每执行完一次写操作后,写指针指向下一个将要写入的存储单元.在写操作之前,需要判断写指针指向的单元是否可以写入,这需要空/满判断逻辑的信号支持.在clk put时钟的上升沿,如果req put信号有效,并且full无效,那么数据data put在这一时钟沿被写入存储阵列,同时写指针加1指向下一个将要被写入的单元.如果full信号有效,那么req put信号需要一直保持,直到full信号无效数据才能被写入.与此类似,读指针总是指向当前被读出的单元.每执行完一次读操作后,读指针指向下一个将要读出的存储单元.在读操作之前,需要判断读指针指向的单元是否可以读出,这需要空/满判断逻辑的信号支持.在clk get时钟的上升沿,如果req get信号有效,并且empty无效,那么数据在这一时钟沿被放在data g et数据总线上,同时读指针加1指向下一个将要被写入的单元,valid get信号置为有效.如果empty信号有效,那么valid get信号被置为无效,req get信号需要一直保持,直到empty信号无效数据才能被读出.对于数据量比较大的异步通信系统来说,上述读写控制逻辑可以实现每个时钟周期写入或者读出一个数据项,大大提高了数据读写的效率.同时,时序控制逻辑简单,便于实现.我们采用verilog语言实现了上述读写控制逻辑,并通过逻辑综合在FP GA中进行了实现.4 空/满判断逻辑分析4.1 空/满判断逻辑在FIFO进行读写操作之前,需要正确判断FI FO的存储状态,以免出现误读或者误写.正确判断FIFO的空/满状态是FIFO设计的关键点之一.空/满状态判断的原则是写满而不溢出,读空而不多读[3],以免造成数据丢失或者误用.如何设计FIFO[4]的空/满状态判断逻辑关系FIFO的读写性能.当读写指针在同一时刻指向同一个内存位置时,FIFO处于空或者满状态,否则为非空非满状态,FIFO可以随意执行读写操作.然而,当读写指针重合时,具体是空还是满要通过逻辑进行分析.传统的判断方法是另外设置一个状态位[5],作为最高位,其余作为地址位.当系统初始化时,状态位和地址位均置0.当读写指针的地址位和状态位全部吻合时,FIFO处于空状态;当读写指针的地址位相同而状态位不同时,说明写指针比读指针多循环一次,FIFO处于满状态.这种状态判断逻辑工作频率低且占面积大,不适用于高度集成化和快速数据处理的场合[3].为了快速判断空/满状态,我们采用为每个存储单元附加一个锁存器来标志单元的存储状态.当某个单元被写入数据时,锁存器被置1表示单元处于满状态.当某单元的数据被读出时,锁存器的状态被置0,表示单元处于空状态.假设第i个单元的满状态用f i表示,空状态用ei表示.对于含有N个存储单元的FIFO来说,可以分别采用式(1)和式(2)来进行空/满状态判断.公式中的AND和OR分别表示逻辑与!操作和逻辑或!操作.full=ANDNi=1(f i)(1)em pty=ORNi=1(ei)(2)以上判断逻辑如果用组合逻辑实现,虽然运行效率较高,但是逻辑规模大,需要占用较大的芯片面积.为了克服这个缺点,采用动态逻辑来实现状态判断,从而在减小芯片面积的同时获得更高的运行效率.图4是采用动态逻辑来判断含有4个存储单元的FIFO的空/满状态判断的电路图.从图中可以看出,空/满判断逻辑只需要较少的芯片资源.对于含有更多存储单元的FIFO来说,判断逻辑可以进行相似的扩充.4.2 亚稳态的避免异步电路设计需要妥善处理亚稳态的问题.当异步信号在不同的时钟域中传输时,由于工作时钟不同,如果某信号在变化的过程中恰好被采样,那么采样信号的状态变得不可确定,这种现象称为亚稳态[1].147第8期李冬,等:一种高性能异步FI FO的设计与实现图4 采用动态逻辑的空/满状态检测电路在异步FIFO的设计中,发送端口和接收端口采用不同的工作时钟.而空/满判断逻辑与两个时钟均密切相关,因而可能产生亚稳态的问题.一旦产生亚稳态,说明信号电平不稳定.如果这种状况持续的时间大于一个时钟周期,不稳定的数据状态就会造成下一级的触发器错误接收或者发送电平信号,从而影响整个FIFO的数据传输.在异步FIFO数据传输过程中,由于发送端和接收端的时钟不同,建立时间和保持时间的冲突不可避免,因而一定会产生亚稳态的问题.解决亚稳态的问题需要从分析时序电路的特性入手.对于时序器件来说,信号相对于时钟满足建立时间和保持时间是保证信号被可靠采样的前提.根据亚稳态产生的条件,可以对不同时钟域输入的信号采用双所存器连续锁存两次.如果第一个锁存器锁存到一个不稳定的电平信号,在经过一个时钟后可能趋于稳定,从而得到一个稳态的信号值.虽然亚稳态不可避免,但采用这种双所存结构之后,电路出现亚稳态的概率可以将到非常低的程度.5 实验验证采用FPGA对文中设计的FIFO的控制逻辑和状态检测逻辑进行了验证.数字逻辑部分采用了Verilog硬件描述语言进行实现.验证实验在Falcon -E25T G开发平台上进行,使用的FPGA为Xilinx 的SPARTAN3E.设计和仿真环境采用Xilinx的ISE9.1i.FIFO的存储体部分例化了FPGA提供的块RAM.FIFO的数据宽度为8位,深度为4096.通过实验,文中设计的FIFO单元的读写性能可以达到400MH z左右,比ISE工具自动生成的FIFO单元的工作频率提高了约100MH z,FIFO性能提高幅度达到30%以上.与ISE自动生成的FIFO相比,本文中FIFO所占用的FPGA资源有所增加,约增加15%左右.在高性能设计中,在增加少许资源的情况下获得显著的性能提升是值得的.6 结束语文中讨论了高速异步FIFO电路的设计方法,通过精心设计FIFO体系结构、读写电路和状态检测电路,可以实现FIFO工作性能的大幅提升.文中的设计用于FPGA设计,可以有效解决多时钟域之间的高速数据通信问题.参考文献:[1]Rabaey J M,Chandrakasan A,Nikolic B.数字集成电路∀∀∀电路、系统与设计[M].2版.周润德,译.北京:清华大学出版社,2004.[2]刘洪波,龙娟,郝晓莉,等.异步状态判断的研究与设计[J].微电子学与计算机,2007,24(3):81-84.[3]徐海铭,程月东.高速异步FI FO设计[J].电子与封装,2009(6):14-16.[4]Chelcea T,N owick S M.A low-latency FIF O for mix ed-clock systems[C]//Pro ceedings of the IEEE Computer Societ y A nnual W orkshop on VL SI(W VL SI 00).Orlan do,2000:119.[5]于海,樊晓桠.基于F PGA异步F IFO的研究与实现[J].微电子学与计算机,2007,24(3):210-213.作者简介:李 冬 女,(1989-).研究方向为电子电路.赵志凯 男,(1983-),博士研究生.研究方向为机器学习、模式识别.148微电子学与计算机2010年。

第五讲 SPI操作

第五讲 SPI操作

也许,昨晚你刚看完前面的四讲,学到了VHDL编程的基本功。

结果,第二天一早“老板”需要你接手某项目上的CPLD编程,其中就包括今天要讲解的AT93C46存储芯片的VHDL驱动。

首先,这个芯片采用的是“三线串行接口”,兼容SPI接口。

所谓的SPI就是Serial Peripheral interface的缩写,即串行外围设备接口,是Motorola公司推出的三线同步接口,一种高速的,全双工,同步的通信总线。

该总线广泛应用于EEPROM,FLASH,实时时钟,AD转换器,数字信号处理器(DSP)、数字信号解码器、单片机和诸如ARM 等高端的微处理器中。

所以,这个接口的用处很广,掌握了这类接口操作的操作方法对我们以后的学习有很大的帮助。

我们先了解一下SPI的一些基本知识点。

SPI以主从方式工作,这种模式通常有一个主设备和一个或多个从设备。

进行数据传输时需要如下的信号线:MOSI,MISO,SCK,SS(多个从设备时需要)。

(1)MOSI–主设备数据输出,从设备数据输入(2)MISO–主设备数据输入,从设备数据输出(3)SCK–时钟信号,只能由主设备产生,也就是说谁产生SCLK,谁就是主设备(4)SS–从设备使能信号,由主设备控制如下图是一对一的硬件连接框图:SPI接口在内部硬件实现上就是两个简单的移位寄存器:在主器件产生的SS信号和SCK脉冲下,按位传输,高位在前,低位在后(具体器件应用时的时序可能会变化,这也就是所谓的兼容SPI)。

如在下图中,数据在SCLK的下降沿改变,在SCLK上升沿被采样。

简单了解SPI后,我们再看详细的看其手册,获取对我们有用的信息。

ATMEL公司生产的93C46芯片有1K bit的存储空间,有8位和16位数据模式可选择,即1K bit的存储可分为128×8或64×16,它的电压范围是2.7V到5.5V和1.8V到5.5V,在5V的电压下最高时钟频率可以达到2M,芯片可以进行一百万次的擦写,数据可以保存一百年。

quartus 异步fifo用法 -回复

quartus 异步fifo用法 -回复

quartus 异步fifo用法-回复quartus异步FIFO用法引言:在数字电路设计中,FIFO(First In First Out)是一种常见的数据存储器,它允许数据以先进先出的顺序进出。

在使用Quartus进行FPGA设计时,异步FIFO是一种非常有用的工具,它可以帮助我们处理不同速度的数据流,并实现数据的缓冲和流量控制。

本文将介绍Quartus异步FIFO的基本概念和使用方法,并给出一些实例。

第一部分:Quartus异步FIFO概述1.1 什么是异步FIFO?异步FIFO是一种数据存储器,在其中数据可以以不同速度进入和退出。

与同步FIFO不同,异步FIFO的读写时钟可以是不同的,这使得它可以处理速度不匹配的数据流。

Quartus提供了异步FIFO的库函数和IP核,使得它可以在FPGA设计中方便地使用。

1.2 Quartus异步FIFO的特点Quartus异步FIFO具有以下特点:- 可以使用不同的时钟频率进行读写操作。

- 可以配置不同的缓冲深度来满足特定的设计需求。

- 可以实现流量控制和数据的重排序。

- 可以支持并行读写和读写使能信号。

- 可以适应不同的数据宽度和时钟域要求。

第二部分:Quartus异步FIFO的使用方法2.1 创建异步FIFO在Quartus中创建异步FIFO的方式有两种:使用库函数和使用IP核。

使用库函数创建异步FIFO的步骤如下:- 首先,在Quartus中打开设计工程,并创建一个新的源文件。

- 然后,将异步FIFO的库函数导入到源文件中,以便在设计中调用它。

- 接着,实例化异步FIFO,并通过参数配置其属性,例如宽度,深度,时钟域等。

- 最后,将异步FIFO连接到其他逻辑模块,完成设计。

使用IP核创建异步FIFO的步骤如下:- 首先,在Quartus中打开设计工程,并创建一个新的IP核。

- 然后,在IP核的界面中选择合适的FIFO类型和配置参数。

- 接着,将异步FIFO实例化到设计中,将其连接到其他逻辑模块。

数字电路 tcd

数字电路 tcd

数字电路 tcd数字电路是一种由数字逻辑门和电子元件组成的电路系统,用于处理和控制数字信号。

它是计算机科学和电子工程领域的重要基础,广泛应用于计算机、通信、控制系统等领域。

数字电路的核心是数字逻辑门,它是一种能够根据输入信号产生特定输出信号的电子元件。

常见的数字逻辑门包括与门、或门、非门、异或门等。

这些逻辑门可以通过组合和连接来构建复杂的数字电路,实现各种逻辑功能和运算操作。

在数字电路中,信号以二进制形式表示,只有两个可能的取值,分别为0和1。

这种离散的信号可以通过逻辑门的开关状态来表示。

当逻辑门的输入信号满足特定的条件时,门的输出信号会发生变化。

例如,当与门的所有输入信号都为1时,与门的输出信号才为1;当或门的任意输入信号为1时,或门的输出信号就为1。

数字电路的设计和分析是计算机科学和电子工程领域的重要课题。

设计一个高效可靠的数字电路需要深入理解数字逻辑门的工作原理,并能够将其灵活组合和连接,以满足特定的功能和性能需求。

分析一个数字电路的性能和可靠性则需要掌握电路分析和信号处理的基本方法。

数字电路的应用非常广泛。

在计算机中,数字电路用于实现中央处理器、存储器和输入输出接口等核心部件。

在通信系统中,数字电路用于实现编码解码、调制解调、数据传输和信号处理等功能。

在控制系统中,数字电路用于实现逻辑控制、数据采集和信号处理等任务。

随着技术的发展和进步,数字电路的规模和复杂性不断增加。

现代计算机芯片上集成了数十亿个逻辑门,能够实现复杂的计算和处理任务。

数字电路的设计和优化已经成为一个专门的领域,需要掌握高级的设计工具和技术。

数字电路是一种重要的电路系统,用于处理和控制数字信号。

它的设计和分析涉及到数字逻辑门、电路分析和信号处理等知识。

数字电路在计算机、通信、控制系统等领域有着广泛的应用。

随着技术的进步,数字电路的规模和复杂性不断增加,对设计和优化的要求也越来越高。

掌握数字电路的基本原理和设计方法对于计算机科学和电子工程的学习和研究具有重要意义。

ddr2-设计注意事项

ddr2-设计注意事项

DDR2设计说明:1 芯片选择:MT47H64M16HR-37E2 管脚分配:单片DDR2占用管脚资源如下表,一片需要一个FPGA BANK:将DDR2 SDRAM的所有有关的数据线,地址线,控制线,时钟线,均连到FPGA的SSTL18_II电平的BANK上。

端接:SSTL18_II电平在Virtex5 的端接:使用DCI的端接如下图:具体电路的连接参照我们已经调通的一个板卡原理图设计。

主要是:DDR2数据线、DQS信号等,与FPGA之间串接22欧姆电阻;对时钟、地址信号和控制信号通过47欧姆的电阻上拉至VTT(0.9V),PCB设计上需要较多因素。

PCB布线顺序:数据线-> 地址线-> 控制线-> 时钟。

其中数据线包括DQ/DQS/DM,它们都是在时钟的双沿发生操作。

PCB布线要点:(1)各种线的总长有要求;(2)时钟(差分对)除了等长(< 50mil),要需要25mil的安全距离。

两个时钟CK之间相差100mil之内。

(3)地址线不用等长,比时钟要长一些(4)控制线比时钟要长一些(5)每一个Data Group(8bits data + DQS + DM)在同一层走线。

DDR2的数据线与DQS是源同步关系,等长处理。

同组的数据线以DQS基准等长(<50mil)。

组与组之间的长度差不超过1000mil。

DQS与CK之间的约束较弱,一般不考虑,长度差别不要超过1000mil就差不多。

(6)地址/命令/控制信号与时钟是源同步的,走线长度匹配并不严格要求。

DDR2 SDRAM的供电参见电源章节。

还需要注意的是,需要把DQS信号都连接到IO_LxN_CC_LC的管脚上。

本时钟信号CK是FPGA输出给DDR2。

2 供电(1)V DD=1.8 VDDR2 SDRAM内存的电流消耗取决于其容量的大小以及运行的环境和速度。

根据Micron公司的数据手册(1GbDDR2.pdf),MT47H64M16HR-37E在Operating bank interleave read current下IDD的最大电流为350mA(颗粒是-187E,最大为520mA)。

基于FPGA的高速多通道AD采样系统的设计与实现_徐加彦

基于FPGA的高速多通道AD采样系统的设计与实现_徐加彦
AD7606 转 换 控 制 信 号 为 CONVSTA 和 CONVSTB。 CONVSTA 控 制 V1,V2,V3,V4 通 道 ,CONVSTB 控制 V5,V6,V7,V8 转换通道,本文 将 CONVSTA 和 CONVSTB 短 接 在 一 起 ,8 通 道 同 时 转 换 。 S0 是空闲状态,CS 为高电平,RD 为高电平;通过边 沿检测是否有 BUSY 信号, 若有则进入 S1 状态,否 则等待。 由于等待 CS 稳定下来(CS 到 RD 设置时间 t8),需要插上延 时状态 S2,到 S3 稳 定 ,在 S4,S5 状 态将 RD 拉低,读取第一通道 V1 的转换结果,之后 依次重复 7 个脉冲序列,可使各通道的转换结果按 升序逐个输出到并行总线 DB[15:0]上,在状态机里 可方便地设置各种状态。
数转换芯片, 具有 8 通道同时采样,16 位输出的特
点,是一款高分辨率、双极性输入、同步采样的高性
能 模 数 转 换 芯 片 。 采 用 Altera 公 司 的EP2C35F672
可编程逻辑控制器件对 AD7606 进行时序控制。 并
在 FPGA 里设置一块双口 RAM,存储 AD7606 的数
输出条件
输出
图 2 有限状态机模型 Fig.2 Model of finite state machine
在数字电路中,状态机可用可编程逻辑控制器 件来建造,通过寄存器来储存状态变量,确定状态 转移的一块组合逻辑和确定状态机输出的另一块 组合逻辑。 2.3 时序程序的设计
有限状态机的设计对系统的高速性能、高可靠 性、稳定性都具有决定性作用。 采用状态机的形式, 在每个状态中,状态机可并行同步完成许多运算和 控制操作, 相比于 CPU 按照指令逐条运行的方式, 一 般 有 状 态 机 构 成 的 硬 件 系 统 比 对 应 的CPU 完 成 同样功 能 的 软 件 系 统 的 工 作 速 度 要 高 出 3~5 个 数 量级。 在可靠性能方面,状态机是在FPGA 通 过 纯 硬 件 电 路 构 成 , 其 运 行 不 依 赖 软 件 指 令 逐 条执行,因 此不存在 CPU 运行软件过程中的许多缺陷[3]。

第01讲可编程逻辑器件的基础知识

第01讲可编程逻辑器件的基础知识

1.3 可编程逻辑器件的基本概念
当浮置栅带上电子后,如果要想擦去浮置 栅上的电子,可采用强紫外线或x射线对叠 栅进行照射,当浮置栅上的电子获得足够 的能量后,就会穿过绝缘层返回到衬底中 去。
1.3 可编程逻辑器件的基本概念
电可擦除的可编程只读存储器EEPROM:
EEPROM(也有写成E2PROM)是一种可以用 电信号擦除和改写的可编程ROM。EEPROM的擦 除和改写电流很小,在普通工作电源条件下即可 进行,擦除时不需要将器件从系统上拆卸下来。 EEPROM不仅可以整体擦除存储单元内容,还可 进行逐字擦除和逐字改写。
FPGA器件在DSP领域将要大显身手。
随着DSP应用领域的拓宽和各类性能指标 的不断提升,采用DSP处理器(如TI的 TMS320C系列)的解决方案日益面临着不断 增加的巨大挑战,而自身的技术瓶颈(如运行 速度、吞吐量、总线结构的可变性、系统结构 的可重配置性、硬件可升级性等等)致使这种 解决方案在DSP的许多新的应用领域中的道路 越走越窄。
1.2 可编程器件的演进
PAL和GAL都属于低密度PLD, 其结构简单,设计 灵活,但规模小,难以完成复杂的逻辑功能。把 这一类PLD称为简单的PLD,即SPLD。
八十年代中期,出现规模更大,集成度更高,可 以完成非常复杂功能的PLD,把这类PLD称为复杂 可编程逻辑器件CPLD(Complex PLD)。
在许多应用领域,以处理器(DSP Processor) 为核心的DSP系统具有很大的局限性。
所 以 DSP 处 理 器 不 是 DSP 系 统 的 唯 一 选 择 ; DSP技术不等于DSP处理器应用;DSP的开发 应用、教学和实验不能仅仅围绕DSP处理器来 进行就可以了。 事实上,在DSP领域,除了普 通的DSP处理器以外,利用FPGA来实现DSP 系统已十分普遍。

基于DSP和FPGA的CAN总线通信系统设计与实现

基于DSP和FPGA的CAN总线通信系统设计与实现

互转换,此种系统具有较快的信息转换速度,并且具 有较强的实时性、可靠性及稳定性 。 [2]
系统中使用 IT 较高性能及定点数字信号的处理 器 芯 片 ,其 具 有 较 高 的 工 作 效 率 。 通 过 数 字 信 号 处
收稿日期:2018-04-10 稿件编号:201804087
理 器 芯 片 作 为 主 控 制 器 ,通 过 上 层 应 用 程 序 实 现 千
现代通信系统中的子设备和分系统一般通过不 同总线网络相互连接,比如 CAN 总线、1553B 总线及
1 通信系统的总体设计方案
千 兆 以 太 网 等 ,因 为 不 同 总 线 网 络 中 的 设 备 信 息 相 互 交 互 较 为 困 难 ,所 以 就 要 在 不 同 种 类 数 据 总 线 中 实现转换系统的设置[1]。对于此种问题,传统解决方 法就是通过 PC 机到 CAN 板卡中对不同总线之间通
DSP and FPGA
WANG Xiao⁃wei (Xianyang Vocational Technical College,Xianyang 712000,China)
Abstract: Aiming at the problem of data transmission in modern high speed condition,a CAN bus communication system based on DSP and FPGA is proposed to control CAN bus,so that data can be transmitted effectively. The system uses SJA2512 as the controller of CAN bus,using PCA566 as the transceiver,use control bus control to read and write and parallel signal processing,data transmission through the data processing unit to realize the bus controller,can avoid the waste of time of data transmission between DSP and FPGA. Finally,the designed CAN bus communication system is tested. The experimental results show that the system is stable and reliable in data transmission,and it can effectively meet the demand of signal transmission and processing in high-speed condition. Key words: DSP;FPGA;CAN bus;communication system
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
–地弹与管脚数N成正比,所以在实际的数字系统中应尽量避免地址/数据总线出现由FFFF变成0000的情况2rTV∆
1、电路调试与测试原因
•随着数字系统规模的增大、复杂程度的提高,电路测试及可靠性设计变得越来越重要。
•为实现复杂系统的有效测试所花费的时间通常比完成功能设计的时间还要长
•目前器件的管脚数高达1000,不远的将来要增加到2000,4000和更高。使用这些高集成度的封装导致超密,超复杂的系统都挤在一个20层的使用微过孔和内建(build-up)技术的电路板上。
•优点:每条线只需要一个端接电阻,无需与电源相连接,消耗功率小。
•缺点:当信号逻辑转换时,由于的分压作用,在源端会出现半波幅度的信号,会出现不正确的逻辑态。并且由于在信号通路上加接了元件,增加了RC时间常数从而减缓了负载端信号的上升时间,因而不适合用于高频信号通路(如高速时钟等)。
•简单并行端接–在输出为高电平状态时,这种并行端接电路消耗的电流过大,对于50Ω的端接负载,维持TTL高电平消耗电流高达48mA,因此一般器件很难可靠地支持这种端接电路。
•对于理想的情况,希望在负载端得到的信号没有任何振铃,有三种方法可以达到这样的目的:
–一是使负载反射系数为0,即 ,这可以消除信号的一次反射,可以采用负载端并行端接来实现;
–二是使源端反射系数为0,即 ,这可以消除信号的二次反射,可以采用源端串行端接来实现;
–三是使用短线。在信号走线可以认为是短线的情况下,可视为1,信号传输没有幅度衰减和相位时延。
–高速信号线尽量走在贴近地平面的信号层里,以减小走线与地平面之间的距离
–减小高速信号走线的长度,否则高速信号附近的会有更多的信号受其影响
–在速度满足要求的前提下,使用上升沿较缓的驱动器
6、地弹及其改善
•由于输出信号的翻转导致芯片内部参考地电压的飘移叫做地弹
•接地反弹的噪声主要是源自于电源路径以及IC封装所造成的分布电感。
–然而在高速电路的设计中,我们更关心的是信号的上升、下降时间。对于频率不高,但是边沿陡峭的信号仍然会存在某些高频信号的特性。
–由于频率较高的信号边沿必定很陡,所以通常把这二者混为一谈。
•而在高速电路中,由于时钟速率的提高,电路中的连线不能够再被当作理想导线,应该看成是传输线,电路通常需要用分布参数模型来分析
•PCB板中的传输线分析
–对某参数:
•微带传输线
•带状传输线
–对于同样的电介质,
•微带传输线的传输速度要比带状传输线的快
•一般微带传输线的阻抗也比带状传输线的高。
4、反射及端接技术
•传输线上只要出现阻抗不连续点就会出现信号的反射现象
•信号线的源端和负载端、过孔、走线分支点、走线的拐点等位置都存在阻抗变化,会发生信号的反射。
•系统设计中的最基本要求之一就是系统的可测试性
2、电路的可测性
•可测试性指的是产品能及时准确地确定其状态(可工作、不可工作、性能下降)和隔离其内部故障的设计特性。
•电路板的可测性是指电路板调试过程中集成电路芯片功能的可测性和电路板上电路功能可测性
•集成电路的可测试性方法有多种:针对性可测试性设计方法、扫描路径法、内建自测试、边界扫描技术等
•信号质量差(不完整)的原因主要有:反射、串扰、地弹等等
•不完整的信号现象有:过冲、欠冲、阻尼震荡、非单调等。
3、传输线理论
•传输线是微波技术中最重要的基本元件之一,,传输线的研究涉及很多复杂的理论。
•在高速数字设计中只涉及到四种:同轴电缆、双绞线、微带线和带状线
•最重要参数:传输线的特性阻抗和信号在传输线中的时延。
•如果负载阻抗小于传输线特性阻抗,反射电压为负,反之,如果负载阻抗大于传输线特性阻抗,反射电压为正。
•反射造成了信号振铃现象,如果振铃的幅度过大,一方面可能造成信号电平的误判断,另一方可能会对器件造成损坏。
•信号到负载端后部分信号会向源端反射,这部分信号由负载端反射系数决定
•从负载端反射回来的信号经过传输线又传回源端,源端有将其一部分反射回负载端,这部分由源反射系数决定:
高速数字电路设计与实现
•高速数字电路简介
•信号完整性
•电路的调试与测试
•电路板级设计
1、高速数字电路简介
•电磁继电器、电子管、晶体管、集成电路
•空中飞线连接、单面敷铜板、双层电路板、多层电路板
•从数字电路的发展来看,高速是电路发展的趋势
•高速数字设计和低速数字设计相比最大差异在于无源元件的行为。这些无源元件包括导线、电路板、集成电路的封装和电路板上的过孔等等。
•在低速电路中,无源电路元件仅有封装部分对电路造成部分的影响
•在高速电路中,所有无源电路元件都影响电路的性能。
•高速数字设计就是研究这些无源电路元件对电路造成的各种影响,如:对信号传输的影响(振铃和反射),信号间的相互作用(串扰),和自然界的相互作用(电磁干扰)等等
•到底多高的速度才能称为高速?
–目前还没有一个权威的频率界限,工程上一般认为超过30MHz就是高速电路,也有的人认为是25MHz或50MHz。
•其他信号反射原因:
–印制板电路中的过孔
–走线分支点
–走线拐点
5、串扰及其改善
•串扰是指当信号在传输线上传播时,因电磁耦合对相邻的传输线产生的不期望的电压噪声干扰。
•串扰的改善方法
–地平面在串扰的问题上起着至关重要的作用
–拉大两条信号线之间的距离,减小耦合程度
–相邻信号层信号尽量相互垂直或成一定的角度
•当器件输出信号有翻转时,就会产生噪声短脉冲。
•当系统的速度越快或同时转换逻辑状态的I/O管脚个数越多时就越容易造成接地反弹。
•地弹的改善方法
–接地反弹与引线电感成正比,所以应尽量减少分布电感量
–地弹与负载电容成正比,所以应该尽量采用输入电容较小的器件
–地弹与成正比,所以应尽量采用上升沿变化缓的器件
•工程上一般认为,对于印刷电路板上的走线或点对点的电导线长度只要大于上升沿长度的1/6,电路就体现出分布参数特性。
2、信号完整性
•由集成电路芯片构成的电子系统更是朝着大规模、小体积、高速度的方向发展的。
•信号完整性(Signal Integrity,简称SI)是指在信号线上的信号质量,即实际传输信号与理想信ቤተ መጻሕፍቲ ባይዱ的一致性。
•对电路板级可测性设计的一些考虑
–信号探测点
–子系统的独立性
相关文档
最新文档