基于fpga的嵌入式edk开发技术内容摘要:
且读写速率也达不到工作时钟的频率。 sdram控制器的作用就是将 sdram存储器的初始化、刷新、地址转换、数据读取等操作封装起来,让使用者将其看成系统黑盒,读数直接按地址访问,写数直接往目的地址赋值即可。 Xilinx提供了 sdr sdram控制器的 IP Core,在 XPS中,直接将其添加到 OPB 总线上即可。 sdr sdram控制器的内部结构以及与 OPB 总线的接口如图 912 所示。 图 912 sdram控制器和 OPB 总线的连接示意图 sdram控制器完整的信号端口列表如表 99 所列。 其中 C_SDRAM_DWIDTH为sdram存储器的数据 宽度, C_SDRAM_AWIDTH为 sdram存储器的地址宽度,C_SDRAM_BANK_ AWIDTH 为存储器 BANK的地址。 表 99 sdr sdram控制器的端口信号列表 sdram控制器支持不同数据位宽的读、写模式,且不同位宽以及不同刷新模式下的读写时序和配置都是不同的。 例如,突发模式下 16比特数据位宽的 sdram控制器读写时序如图 913和图 914所示。 图 913 16 比特突发模式读数据的时序逻辑图 图 914 16 比特突发模式写数据的时序逻辑图 2) sdr sdram控制器驱动 在嵌入式系统中, sdr sdram控制器对于用户来讲是透明的,即用户在功能使用上没有初始化、刷新等操作,直接用 IO 读写函数读写相应的地址即可。 基本的 IO读写函数在文件 ,其本质就是简单的指针赋值语句, 32 比特位宽的读写函数如下所示。 define XIo_In32(InputPtr) (*(volatile Xuint32 *)(InputPtr)) define XIo_Out32(OutputPtr, Value) (*(volatile Xuint32 *)((OutputPtr)) = (Value)) 因此在操作 sdram时,只需添加下列两个头文件。 其中, 函数, 文件则给出了 sdram存储器的基地址。 include include 系统设计方案 1.嵌入式总线介绍 总线是多组信号的有效组合,处理器和周边设备通过总线地址、数据以及片选控制等信号进行通信。 根据对总线的控制,可将外 设分为仲裁设备、主设备、从设备以及主 /从设备(桥)。 Xilinx嵌入式系统中的总线可分为 3 类:片外设备总线( OPB)、本地存储器总线( LMB)以及快速简单连接总线( FSL),分别用于访问低速外设、片内高速存储器以及高速外设。 OPB总线能在不影响 OPB 仲裁器和其余设备的基础上添加周围设备,同步于系统时钟,共享 32位地址总线、 32位数据总线,支持主设备和从设备之间单一周期数据传送。 LMB 总线提供单时钟访问片内双口 RAM,并提供了简单的同步协议。 PLB 总线是 PowerPC 的高带宽总线, 64位数据总线宽 度,分离的地址、读写数据总线,具备分别传输的能力。 同时执行的读写传输能最有效利用总线,在单周期内可传输两个数据;此外, PLB 总线地址通道能叠加一个新的写请求到一个正在执行的写操作上,以及最多 3 个读请求到正在执行的读操作上,从而减少总线反映时间。 MicroBlaze软核的系统总线有 LMB、 OPB总线,指令和数据分开。 LMB总线用于访问片内存储器的数据和指令, OPB 用于片外设备的连接。 MicroBlaze典型的总线连接方式如图 915 所示。 图 915 典型的 MicroBlaze总线连接示意图 PowerPC 硬核的系统总线分为 PLB、 OCM 以及 DCM总线, OPB 总线可通过总线桥与 PLB 总线连接,从而访问外部速度较低的设备, PowerPC 典型的总线连接方式如图 916所示。 图 916 典型的 PowerPC 总线连接示意图 2.嵌入式系统设计方案 1)系统架构 基于 MicroBlaze和 PowerPC的嵌入式系统和计算器系统类似,满足冯诺伊曼架构,将应用程序存放在外部非易失存储器( Flash或 PROM)中,上电后将其加载到片内 BRAM 或映射到外部的 SDRAM/SRAM 存储器中。 该类系 统的架构是可裁剪的,完全根据需求来添加外设,常用于实现专一的功能,具有价格低、速度快、功耗小以及软硬件协同工作的特点。 典型的 MicroBlaze的 PowerPC的嵌入式系统架构分别如图 917和图 918所示。 图 917 MicroBlaze系统组成架构 图 918 PowerPC 系统组成架构 2)系统地址分配 MicroBlaze采用 32位地址,其中 0x0000_0000~0x0000_0017 用于特殊处理,0x0000_0018~0xFFFF_FFFF是用户可用的部分, LMB存储器 从地址 0x0000_0018开始。 PowerPC 采用 32位地址,其中每一个 PowerPC 都有其系统引导( boot)区,地址为 0xFFFF_FFFC,缺省的可用空间为 0xFFFF_0000~0xFFFF_FFFF。 第 2节 EDK 软件基本介绍 EDK 的介绍与安装 1. Xilinx嵌入式开发工具集 一般而言,由于嵌入式系统涉及了软件和硬件的开发以及两者的综合设计,因此其开发是较为复杂的。 Xilinx为了简化基于 FPGA 的嵌入式开发流程,提供了功能强大、操作简单的工具集 ISE和 EDK。 1)集 成软件环境 ISE ISE是 Xilinx公司 FPGA逻辑设计的基础。 在这个环境中,设计者可以进行约束文件的编写,时序分析,逻辑布局布线以及器件编程等。 本书第 4 章对 ISE的使用进行了较为详细的说明,这里就不再累述。 2)嵌入式开发套件( Embedded Development Kit, EDK) EDK 自带了许多工具和 IP,可以用来设计完整的嵌入式处理器系统,主要包括Xilinx平台工作室 XPS和软件开发套件 SDK。 读者需要注意的是:只有安装了 ISE软件,才能正常运行 EDK,且二者的版本要一致。 下面对 EDK 的组成模块进行简要说明: 1. Xilinx 平台工作室( Xilinx Platform Studio, XPS) XPS是用来设计嵌入式处理器系统硬件部分的开发环境或 GUI,是系统设计者构建 Xilinx嵌入式系统时必用的工具套件。 在 XPS中,可以完成嵌入式系统架构的创建、软件代码的编写、设计的编译以及 FPGA 芯片的硬件配置。 2. 软件开发套件( Software Development Kit, SDK) SDK 是集成的开发环境,基于 Eclipse。 它支持 C/C++,用于嵌入式软件应用的开发和验证。 3. 其它 EDK 部分 EDK 还包括其它的一些部分,如:用于 Xilinx嵌入式处理器的硬 IP;用于嵌入式软件开发的驱动和库;在 MicroBlaze和 PowerPC 处理器上用于 C/C++软件开发的 GNU 编译器和调试器;有关文档以及一些工程样例等。 2. EDK 软件的安装 : CPU 在 P III 以上,内存大于 256M,硬盘大于 4G的硬件环境安装。 为了更好地使用软件,至少需要 512M内存, CPU的主频在 2GHz以上。 需要注意的是,安装 EDK 之前,必须安装。 EDK 的具体安装过程如下: 1)将安装光盘放进 DVD光驱,等待其自动运行(如果没有自动运行,直接执行光盘目录下的 ),欢迎界面后会出现如图 919所示的获取注册码对话框,可以通过网站、邮件和传真方式申请注册码。 如果已有注册码,单击 ―Next‖按键后继续。 图 919 安装程序的欢迎界面 2)下一个对话框是 Xilinx软件的授权声明对话框,如图 920所示,选中 ―I accept the terms of this software license‖,单击 ― Next‖后进入注册码输入对话框,输入正确的注册码后,单击 ― Next‖按键后,出现安装路径对话框,单击 ―Browse‖按键后选择自定义安装路径,单击 ― Next‖按键继续。 图 920 安装注册 ID输入界面 3)接下来的几个对话框分别是选择安装设计环境、设置环境变量,这两个步骤保持默认即可。 最后进入安装确认对话框,单击 ―Install‖按钮,即可按照用户的设置自动安装 ISE。 需要注意的是,在选择安装设计环境时,用户需要选择自己使用的芯片所对应的模块,这样才能在开发中使用这些模块,一般选 择 ―Select All‖。 4)安装完成后,会在桌面以及程序菜单中添加 EDK 的快捷方式。 双击即可进入EDK 集成开发环境。 EDK 设计的实现流程 1.基于 EDK 的开发流程 一个完整的嵌入式设计流程包括硬件设计和调试、软件设计与调试,各个步骤相对独立但又相辅相成。 由于嵌入式应用场合多样,且软、硬件都可裁剪,因此并不是每个设计都要完成所有的步骤。 图 921 为基于 EDK的嵌入式设计的简化流程图。 图 921 简化的嵌入式设计流程图 通常 ISE FPGA 开发软件在后台运行, XPS工 具调用 ISE软件提供的功能。 XPS主要用来嵌入式处理器硬件系统的开发。 微处理器、外围设备以及这些组件之间的连接问题,另外还有它们各自的属性设置都在 XPS里进行。 简单的软件开发可以在 XPS里完成,而对于更复杂的应用开发和调试, Xilinx则推荐使用 SDK工具。 硬件平台的功能验证可以通过硬件描述语言 HDL仿真器完成。 XPS提供了行为级、结构级以及定时精确级等三种类型的仿真。 验证过程结构由 XPS自动产生,其中包括了仿真的 HDL文件。 设计者只需要输入时钟时序、重配置信息以及一些应用代码即可。 仿真细节将在下面的内容中 进行相关讲述。 完成设计后,在 XPS中将FPGA 比特流和可执行可链接格式文件下载,就可以进行目标器件的配置。 完整的 EDK 开发流程如图 922所示,其主要步骤有: 1. 创建硬件平台:利用 XPS的板级开发包向导( BSB Wizard)快速构建设计的硬件平台,是 EDK 设计的第一步。 2. 添加 IP Core以及用户定制外设:在 XPS中添加所需的 IP Core,对于 XPS库中缺少的模块,需要用户自行设计。 同样, XPS提供了建立用户自定义外设的向导,可简化该过程。 3. 生成仿真文件并测试硬件系统:生成硬件系统的仿真文件, 可选择行为级、结构级以及时序级仿真,利用 ModelSim等工具测试系统,特别是用户自定义的外设;如果测试失败,需要返回上一步修改。 4. 生成硬件比特流:生成硬件网表和比特流文件,这个步骤类似于传统 FPGA 设计的综合、布局布线、生成编程文件这 3 个操作。 5. 开发软件系统:针对软件需求编写硬件代码,确定软件的操作系统、库、外设驱动等属性,针对每个应用软件工程,设置编译器、优化级别、使用的连接文件等信息。 等设置完成后,编译生成 .elf 格式的可执行代码。 6. 合并软、硬件比特流:编译软件后,需要将软、硬件可执行文件合并在 一起,生成最终的二进制比特文件。 7. 下载:使用 JTAG编程电缆或编程器将更新后的最终比特流烧写到 FPGA、 PROM、FLASH以及 CF卡。 8. 在线调试:可利用 XMD工具或 ChipScope工具调试,通过 JTAG编程电缆在线调试,下载可执行软件代码、控制执行,并监控相关系信息。 图 922 完整的嵌入式设计流程图 2. EDK 设计比特文件的组成 如前所述,最终下载到 FPGA 的嵌入式比特流文件是软、硬件比特流合并在一起的,详细的组成部分如图 923 所示。 硬件部分比特流包括 MHS文件、用户自定义 HDL代码,二者经过综合实现后,产生 .ngc网表,生成硬件系统的比特流文件;软件系统包括 MSS文件、用户 .c/cpp/asm文件,通过 GCC 编译器,生成目标文件 .obj,再经过连接合成软件系统的比特流文件;最后通过 Data2MEM过程,将软、硬件比特流合成完整系统比特流文件,通过 JTAG链路下载到 FPGA芯片中。 图 923 EDK 配置比特文件的组成结构 EDK 的文件管理架构 对于嵌入式应用来讲,软、硬件协同开发是非常重要的,虽然 EDK提供了 XPS工具和 SDK工具这两个图形化平台,但仍以文 件结构管理为基础,图形化平台只是方便用户操作的,所有的设置内容都会写入相应的文件中。 了解相应格式的文件是掌握 EDK 工具操作的必备知识。 本节将介绍 EDK构建嵌入式系统软、硬件系统的文件,以及管理、存储数据文件的模式和流程。 1.板级支持包 Bo。基于fpga的嵌入式edk开发技术
相关推荐
020 感动中国十大人物杨善洲同志从事革命工作近 40 年,曾担任保山地委领导,两袖清风,清廉履职,只为了兑现自己当初 “ 为当地群众做一点实事不要任何报酬 ” 的承诺。 廉洁自律,勤政为民是对党员干部的起码要求。 我们要严格要求自己,依法办事,严格执法,不以权代法,做学法、守法、用法 的模范。 要打牢廉洁从政依法理财的思想基础,时刻做到自重、自省、自警、自励。 以上是我此次学习的个人体会
begin D=1。 //guan jian EN=1。 end else begin D=0。 EN=1。 end end end endmodule D Z Z _Tins tKEY [1. .0]R ESE TC LK4HH OU R [4. .0]M IN [5. .0]SEC [5. .0]TS[ 1. .0]DEN 三、计时调整时间模块代码: ( 1)小时计时和小时计时的调整:
文件 错误 ! 未 找 到 引 用源。 VerilogHDL源代码进行综合 优化处理,生成门级描述的网络表文件,这是将高层次描述转化为硬件电路的关键步骤。 综合优化是针对 ASIC芯片供应商的某一产品系列进行的,所以综合的过程要在相应的厂家综合库的支持下才能完成。 ,仿真过程不涉及具体器件的硬件特性,是较为粗略的。 一般的设计,也可略去这一步骤。 行逻辑映射操作,包括底层器件配置、逻辑分割
end if。 end if。 disp=’1’。 elsif stop=’1’ and ok=’1’then down counting if a_sec=0 then if a_min=0 then if a_hour=0 then index=’1’。 disp=’0’。 else a_hour=a_hour 1。 a_min=59。 a_sec=59。
EPROM、 PROM编程器即可。 由于配置时间很短,因而不会影响系统正常工作。 当然也有少数 FPGA 采用反熔丝或 FLASH 工艺,对这种 FPGA 就不需要外加专用的配置芯片了。 这样,同一片 PFGA,不同的编程数据可以产生不同的电路功能。 因此, FPGA 的使用非常灵活 [8]。 随着的不断发展以及用户需求的不断提出, FPGA 的技术也在不断地发展。
过一根下载线(如 ByteBlasterII) 来下载程序 ,这种模式特别方便、简单。 但它的缺点就是不能掉电保存程序。 因此限制了其商业化的目的。 主动和被动模式都使用外部存储器来存放配置数据,达到掉电保存配置数据的目的。 在专用的配置芯片较贵时,普遍采用被动方式来配置,即采用微处理器和一片大容量的 ROM 来代替专用芯片,但是必须自己编写程序来模仿下载时序对芯片进行配置,比较烦琐。