当前位置:首页 > 嵌入式 > 嵌入式硬件

1. 引言

在当今复杂数字电路设计中,大多采用以"嵌入式微控制器+fpga"为核心的体系结构此体系结构中fpga配置效率和灵活性的差异影响了产品的开周期和产品升级的易施性。传统的fpga配置方案(例如调试阶段的专用下载电缆方式。成品阶段的专用配置片方式)在成本、效率、灵活性方面都存在着明显不足。针对这样的实际问题,基于嵌入式微控制器与fpga广泛共存于复杂数字系统的背景,借鉴软件无线电"一机多能"的思想,提出了一种对现有传统fpga配置方案硬件电路稍做调整并增加部分软件功能。即可实现fpga动态配置的方案。本文将在介绍altera公司stratix系列fpga配置模式、fpga配置流程、增强型配置片内部工作原理的基础上给出利用epci6实现fpga动态配置的方案。并给出软硬件接口电路。2 fpga配置方式可编程器件的配置方式分为主动配置和被动配置两类。主动配置由可编程器件引导配置过程,被动配置则由外部处理器控制配置过程。 根据配置数据线数,器件配置可分为并行配置和串行配置两类。串行配置以bit(比特)为单位将配置数据载人可编程器件:而并行配置一般以byte(字节)为单位向可编程器件载入配置数据。被动配置根据配置数据与时钟的关系可分为同步和异步两种方式。

表1列举了altera公司常用fpga(stratix、cyclone、apexⅱ、apex20k、mercury、ace xk、flexlok和flex6000)的配置方式。 3 fpga配置流程fpga的配置数据存储在内部sram单元中。由于sram掉电后配置数据会丢失,因此每次上电时必须重新将配置数据写入sram中。这个过程称为fpga的配置。fpga配置过程如图1所示。表2为stratix配置引脚定义。

(1) 上电

上电过程中fpga内部状态机被复位,nsta-tus和conf_done引脚由fpga置为低电平,所有i/o引脚为三态且fpga内部配置寄存器被清空。(2) 复位当nconfig或nstatus引脚为低电平时,fpga进入复位状态。在此状态下,fpga采样msel引脚的电平值,以确定采用的配置方式。同时nstatus和conf_done引脚被拉低,所有i/o引脚三态并且fpga内部配置寄存器被清空。 (3) 配置当nconfig为高电平,nstatus被fpga释放并由外部上拉电阻拉为高电平后进入配置状态。此状态下配置数据在dclk时钟的上升沿载入fp-ga。若正确接收所有配置数据(crc校验无误)。fpga释放conf_done引脚且当其被外部上拉电阻拉高后进入初始化状态。(4) 初始化此状态下fpga内部逻辑和寄存器被初始化:使能i/0缓冲,释放init_done引脚(可选)。(5) 用户模式在此状态下fpga开始执行用户程序。4增强型配置片工作原理ahera公司增强型配置片支持在一块配置片上进行多块高密度pld(programmable logic de-vice)配置。配置片主要由两大核心模块构成一控制器和flash存储器。存储空间除用于存储配置数据外,未使用的部分可用于微处理器或pld的外部存储器。下面将分别阐述增强型配置片的核心模块。4.1增强型配置片控制单元控制单元由以下子模块构成:(1) 上电复位电路(por)在电源电压未达到需要的稳定电压时此模块将使配置片处于复位状态。有两种上电复位时间可选,100 ms,和2 ms,。配置片porsel引脚决定复位时间长短。此引脚为低电平时复位时间为100 ms,反之为2 ms。(2) 内部振荡器(iosc)内部振荡器有四种模式(四个不同频率),可通过编译fpga代码在ouatrusⅱ软件中选择。
(3) 时钟分频单元(cdu)时钟分频单元对内部振荡器产生的时钟或外部输入时钟进行分频,得到配置片内部系统时钟sysclk和外部数据输出时钟dclk。其内部有两个分频器,一个分频器的分频系数为n,产生dclk信号;另一个分频器的分频系数为m,产生sysclk信号。其内部结构如图2所示。
上电后配置片默认采用内部振荡器中a模式,振荡频率为8 mhzo其中,一个分频器分频系数为1。另一个分频器分频系数为2。(4)压缩引擎(pcu)增强型配置片支持数据压缩。数据压缩由quatrusⅱ软件实现,解压由压缩引擎实现。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

Bluespec支持加速器功能的RISC-V处理器将Achronix的FPGA转化为可编程SoC

关键字: RISC-V处理器 FPGA SoC

在嵌入式系统开发、调试和测试过程中,J-Link作为一种高效的调试工具,为开发者提供了极大的便利。然而,要想充分发挥J-Link的功能,首先需要正确安装其驱动程序。本文将详细介绍J-Link驱动的安装过程,并深入解析其中...

关键字: jlink 嵌入式系统 嵌入式开发

与谷歌的合作使 Nordic 能够在 nRF Connect SDK 中嵌入开发人员软件,以构建与安卓移动设备兼容的谷歌Find My Device和未知跟踪器警报服务

关键字: 谷歌 SoC 嵌入式开发

为无处不在的端侧设备插上AI的翅膀,AMD发布第二代Versal™ 自适应 SoC

关键字: AMD FPGA 自适应SoC AI 边缘计算

嵌入式开发作为当今电子工程和信息技术领域的核心分支,涵盖了广泛的软硬件技术和系统集成方法,用于构建高性能、低成本、低功耗、体积小巧且功能专一的嵌入式系统。这些系统无处不在,从微型传感器节点到复杂的工业控制设备,从日常使用...

关键字: 嵌入式开发 Python

嵌入式开发是当今信息技术领域不可或缺的一部分,它融合了硬件设计、软件开发和系统集成等多个学科,专门用于创建那些被嵌入到特定设备或系统中的专用计算机系统。嵌入式开发的主要过程包括利用分立元件或集成器件进行电路设计、结构设计...

关键字: 嵌入式开发 硬件设计 软件开发

嵌入式开发作为一种专业且技术密集型的领域,涵盖了从硬件底层驱动、中间件到应用层软件开发等多个层面的工作,其所需的工具种类繁多,各有针对性,旨在提升开发效率、保证代码质量以及简化调试过程。

关键字: 嵌入式开发 keil

嵌入式开发作为信息技术领域的重要分支,其涉及的语言种类繁多,各具特色。这些语言的选择取决于目标平台的特性、性能需求、开发者的熟练程度以及项目的具体要求。本文将详细介绍几种常见的嵌入式开发语言,包括C语言、C++、汇编语言...

关键字: 嵌入式开发 C语言

嵌入式开发是一项综合了硬件设计、软件编程以及系统整合的技术活动,其目的是为了创造出能够在特定环境中高效、稳定运行的嵌入式系统。这一流程涵盖了多个紧密关联且不可或缺的阶段,从最初的客户需求分析到最终的产品测试和交付,每个环...

关键字: 嵌入式开发 硬件设计

嵌入式开发作为一个融合了计算机软硬件和系统工程的综合性领域,其成功与否往往取决于三个核心要素的有效整合与协调。这三个要素分别是:硬件平台的选择与设计、软件开发及其优化、以及系统级的设计与集成。深入理解并熟练掌握这三个方面...

关键字: 嵌入式开发 ARM
关闭
关闭