基于FPGA的ARM并行总线和端口设计

发布者:梦幻微笑最新更新时间:2020-08-03 来源: elecfans关键字:FPGA  ARM  并行总线  端口设计 手机看文章 扫描二维码
随时随地手机看文章

通过EP2C20Q240器件和LPC2478处理器,研究ARM应用系统外部并行总线的工作原理和时序特性,以及在FPGA中进行双向总线设计的原则,设计并实现了FPGA并行总线.借助Quartus II仿真工具,对FPGA并行总线进行了时序仿真,并用SignalTap II逻辑分析仪进行在线测试,验证设计的正确性.


0 引言

在数字系统的设计中,FPGA+ARM 的系统架构得到了越来越广泛的应用,FPGA主要实现高速数据的处理;ARM 主要实现系统的流程控制.人机交互.外部通信以及FPGA 控制等功能.I2C.SPI 等串行总线接口只能实现FPGA 和ARM 之间的低速通信 ;当传输的数据量较大.要求高速传输时,就需要用并行总线来进行两者之间的高速数据传输.


下面基于ARM处理器LPC2478以及FPGA器件EP2C20Q240,以ARM外部总线的读操作时序为例,研究两者之间高速传输的并行总线;其中,数据总线为32 位;并在FPGA 内部构造了1024x32bits 的SRAM 高速存储缓冲器,以便于ARM 处理器快速读写FPGA 内部数据.


1 ARM并行总线的工作原理

ARM 处理器LPC2478 的外部并行总线由24 根地址总线.32根数据总线和若干读写.片选等控制信号线组成.根据系统需求,数据总线宽度还可以配置为8 位.16 位和32 位等几种工作模式.


在本设计中,用到ARM 外部总线的信号有:CS.WE.OE.DATA[310].ADDR[230].BLS 等.CS 为片选信号,WE 为写使能信号,OE 为读使能信号,DATA 为数据总线,ADDR 地址总线,BLS 为字节组选择信号.ARM 的外部总线读操作时序图,分别如图1 所示.

基于FPGA的ARM并行总线和端口设计

根据ARM 外部并行总线操作的时序,ARM 外部总线的读写操作均在CS 为低电平有效的情况下进行.由于读操作和写操作不可能同时进行,因此WE 和OE 信号不能同时出现低电平的情况.


数据总线DATA 是双向的总线,要求FPGA 也要实现双向数据的传输.在时序图中给出了时序之间的制约关系,设计FPGA 时应该满足ARM 信号的建立时间和保持时间的要求,否则可能出现读写不稳定的情况.


2 FPGA 的并行总线设计

2.1 FPGA 的端口设计

FPGA 和ARM 之间的外部并行总线连接框图,如图2 所示.由于FPGA 内部的SRAM 存储单元为32 位,不需要进行字节组的选择,因此BLS 信号可以不连接.为了便于实现ARM 和FPGA 之间数据的快速传输,FPGA 内部的SRAM 既要与ARM 处理器进行读写处理,还要跟FPGA 内部的其他逻辑模块进行数据交换,因此SRAM 采用双口RAM 来实现.

基于FPGA的ARM并行总线和端口设计

从端口的方向特性看,DATA 端口是INOUT(双向)方式,其余端口均为IN(输入)方式.从端口的功能看,clk20m 是全局时钟,在实现时应采用FPGA 的全局时钟网络,这样可以有效减少时钟延时,保证FPGA 时序的正确性.ADDR 是16 位的地址总线,由ARM 器件输入到FPGA.DATA 是32 位的双向数据总线,双向总线的设计是整个设计的重点.OE 为ARM 输入到FPGA 的读使能信号.


WE 为ARM 输入到FPGA 的写使能信号.CS 为ARM 输入到FPGA 的片选信号,FPGA 没有被ARM 选中时必须输出高阻态,以避免总线冲突.


2.2 FPGA 的双向总线设计

在FPGA 的并行总线设计中,如果顶层和底层的模块都要用到双向的IO 端口,则要遵守设计原则;否则不利于VHDL 程序的综合.双向IO 端口的设计原则是:只有顶层设计才能用INOUT类型的端口,在底层模块中应把顶层的INOUT 端口转化为独立的IN(输入).OUT(输出)端口并加上方向控制端口.顶层设计的VHDL 代码如下:

基于FPGA的ARM并行总线和端口设计

其中,DATA_i.DATA_o 和output_en 均为FPGA 内部的信号,在内部的各层次模块中,通过这三个信号就可以进行单向的IO 控制.这样,顶层设计中双向的DATA 端口转化为了内部单向的DATA_i(输入).DATA_o(输出)和output_en(输出使能).在内部各模块中,结合这三个信号以及ADDR.OE.WE.CS 等信号,则可方便地实现ARM 总线接口的功能.实现的VHDL 关键代码如下:

基于FPGA的ARM并行总线和端口设计

3 仿真结果分析

通过Quartus II 仿真工具,对FPGA 并行总线进行时序仿真;仿真结果如图3 所示.根据ARM 并行总线的读写时序图要求,从仿真结果可以看出FPGA 的总线接口设计满足了设计的要求.由于选用的FPGA 器件内部带有逻辑分析仪的功能模块,通过Quartus II 软件中的SignalTap II 逻辑分析工具,对FPGA的设计模块进行在线测试,发现总线时序了满足ARM 并行总线的要求,且工作稳定,从另一个角度验证了设计和仿真结果的正确性.

基于FPGA的ARM并行总线和端口设计

4 结论

由于FPGA 技术和ARM 技术应用越来越广泛,通过设计并行总线接口来实现两者之间的数据交换,可以较容易地解决快速传输数据的需求,因此设计满足系统要求的FPGA 并行总线显得尤为重要.本文设计的FPGA 的ARM 外部并行总线接口,满足了总线的时序要求,并在某航空机载雷达应答机中进行了应用,系统运行稳定,性能良好.以上的设计和仿真方法,对其他类似的设计也有一定的参考作用.

关键字:FPGA  ARM  并行总线  端口设计 引用地址:基于FPGA的ARM并行总线和端口设计

上一篇:ARM嵌入式主板综合对比
下一篇:ARM64与ARM32 的Linux程序区别在哪里

推荐阅读最新更新时间:2024-11-13 17:26

一种基于ARM单片机与CPLD的数字轴角转换方法
0 引言 同步机正余弦旋转变压器等广泛应用于火力控制,航空航天、自动控制等领域以实现系统间轴角信息的传输,由于计算机技术在上述领域的广泛应用,数字-轴角转换已(Digitalto Shaft-angle Converting,DSC)成为一个重要的问题。市场上DSC集成模块产品价格较高且接口不够灵活,在某些领域应用受到限制,特别在多路DSC使用时效费问题更为突出。基于上述问题,提出一种采用ARM单片机+CPLD实现数字-轴角转换的方法。 1 数字-轴角转换原理 数字-轴角转换(DSC)是将数字形式表示的轴角度θ通过运算电路转换为正余弦旋转变压器形式的电压,经正余弦旋转变压器和经过Scott变压器后驱动同步机指向对应轴角
[单片机]
一种基于<font color='red'>ARM</font>单片机与CPLD的数字轴角转换方法
ARM基础知识连载之三
在ARM体系中通常有以下3种方式控制程序的执行流程: **在正常执行过程中,每执行一条ARM指令,程序计数器(PC)的值加4个字节;每执行一条Thumb指令,程序计数器寄存器(PC)加2个字节。整个过程是按顺序执行 。 **跳转指令,程序可以跳转到特定的地址标号处执行,或者跳转到特定的子程序处执行。其中,B指令用于执行跳转操作;BL指令在执行跳转操作同时,保存子程 序的返回地址;BX指令在执行跳转操作同时,根据目标地址为可以将程序切换到Thumb状态;BLX指令执行3个操作,跳转到目标地址处执行,保存子程序的返回 地址,根据目标地址为可以将程序切换到Thumb状态。 **当异常中断发生时,系统执行完当前指令后,将跳转到相应
[单片机]
解答ARM嵌入式初学者常见疑问
对于ARM嵌入式初学者而言,心中一定充满着疑虑和困惑,很多问题也期待着找到答案。比如: 1、嵌入式要学什么?嵌入式到底有多难学? 2、学ARM需要什么基础,学ARM要发多长时间?3、学ARM7还是ARM9,直接学ARM9怎么样? 4、如何学ARM,怎么学ARM才轻松? 在此,我针对这些问题提提自己的看法,以期对初学者有所帮助,能在学习的道路上少走些弯路。 一 百花齐放的嵌入式,需要你量力取舍。 嵌入式前景广阔,就业渠道多,无疑是当前最有发展前途的行业。 特别是随着消费电子的智能化,3G的快速发展等等,嵌入式更显重要。如果你想从事该领域,或者成为该领域的工程师,你就会发现要掌握的东西实在太多。 万事开头难,想进入该领域你
[单片机]
解答<font color='red'>ARM</font>嵌入式初学者常见疑问
看官们瞧好了,高通和英特尔互掐的好戏要上演了
昨天我们刚从英特尔泄露的内部通知中得知其正要把其移动业务合并纳入其PC客户端事务群的最新消息,高通又在早些时候的分析师日上发表了一则声明,确认要进入ARM服务器CPU市场,看来高通正在走另一条路。 记得不到一个月前我在Linley微处理器会议上报道过的一大趋势,其关键要点是: ARM架构的市场份额比较微小,但正如我曾经指出的,这说明了服务器市场正在发生变化。64位ARM V8指令集开辟了新的市场,几乎所有的嵌入式厂商正在将他们未来的投资转移到ARM上。然而,在一个保守的市场中,从设计、生产到量产出货,这种转换和交叉将需要5-10年的时间,不过: •AppliedMicro正在出货X-Gene和提供X-Gene2的样片 •
[单片机]
基于ARM室内温度控制系统的设计与实现
  在大力提倡节能减排以及追求高质量生活的今天,冬季供暖系统存在的不足日益显现出来。我国北方城市大部分采用集中供暖,在整个供暖期内,无论室内有人与无人,系统全天连续供暖;系统热能的输送是不变的,不能根据室内外温度的变化以及个人对室温的不同要求做出相应的调整。这就造成了热能的严重浪费以及供暖不人性化等问题。本文设计实现了一种基于嵌入式系统ARM-Linux 平台的室内智能温度控制系统,通过实时检测室内外温度的变化CONTROL ENGINEERING China版权所有,合理调节室内温度,降低了热能消耗,提高了人们的生活质量。   1 系统功能及总体结构   本系统硬件框图如图1 所示,主要由ARM9 控制器,温度检测模块,触摸屏
[单片机]
基于<font color='red'>ARM</font>室内温度控制系统的<font color='red'>设计</font>与实现
ARM嵌入式学习--OK6410裸板程序--1.GPIO控制LED
基本概念: 1.GPIO--通用IO口,通过芯片针脚来控制或读取外设的数据。 2.GPIO口的使用原理,通过设置GPXXCON, GPXXDAT, GPXXPUL等寄存器来设置GPIO口的状态。 原理图: 跟硬件相关的部分,一定要阅读原理图,然后通过查找SoC的用户手册来查找相应的寄存器设置即可。 底板电路图: 核心板电路图: 可知在OK6410上4个LED灯是通过GPM这一组的GPIO口控制的,分别是GPM0-GPM3四组。 然后打开S3C6410X User's Manual,查找GPM相关的寄存器: 通过上面内容找到: GPMCON 地址 0x7F008820 GPMDAT 地址 0x7F0088
[单片机]
<font color='red'>ARM</font>嵌入式学习--OK6410裸板程序--1.GPIO控制LED
Arm® Powered数码伴侣,惬意出行一路相随
尽管刚刚告别了暑期出游的黄金时段,而十一长假还得再等上一个月,但这并不妨碍你利用周末闲暇之余出去走走,放松自我。无论你选择行走在城市的繁华街巷,亦或是城郊的绿荫苍翠间,愿Arm Powered数码设备伴你度过一个完美周末。下面就随嵌入式小编一起来了解一下相关内容吧。 【小米5X智能手机:必不可少的出行伙伴】   出门在外,手机俨然是如影随形的最佳伴侣。除了确保畅通的联络外,手机还扮演者摄影师和小秘书的角色。全新的小米5X拥有后置双摄,广角加长焦的组合,可以更好还原人眼所见,让远景拍摄呈现更出色的画面。同时,小米5X采用了“人像美颜3.0”,可通过人脸关键点精准识别,调校出白皙红润的美感。小米5X还能够将各个应用内的收藏都
[嵌入式]
关于ARM系统的堆栈
堆栈严格来说应该叫做栈,栈(Stack)是限定仅在一端进行插入或删除操作的线性表。因此,对栈来说,可以进行插入或删除操作的一端端称为栈顶(top),相应地,另一端称为栈底(bottom)。不含元素的空表称为空栈。由于堆栈只允许在一端进行操作,因而按照后进先出(LIFO-Last In First Out)的原理运作。 从栈顶的定义来看,栈顶的位置是可变的。空栈时,栈顶和栈底重合;满栈时,栈顶离栈底最远。ARM为堆栈提供了硬件支持,它使用一个专门的寄存器(堆栈指针)指向堆栈的栈顶。而且7种模式都有各自独立的堆栈指针,也就是有各自独立的堆栈空间。但这里的堆栈和uC/OS操作系统的任务堆栈又有区别,uC/OS的每个任务都有自己的堆栈,要是
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

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

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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