1、基于FPGA的双口RAM在双CPU通信中的应用及设计论文毕业设计(论文) 题 目 名 称: 基于FPGA的双口RAM在双 CPU通信中的应用及设计 毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得 及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。作 者 签 名: 日 期: 指导教师签名: 日期: 使用授权说明本人完全了解
2、 大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。作者签名: 日 期: 学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担
3、。作者签名: 日期: 年 月 日学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权 大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。涉密论文按学校规定处理。作者签名: 日期: 年 月 日导师签名: 日期: 年 月 日注 意 事 项1.设计(论文)的内容包括:1)封面(按教务处制定的标准封面格式制作)2)原创性声明3)中文摘要(300字左右)、关键词4)外文摘要、关键词 5)目次页(附件不统一编入)6)论文主体部
4、分:引言(或绪论)、正文、结论7)参考文献8)致谢9)附录(对论文支持必要时)2.论文字数要求:理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于1.2万字。3.附件包括:任务书、开题报告、外文译文、译文原文(复印件)。4.文字、图表要求:1)文字通顺,语言流畅,书写字迹工整,打印字体及大小符合要求,无错别字,不准请他人代写2)工程设计类题目的图纸,要求部分用尺规绘制,部分用计算机绘制,所有图纸应符合国家技术标准规范。图表整洁,布局合理,文字注释必须使用工程字书写,不准用徒手画3)毕业论文须用A4单面打印,论文50页以上的双面打印4)图表应绘制于无格子的
5、页面上5)软件工程类课题应有程序清单,并提供电子文档5.装订顺序1)设计(论文)2)附件:按照任务书、开题报告、外文译文、译文原文(复印件)次序装订3)其它摘 要 基于现代通信系统的要求,本次设计详细研究了利用双端口RAM实现高速并行双CPU之间的数据通信,指出了设计中需要解决的几个关键性问题,并给出了相应的解决方案。 随着电子技术的迅速发展,大量的高速数据采集和现代工业测控系统和在线测试仪器的功能和性能提出了更高的要求,双CPU并行工作双单片机系统广泛应用。为了使两个单片机可以快捷有效地交换信息,充分利用系统资源,共享内存实现通过使用双端口RAM现在更受欢迎的方法。大容量高速FPGA器件具有
6、较高的集成,体积小,灵活配置和实验风险小的优势。在复杂数字系统越来越广泛的应用,数字电路设计采用1块FPGA设备存储设备和一些电气接口匹配电路解决方案已经成为一个主流的选择。使用FPGA实现函数的双端口RAM是一个很好的方法来解决这个问题的并行性和速度,以及其灵活的可配置特性使基于FPGA双端口RAM容易修改测试和系统升级可以降低设计成本,缩短开发周期。 在嵌入式多CPU系统中,CPU之间的通信可以使用串行、并行和系统总线方式的双端口RAM,等等。在三种沟通方式存在的共同传输速度慢的特点,在大量数据的情况下可能会导致数据处理时间的延长,实时性能,甚至出现数据拥堵现象。所以与方法之间的双端口RA
7、M数据交换系统是一个简单而有效的方法。关键词: FPGA;双端口RAM;双CPU;并行数据通信Abstract Based on the demand of modern communication system, the design was studied by using dual port RAM to implement the parallel data communication between the double CPU, pointed out the need to be solved in the design of several key problems, and
8、gives the corresponding solutions. With the rapid development of electronic technology, a large number of high-speed data acquisition and modern industry measurement and control system and the function of the online test instrument and performance put forward higher request, double CPU parallel work
9、 double single chip microcomputer system is widely used. Is becoming more and more widely used in complex number system, the digital circuit design of one piece of FPGA device storage equipment and some of the electrical interface matching circuit solution has become a mainstream choice. Using FPGA
10、to realize function of dual port RAM is a very good method to solve the problem of parallelism and speed, and its flexible configurable properties based on FPGA dual port RAM is easier to modify test and system upgrade can reduce the design cost, shorten the development cycle.Key words: FPGA; Dual p
11、ort RAM; Double CPU; The parallel data communication1绪 论1.1研究发展趋势随着现代智能系统的升级和更新,在双向通信和信息传输过程中,对信息量的增加和实时性的要求更加精准高效。这就要求在设计控制系统时提高系统对数据的高速采集和处理能力,充分发掘系统的大容量、高速度、快传输的潜力。在多CPU并行处理嵌入式的基础上,可以充分发挥系统的控制能力和超强的信息处理能力的潜能,提高系统的智能化和自动化的性能,从而是系统更好的适应各种复杂的控制环境,更好的发挥控制能力。在多CPU嵌入式控制系统中,数据传输通信已成为制约系统性能的主要因素,然而双口RAM的
12、高速数据传输通信和共享能力解决了系统性能提高的瓶颈问题。双口RAM不仅是一种性能极高的静态存储器,而且还是一种性能极好的通信器件。双口RAM的两侧端口之间可以实现多CPU的高速并行通信传输。这也是双口RAM芯片的一个重要应用特点。由于“基于FPGA的双口RAM”对嵌入式多CPU控制系统中CPU之间的数据通信有重要作用,因此对有关的研究比较多。综合考虑分析对于“基于FPGA的双口RAM”条件下嵌入式多CPU智能系统中多CPU之间的通信与数据处理所面临的关键性技术问题的研究比较广泛。在该背景条件下,双口RAM对于多CPU之间数据通信与传输问题的解决成为研究重点,当前可以应用的平台主要是FPGA软件
13、,FPGA又称为现场可编程逻辑门阵列,是一种通用型的用户可编程器件。通过FPGA构造出设计要求所需的双口RAM,用于解决多CPU智能控制系统中CPU之间的数据传输与处理等功能。目前,FPGA的发展有一些新的动态,主要有一些几个方面:1.更高的性能,芯片朝着高密度,低功耗,低电压的方向研究。2.更低的价格成本,使得研究成本降低,对研究具有重要意义。1.2研究现状在高速数据采集处理系统智能化发展的背景下,为了实现大数据的采集、传输、处理、实时控制等智能化功能,越来越多的多核CPU系统的出现,使得多CPU之间的通信成为制约其智能化系统发展的瓶颈问题。基于多CPU并行通信的嵌入式系统,利用双口RAM的
14、特殊端口性,实现多CPU之间安全可靠、实时传输的信息处理和大数据传输功能。在用双口RAM设计的多CPU并行通信系统中,RAM仲裁机制成为系统设计关键技术问题。多CPU通信系统在嵌入式系统中应用比较广泛,比如常见的有PCI总线系统,将所需的并行线和双机之间的控制线相连接就可以实现数据通信。对于“基于FPGA的双口RAM”背景下的双CPU通信产业发展中的研究。在“基于FPGA的双口RAM”条件下,掌握现代发展趋势,打破现有的串行、并行、系统总线的格局,给嵌入式多CPU系统带来巨大的挑战,所以将此项内容作为研究课题的人很多。在嵌入式多CPU系统中,CPU之间的通信方式可以分为:串行通信、并行通信、系
15、统总线方式以及双口RAM通信方式等。前三中通信方式的主要缺陷是传输速度慢、在处理大容量数据时容易出现数据拥堵,数据处理时间长,实时性效果差。由于双口RAM的数据处理能力强,传统的数据处理方式和利用价值偏低,这样就使得传统通信方式跟不上现代通信的需求。1.3研究重点方向对于“基于FPGA的双口RAM”的背景下双CPU通信传输所面临的发展机遇与严峻挑战。“基于FPGA的双口RAM”具有重要的研究意义,需要抓住发展要求,突破发展瓶颈,迎接挑战,做到扬长避短,吸取重要的发展成果,制定出相应的应对方案和措施。提升自己的研究水准和技术要求,并且通信传输问题的研究人群相当广泛。现场可编程逻辑门阵列FPGA是
16、一种在编程软件中通用型用户编程器件,一片FPGA芯片包括大量的逻辑门、寄存器和I/O口资源,FPGA结构灵活、操作简单、集成化程度高、通用性强,通过FPGA构造专用的双口RAM具有前沿意义。目前主要发展方向与趋势可以归纳为以下几点:更高的性能,性价比更高,芯片朝着低功耗、高集成、低电压方向发展,性价比更高,对FPGA的应用推广意义更大。很少有人提及,我将试图在此方向研究,加以技术改进,弥补之前的研究不足。本次课题研究重点是双口RAM在双CPU之间通信中起到的关键性作用,及双CPU之间通信所需解决的传输问题。第二章主要是讲解了双口RAM及双CPU的结构与工作原理,以及FPGA平台的工作原理和应用
17、。第三章是本次课题研究的重点,主要是设计系统和系统关键性技术的解决,提出了一些可行性的解决方案和软硬件技术。第四章主要是对本次课题研究的反思和提出的未来的发展方向,提出了在这次研究中所面临的问题,以及此次研究中没有解决的方案。2 RAM与CPU之间通信的基本原理2.1 双口RAM 结构及工作原理 2.1.1双口RAM的结构双端口RAM对SRAM内存两套完全独立的数据读写,地址线和控制线,并允许两个独立系统在同一时间随机存取存储器,或共享的多端口存储器。的最大特点是双端口RAM存储数据共享。内存通常配备两套独立的地址,数据和控制线路,并允许两个独立的CPU或异步控制器访问存储单元同时。数据共享,
18、所以必须能够访问仲裁控制功能。内部仲裁逻辑控制可以提供以下功能:定时控制相同的地址访问单元,存储单元块访问配置;信号切换逻辑(例如中断信号),等。双端口RAM可以用来改善RAM的吞吐量,同时也可以应用到实时数据缓存。双口 RAM 是一种高性能的双端口静态随机存取器。当起用读/写存取器时,既可以随机地按所给地址从RAM的存储单元模块中将数据取出(读取),也可以随机地将数据存入到RAM存储单元中(称为取出)。可以随机地对RAM进行读/写操作,所以使用起来相当便捷。因此,RAM在软硬件系统的设计中应用比较广泛。双口RAM的每一位信息都存储在一个触发器中,当有电源时,信息则不会丢失。一旦停电或发生其它
19、故障时,RAM 中的信息就出现丢失现象,因而不能够长期保存数据,也不方便将内存信息传输到其他地方。 双口 RAM 存储结构如图2.1所示。双口 RAM 通常由四部分组成:存储体(存储矩阵)、地址译码器、读/写控制器和仲裁器。图2,1双口RAM存储结构图 2.1.2双口RAM工作原理双口RAM芯片IDT7130是一种性能比较优越的通信器件,在多CPU通信系统设计中非常实用。双口RAM在使用中要求解决的实际问题时如何避免两端CPU对同一个RAM单元中起冲突,当双CPU对双口RAM进行读取操作时,会出现四种不同的情况:(1)双CPU有序的对同一地址单元进行读取操作;(2)双CPU同时对一个地址单元进
20、行读取操作;(3)双CPU同时对一个地址单元进行存操作;(4)双CPU同时对一个地址单元读出数据;这就要求双口RAM在系统设计时,起到调节作用使系统高效有序地运行。本设计采用自顶而下的设计理念。选用Xilinx公司的Spartan-6 FPGA器件,基于低功耗45 nm、9-金属铜层、双栅极氧化层工艺技术,提供高级功耗管理技术,150 000个逻辑单元,集成式PCI Express模块,高级存储器支持等。250 MHz DSP slice和3125 Gbs低功耗收发器。通过Verilog HDL语言对双口RAM功能的描述就能在一片FPGA器件内实现8位16字节的双口RAM,并进行读写操作控制。
21、在双口RAM读写操作控制Verilog HDL代码如下:library ieee;use ieee.std_logic_1164.all; -调用常用的程序包use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity ram is -定义实体 generic(width:integer :=8;length:integer:=8); -根据这个来改变RAM的大小,width为数据长度,length为数据个数 port(r_clk,w_clk:in std_logic;-定义写时钟和读时钟 r_add,w_add:in
22、std_logic_vector(2 downto 0);-写地址和读地址 r_en,w_en:in std_logic;-读使能和写使能 d_in:in std_logic_vector(width-1 downto 0);-数据输入 d_out:out std_logic_vector(width-1 downto 0);-数据输出end entity;architecture art of ram is type memory is array (0 to length-1) of std_logic_vector(width-1 downto 0);-定义一数组类型来存储数据 sign
23、al data:memory; beginprocess(w_clk,w_add,w_en,d_in)-写数据进程Beginif w_clkevent and w_clk=1 then-在时钟上升沿来时 if w_en=1 then -若使能为1,则写数据 data(conv_integer(w_add)=d_in; end if; end if;end process;process(r_clk,r_add,r_en,data)-读数据进程begin if r_clkevent and r_clk=1 then if r_en=1 then d_out=data(conv_integer(r
24、_add); end if; end if;end process;end art;2.2 双CPU工作原理及应用 2.2.1双CPU的结构 双CPU控制指的是操作系统有两个相对独立的物理CPU,协调两块主板在整个系统同时工作,性能在理论上是单一的双CPU。CPU的内部结构主要包括:(1)算术逻辑单元ALU (2)寄存器组 RS(3)控制单元(4)总线(Bus) 。双核心处理器,在两个CPU核CPU衬底集成,和每个处理器核心通过并行总线连接。双核心并不是一个新概念,但CMP(芯片多处理器、单片处理器)的最基本,最简单和易于实现的基本类型。换句话说是双核处理器在一个半导体作为一个处理器内核的处理
25、器有两个功能。结合两个物理处理器核芯,繁重,处理大数据,两个核心可以相互配合,实现最大的CPU运行效果。两个可以互补搭配的核心运行性能将得到改善,如使用英特尔奔腾双核处理器相当于D你有两个主机使用奔腾4。如果超线程是使用软件来模拟双核的效果,所以现在指的是双核心是两个核心的现实意义。它弥补了超级系统线程应用更少的缺点,可广泛应用于多个版本的Windows操作系统,它还可以有效地解决在双核操作分离和数据缓存冲突错误。 2.2.2双CPU的工作原理 CPU的主要任务是CPU通过执行各种命令,完成各种操作和控制功能,是计算机的核心组织,确定整个计算机系统的类型、性能和速度。我们常说,286年,286
26、年,486年,586年,奔腾,核心和core 2 duo是指CPU模型中,CPU由运算器和控制器组成。8051单片机W77E58兼容是一个快速,其内核重新设计后,提高了时钟速度和内存访问周期速度。改进后,在相同的时钟频率下,指令执行速度比标准8051快得多。相对而言,根据指令的类型,W77E58指令执行速度是标准8051的1.5 - 3倍。总的来说,W77E58大约2.5的速度比标准的8051倍。在相同的能力和低频时钟的情况下,也相应的降低功耗。采用静态CMOS设计理念,W77E58可以运行在较低的时钟频率。工作电压4.5 v至5.5 v,1 KB外部数据存储器,当用户使用片上存储器而不是外部
27、存储器可以节省更多的I / O端口。首先,CPU的内部结构分为控制单元、算术逻辑单元、存储单元(包括内部总线和缓冲区)三个部分。CPU工作像一个生产车间流水线:原料进入车间(应用程序指令),在货物分配调度部门(控制单元)和被送到生产线(算术逻辑单元),生产一个成品(加工后数据),然后在仓库存储(存储单元),然后等待市场推广销售(应用程序)。一般情况下,一条指令可以包括按规定顺序执行的若干操作,CPU的工作就是执行这些指令,在完成一条指令之后,CPU的控制单元又传达指令读取器从内存中读取下一条新指令来执行。这个过程在不断的重复快速的循环。 2.2.3基于双CPU通信的设计及应用 目前,在高速数据
28、采集及大数据处理、在线测控系统中,为了是实现数据采集处理的高效、可靠、实时性等功能,越来越多的运用到多CPU通信方式。基于双CPU通信系统的设计,不仅提高了数据处理的速度、可靠度,而且也增强了系统的控制能力和信息处理能力,提高了系统的智能化程度的水平,可以使系统更好的适应各种环境。 当前,双CPU通信方式主要应用到智能控制系统,大数据处理系统,双CPU数据接口通信,双RAM与双CPU之间的通信方式等。在本次课题研究中主要研究双RAM与双CPU之间的通信,使用双RAM与双CPU通信可以很方便的实现,在选择CPU接口时具有很大的灵活性,但是这样就增加了设计的复杂性和难易程度。2.3 FPGA的基本
29、结构及工作原理 FPGA(FieldProgrammable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步研究发展的产物。FPGA是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,它的既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。 FPGA芯片主要包括7部分组成实现功能,分别是:可编程输入输出单元、基本可编程逻辑单元、完整的时钟管理、嵌入块式RAM、丰富的布线资源、内嵌的底层功能单元和内嵌专用硬件模块。FPGA拥有丰富的布线资源,布线资源连通着FPGA内部的所有单元,并且连线的长度与制作工艺决定着信号在连线
30、上的传输速度与精确度。FPGA芯片内部的丰富布线资源,可以根据一定的性能分为四大类:第一类是全局布线资源,用于芯片内部全局时钟和全局复位/置位的布线;第二类是长线资源,用以完成芯片 Bank间的高速信号和第二全局时钟信号的布线;第三类是短线资源,用于完成基本逻辑单元之间的逻辑互连和布线;第四类是分布式的布线资源,用于专有时钟、复位等控制信号线。 然而在实际系统设计中,不必考虑直接选择布线方式,FPGA内部的布线器可以自动根据设计要求选择相应的布线网络,连通各个单元模块。从根本上说,布线资源的选择方式跟设计要求以及研究方法有着密切的关联。图2.2 FPGA芯片的内部结构目前用以硬件描述语言(Ve
31、rilog或VHDL)所完成的电路设计,可以经过简单的设计与布局,快速的烧录至FPGA上进行相应测试,是现代IC设计验证的技术主流方向。这些可编辑元器件可以用来实现一些基本的逻辑门电路(例如AND、OR、XOR、NOT)或者更为复杂的一些组合功能(比如解码器或数学方程式)。在大多数的FPGA里面,这些可编辑的元器件里也包含记忆元件(例如触发器(Flipflop)或者其他更加完整的记忆块 2 )。 FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个工作原理,内部包含可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(Input
32、Output Block)和内部连线(Interconnect)三个部分。现场可编程门阵列(FPGA)是可编程器件,与传统逻辑电路和门阵列(如PAL,GAL及CPLD器件)相比,FPGA具有不同的结构,FPGA是利用小型查找表(161RAM)来实现组合逻辑,每个查找表连接都到一个D触发器的输入端,触发器再来驱动其他逻辑电路或者驱动I/O,因此构成了既可实现组合逻辑功能,又可以实现时序逻辑功能的基本逻辑单元模块,这些模块间利用金属导线互相连接或者直接连接到I/O模块上的。FPGA的逻辑的实现是通过向内部静态存储单元加载编程数据来完成的,存储在存储器单元中的数值决定了逻辑单元的逻辑功能以及各模块之间,模块与I/O
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1