




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、edkedk=embedded development kit,嵌入式开发套件。 edk是xilinx公司开发嵌入式系统的工具。比起xilinx的ise,二者不同在于,如果仅仅是使用xilinx的fpga做逻辑设计,只需要ise开发环境。但是如果要使用powerpc或者microblaze处理器,从硬件到软件设计的整个嵌入式系统设计,就需要edk。、edk基本介绍嵌入式系统经历了从单片计算机、工业控制计算机、集中分布式控制系统,发展到嵌入式的平台的几个阶段:从独立单机使用发展到联网设备;从以模拟电路为主发展到以数字电路为主、数/模混合型,进而进入全数字时代。总的来说,嵌入式系统向着更高性能、更
2、小体积、更低功耗、更廉价、无处不在的方向发展。嵌入式系统的设计和实现朝着基于芯片,特别是片上可编程系统(sopc)的方向发展。 嵌入式开发套件(edk)是用于设计嵌入式可编程系统的全面解决方案。该套件包括嵌入式软件工具(platform studio)以及嵌入式ibm powerpc硬件处理器核和/或xilinx microblaze软处理器核进行xilinx平台fpga设计时所需的技术文档和ip。注意,这里的嵌入式软件工具指用来产生、编辑、编译、链接、加载和调试高级编程语言(通常是c或c+)代码的工具,以便在处理器引擎上执行。 由于嵌入式系统涉及了软件和硬件的开发以及两者的综合设计,因此其开
3、发是较为复杂的。xilinx为了简化基于fpga的嵌入式开发流程,提供了功能强大、操作简单的工具集:集成软件环境ise;嵌入式开发套件edk。(注释:ise 是xilinx 公司fpga 逻辑设计的基础。在这个环境中,设计者可以进行约束文件的编写,时序分析,逻辑布局布线以及器件编程等。) edk自带了许多工具和ip,可以用来设计完整的嵌入式处理器系统,主要包括xilinx 平台工作室xps和软件开发套件sdk。需要注意的是:只有安装了ise软件,才能正常运行edk,且二者的版本要一致。 edk的组成模块有: 1xilinx 平台工作室(xilinx platform studio,xps) x
4、ps 是用来设计嵌入式处理器系统硬件部分的开发环境或gui,是系统设计者构建 xilinx嵌入式系统时必用的工具套件。在xps中,可以完成嵌入式系统架构的创建、软件代码的编写、设计的编译以及fpga芯片的硬件配置。 2软件开发套件(software development kit,sdk) sdk是集成的开发环境,基于eclipse。它支持c/c+,用于嵌入式软件应用的开发和验证。 3其它edk部分 edk还包括其它的一些部分,如:用于xilinx嵌入式处理器的硬ip;用于嵌入式软件开发的驱动和库;在microblaze和powerpc处理器上用于c/c+软件开发的gnu编译器和调试器;有关文
5、档以及一些工程样例等。 xilinx的嵌入式开发套件edk带有许多的工具和ip,可以用来设计完整的嵌入式处理器系统,并在xilinx fpga芯片上运行。edk中包含了开发硬件和软件所必须的全部工具,可以很方便的添加系统自带的ip核和用户自定义的ip核,可以通过调用ise等其他工具实现布局布线,时序优化等等。可以调用gdb对应用程序进行板上调试及虚拟平台调试。 2、edk设计的实现流程2.1、基于edk的开发流程一个完整的嵌入式设计流程包括硬件设计和调试、软件设计与调试,各个步骤相对独立但又相辅相成。由于嵌入式应用场合多样,且软、硬件都可裁剪,因此并不是每个设 简化的嵌入式设计流程图计都要完成
6、所有的步骤。图中为基于edk 的嵌入式设计的简化流程图。 通常,ise fpga 开发软件在后台运行,xps 工具调用ise 软件提供的功能。xps 主要用来嵌入式处理器硬件系统的开发。微处理器、外围设备以及这些组件之间的连接问题,另外还有它们各自的属性设置都在xps 里进行。简单的软件开发可以在xps 里完成,而对于更复杂的应用开发和调试,xilinx 则推荐使用sdk 工具。硬件平台的功能验证可以通过硬件描述语言hdl 仿真器完成。xps 提供了行为级、结构级以及定时精确级等三种类型的仿真。验证过程结构由xps 自动产生,其中包括了仿真的hdl 文件。设计者只需要输入时钟时序、重配置信息以
7、及一些应用代码即可。仿真细节将在下面的内容中进行相关讲述。完成设计后,在xps 中将fpga 比特流和可执行可链接格式文件下载,就可以进行目标器件的配置。 完整的edk 开发流程如右图 所示,其主要步骤有: 完整的嵌入式设计流程图1. 创建硬件平台:利用xps 的板级开发包向导(bsb wizard)快速构建设计的硬件平台,是edk 设计的第一步。 2. 添加ip core 以及用户定制外设:在xps 中添加所需的ip core,对于xps 库中缺少的模块,需要用户自行设计。同样,xps 提供了建立用户自定义外设的向导,可简化该过程。 3. 生成仿真文件并测试硬件系统:生成硬件系统的仿真文件,
8、可选择行为级、结构级以及时序级仿真,利用modelsim等工具测试系统,特别是用户自定义的外设;如果测试失败,需要返回上一步修改。 4. 生成硬件比特流:生成硬件网表和比特流文件,这个步骤类似于传统fpga 设计的综合、布局布线、生成编程文件这3 个操作。 5. 开发软件系统:针对软件需求编写硬件代码,确定软件的操作系统、库、外设驱动等属性,针对每个应用软件工程,设置编译器、优化级别、使用的连接文件等信息。等设置完成后,编译生成.elf 格式的可执行代码。 6. 合并软、硬件比特流:编译软件后,需要将软、硬件可执行文件合并在一起,生成最终的二进制比特文件。 7. 下载:使用jtag编程电缆或编
9、程器将更新后的最终比特流烧写到 fpga、prom、flash以及cf 卡。 8. 在线调试:可利用xmd工具或chipscope 工具调试,通过jtag编程电缆在线调试,下载可执行软件代码、控制执行,并监控相关信息。 2.2、edk设计比特文件的组成如前所述,最终下载到fpga 的嵌入式比特流文件是软、硬件比特流合并在一起的,详细的组成部分如右图 edk 配置比特文件的组成结构所示。硬件部分比特流包括mhs 文件、用户自定义hdl 代码,二者经过综合实现后,产生.ngc 网表,生成硬件系统的比特流文件;软件系统包括 mss 文件、用户.c/cpp/asm文件,通过gcc 编译器,生成目标文件
10、.obj,再经过连接合成软件系统的比特流文件;最后通过data2mem过程,将软、硬件比特流合成完整系统比特流文件,通过jtag链路下载到fpga 芯片中。 3、实验添加自定义ip安装时候需要版本搭配,如ise8.1搭配edk8.1。首先,说说使用edk加入用户设计的ip。 1、启动xps(xilinx platform studio),生成一个processor system,其中可以选择处理器,硬ip(powerpc)或软ip(microblaze),以及可选的ip(bram、uart)等。如果这个阶段拿不定不要什么ip,以后添加删除都可以。 2、启动create and import p
11、eripheral wizard,创建ipif,选择需要的属性,如是否包括fifo、dma等,系统会自动创建hdl文档模板,用户只需要添加用户程序部分。同coreconnect总线连接部分不用用户操心。 3、使用ise的project navigator,打开第二步生成的.npl文件,添加入自己的代码,在ise里进行编译。 4、如果需要,进行bfm(总线功能模型)仿真 5、若在第三步里,用户对接口有修改,需要重新启用create and import peripheral wizard,来生成edk接口(.pao/.mpd文件) 6、使用xps - add/edit core dialog,添
12、加用户ip到第一步的工程中 7、使用xps生成ip driver。 8、编译、下载bit文件到开发板。ise硬件设计工具。相对容易使用的、首屈一指的pld设计环境 ! ise将先进的技术与灵活性、易使用性的图形界面结合在一起,不管您的经验如何,都让您在最短的时间,以最少的努力,达到最佳的硬件设计。 ise工程设计流程 下面主要概述ise的基本开发流程以及在开发过程中的各个阶段需要用到的工具软件。 图4.29 说明了利用xilinx公司的ise开发设计软件的工程设计流程,具体分为五个步骤:即输入(design entry)、综合(synthesis)、实现(implementation)、验证(
13、verification)、下载(download)。 图4.29 ise的工程设计流程 1)图形或文本输入(design entry) 图形或文本输入包括原理图、状态机、波形图、硬件描述语言(hdl),是工程设计的第一步,ise集成的设计工具主要包括hdl编辑器(hdl editor)、状态机编辑器(statecad)、原理图编辑器(ecs)、ip核生成器(coregenerator)和测试激励生成器(hdl bencher)等。 常用的设计输入方法是硬件描述语言(hdl)和原理图设计输入方法。原理图输入是一种常用的基本的输入方法,其是利用元件库的图形符号和连接线在ise软件的图形编辑器中作
14、出设计原理图,ise中设置了具有各种电路元件的元件库,包括各种门电路、触发器、锁存器、计数器、各种中规模电路、各种功能较强的宏功能块等用户只要点击这些器件就能调入图形编辑器中。这种方法的优点是直观、便于理解、元件库资源丰富。但是在大型设计中,这种方法的可维护性差,不利于模块建设与重用。更主要的缺点是:当所选用芯片升级换代后,所有的原理图都要作相应的改动。故在ise软件中一般不利用此种方法。 为了克服原理图输入方法的缺点,目前在大型工程设计中,在ise软件中常用的设计方法是hdl设计输入法,其中影响最为广泛的hdl语言是vhdl和verilog hdl。它们的共同优点是利于由顶向下设计,利于模块
15、的划分与复用,可移植性好,通用性强,设计不因芯片的工艺和结构的变化而变化,更利于向asic的移植,故在ise软件中推荐使用hdl设计输入法。 波形输入及状态机输入方法是两种最常用的辅助设计输入方法,使用波形输入法时,只要绘制出激励波形的输出波形,ise软件就能自动地根据响应关系进行设计;而使用状态机输入时,只需设计者画出状态转移图,ise软件就能生成相应的hdl代码或者原理图,使用十分方便。其中ise工具包中的statecad就能完成状态机输入的功能。但是需要指出的是,后两种设计方法只能在某些特殊情况下缓解设计者的工作量,并不适合所有的设计。 2)综合(synthesis) 综合是将行为和功能
16、层次表达的电子系统转化为低层次模块的组合。一般来说,综合是针对vhdl来说的,即将vhdl描述的模型、算法、行为和功能描述转换为fpga/cpld基本结构相对应的网表文件,即构成对应的映射关系。 在xilinx ise中,综合工具主要有synplicity公司的synplify/synplify pro,synopsys公司的fpga compiler ii/ express, exemplar logic公司的 leonardospectrum和xilinx ise 中的xst等,它们是指将hdl语言、原理图等设计输入翻译成由与、或、非门,ram,寄存器等基本逻辑单元组成的逻辑连接(网表),
17、并根据目标与要求优化所形成的逻辑连接,输出edf和edn等文件,供cpld/fpga厂家的布局布线器进行实现。 3)实现(implementation) 实现是根据所选的芯片的型号将综合输出的逻辑网表适配到具体器件上。xilinx ise的实现过程分为:翻译(translate)、映射(map)、布局布线(place & route)等3个步骤。 ise集成的实现工具主要有约束编辑器(constraints editor)、引脚与区域约束编辑器(pace)、时序分析器(timing analyzer)、fpga底层编辑器(fgpa editor)、芯片观察窗(chip viewer)和布局规划
18、器(floorplanner)等。 4)验证(verification) 验证(verification)包含综合后仿真和功能仿真(simulation)等。功能仿真就是对设计电路的逻辑功能进行模拟测试,看其是否满足设计要求,通常是通过波形图直观地显示输入信号与输出信号之间的关系。 综合后仿真在针对目标器件进行适配之后进行,综合后仿真接近真实器件的特性进行,能精确给出输入与输出之间的信号延时数据。 ise可结合第三方软件进行仿真,常用的工具如model tech公司的仿真工具modelsim和测试激励生成器hdl bencher ,synopsys公司的vcs等。通过仿真能及时发现设计中的错误
19、,加快设计中的错误,加快设计进度,提高设计的可靠性。 每个仿真步骤如果出现问题,就需要根据错误的定位返回到相应的步骤更改或者重新设计。 5)下载(download) 下载(download)即编程(program)设计开发的最后步骤就是将已经仿真实现的程序下载到开发板上,进行在线调试或者说将生成的配置文件写入芯片中进行测试。在ise中对应的工具是impact。chipscope pro逻辑分析仪system generatorsystem generator是xilinx公司进行数字信号处理开发的一种设计工具,它通过将xilinx开发的一些模块嵌入到simulink的库中,可以在simulin
20、k中进行定点仿真,可是设置定点信号的类型,这样就可以比较定点仿真与浮点仿真的区别。并且可以生成hdl文件,或者网表,可以再ise中进行调用。或者直接生成比特流下载文件。能够加快dsp系统的开发进度。 功能介绍用systemgenerator进行仿真 1、必须包含的模块:gateway in、gateway out、systemgenerator、以及xilinx定点运算单元。 2、对于系统设计中有精确时钟限制的外部接口模块,使用system generator设计不是最佳方法,此时可以利用hdl等方法实现,然后通过system generator工具提供的black box导入sysgen工程
21、中即可。 systemgenerator blockset 1、主要包括:xilinx blockset、xilinxpreference blockset 和 xilinx xtremdsp kit三个库函数块。 2、xilinxblockset包含了所有在simulink中构建数字信号处理系统和其他fpga数字系统的模块。 3、xilinxpreferenceblockset 是更高层次的模块,都是由xilinx blockset中的模块组成的,降低了开发难度,并且具有较高的可靠性。 信号数据类型 1、xilinxblock的输出格式可以设定为:fullprecision和user-def
22、ined precision fullprecision:会在运算中自动进行位宽扩展 user-definedprecision:对输出结果进行截位(wrap)或饱和(saturate)处理(用户设置)。 2、在systemgenerator中,点击format port/signal displays port data type 即可显示每个模块输入输出的数据类型。 3、当simulink无法确定数据类型和采样速率时,会报错,通常这种情况出现在有反馈的情况下。这时可以通过添加一个assert模块对信号进行强制制定或重新定义。且不占用硬件资源。 4、gatewayin可以设定samplepe
23、riod,值越大,采样点越少。一般来说,对于同一组gateway in,sample period应该是一样的,即采样率时一样的。所以当修改一个gateway in的sample period时,记得同时更新同一级的gateway in的sample period。 5、采样率变换,利用模块:up sample和down sample。systemgenerator中不同颜色代表不同的采样率。可以点击format sample time colors 利用matlab产生测试向量 1、使用fromworkspaceblock产生测试向量。注意数据必须是2xn矩阵: colume1 = time
24、 values colume2 = data values 例如:1:101;sin(2*pi*0:.01:1) 2、使用toworkspace block将sysgen数据输出到matlab进行分析 时钟周期 1、simulinksystemperiod为simulink仿真时钟周期,该周期必须是设计中所有采样周期的最大公因子,比如系统中有3个采样周期(2、3、4),那么simulink system period为1。 2、如果fpga系统时钟周期是10ns,那么simulink系统周期,2s、3s、4s三个采样周期分别对应fpga器件实现时的10ns、20ns、30ns、40ns。另一种
25、做法是将simulink系统周期就定义成fpga的系统周期,这样省去了时钟周期间的换算。 3、可以用clockenable probe模块来实现潜在的时钟使能信号。planahead静态时序分析planahead 软件提供了一种解决方案 越来越多的客户在赛灵思 planahead 设计分析工具提供的层次化设计方法学中找到解决方案。planahead 软件为 fpga 设计流程增加了可视性和控制。通过解决物理方面(介于逻辑综合和实现工艺之间)的问题,您可在您的设计结果中实现性能的提高。 虽然先进的 fpga 综合产品为几百万门设计提供极高的自动优化水平,许多设计者仍需要具有更多启发性的技术,以达
26、到最佳性能目标。通过提供早期分析和布局规划 (floorplanning)功能,planahead 设计工具可以施加物理约束,以帮助控制设计的初始实现。实现后,planahead 软件可以分析布局和时序结果,以改进用于完成设计的布局规划。您可以使用来自导入结果的物理约束,在后续实现尝试期间锁定布局。这些约束可用于创建可重用 ip,连同锁定布局,一同用于其它设计。 planahead 设计方法提供了性能、生产力以及结果的可重复性。凭借其层次化设计流程,planahead 软件可让您减少运行 par 然后返回 rtl 与综合的反复次数。相反 ,您可以分析设计并在实现之前解决物理方面的问题。 更少的
27、时间,更快的结果 planahead 用户通常可以实现 10-15% 的性能提升,有些用户甚至可以实现更高。此外,设计者还发现他们可以在一个紧凑的器件中额外加入 10% 的逻辑。更快的性能与更高的利用率的结合意味着可以使用更小更便宜的器件,或者以更低的速度等级实现设计目标。 planahead 设计工具可在缩短总设计时间的同时,还在结果中增加一定的一致性水平。通过利用以前的布局规划或增量设计技术,您可以以更少的时间执行设计反复,实现可重复的结果。您还可以利用成功结果,将它们锁定下来或在其它设计中重用。 解决真正棘手的性能问题所需要的绝不仅仅是增加新的菜单项或脚本能力。planahead 软件通
28、过使用各种视图(见图 1)展示设计数据,提供了一个完整的环境,使该层次化方法实现交互并易于使用。这些独立的视图可以相互结合使用,从而允许您快速识别和浏览关键设计对象和信息。 图 1:planahead 软件提供了设计的不同视图,以显示物理层次、属性、网表与约束、器件封闭引脚、原理图及更多。 可视化确定性能瓶颈 planahead 环境通过显示 i/o 互连和物理块(或 “pblock”)网束 (net bundle),提供了洞察设计数据流的能力。您可以根据信号数量控制网束的颜色和线厚。这使您能容易地在贯穿设计的整个数据流中确定具有大量连接的 pblock。然后您可以采取校正措施,避开布线拥塞故
29、障点,并将具有大量连接的 pblock 相近放置或将它们合并。 您还可显示时钟区,并在布局规划时使用它来优化各个时钟或最大程度地降低器件中的功耗。通过将时钟隔离到专门的时钟区,它们可以运行得更快,并消除了为其它时钟区供电的需要。 您可以在设计过程中的各个阶段使用 planahead 设计工具的分析和探测环境。最初,您可以在实现之前分析设计。planahead 软件提供了一个静态时序引擎 timeahead,用于研究设计在时序方面的可行性。您还可以通过调整纯逻辑延迟,在不进行互连的情况下,使用估计的布线延迟执行分析。这可以让您看清楚设计中存在多大的时序容差。 然后您可以在 planahead 环
30、境中编辑和精调时序约束。这些相同的分析结果可以帮助确定哪些逻辑应组合在一起并进行布局规划。针对布局规划,您可对路径进行逻辑排序、组合和选择,还可以使用同一 timeahead 环境处理从 trce 导入的时序结果,trce 是赛灵思 ise 软件中的时序评估工具。 您可以查看和修改为设计指定的时序约束。您可以在编辑器中将所有 ise 时序约束定义为新约束。这可以使约束指定变得更容易,因为您不必再记住专门的约束格式了。您可以在运行任何 ise 实现工具之前,将其与 timeahead 一起使用以验证和优化约束集。 planahead 设计工具提供了可视辅助,以帮助您理解物理实现结果。设计规则检查
31、 (drc) 功能可帮助您及早捕获错误。它还会对未正确利用某些器件资源(如 virtex-4 fpga 中的 xtremedsp 切片或 ram)的设计进行标记。 通过将问题区域可视化,您可以在 rtl 侧或物理实现侧快速解决问题,而不必继续重复进行 rtl 与综合。您可以对各个逻辑模块进行选择性地高亮显示,以更好地了解它们放置的位置,以及创建在逻辑最集中区域的pblock。您可以高亮显示故障时序路径,以可视化和了解您的设计中发生了什么物理问题。 planahead 软件包含了量度图 (metric map),以快速确定设计的故障区域(图 2)。这些可能与时序或利用率有关。这对您在试图确定设计
32、中要关注的区域以实现逻辑压缩或时序连接性时会很有用。 图 2:量度图提供了设计中各种潜在问题区域的热量度显示。当前量度包括 pblock 和布局后设计级的利用率和时序检查。 planahead 设计工具允许您研究设计中的连接性。您在设计中选择一个特定的网络、pblock 或实例后,可以通过单击鼠标高亮显示所有连接到选定元素的网络。 在选择一个实例或 pblock 后,所有连接到该元素的网络都将被高亮显示。这一过程可以继续,以选择和扩展逻辑锥形。运行“显示连接性”将高亮显示连接到选定实例的下一级网络。这是一种选择从某个特定实例或 i/o 端口开始的逻辑锥区的简易方法,从而可真正实现对设计层次优势
33、的利用。 . 然后解决性能问题 整个想法是要提供一个综合环境,以分析时序问题并轻松约束该逻辑以避免或纠正该问题。您可以使用来自 timeahead 或 trce 的时序结 果进行布局规划,通过帮助确定哪些逻辑应组合在一起并进行布局规划来进行更好的性能设计。关键路径通常穿越逻辑层次。planahead 软件支持独立于逻辑层次的物理层次,从而使您可将设计中任意位置的逻辑组合在一起并有效地进行布局规划。 planahead 软件还提供了资源利用估算功能,以帮助确定 pblock 的尺寸和形状。同样这些统计资料还可报告时钟信息、供应链和 prm 适应尺寸以及各种其它有用信息。 planahead 设计工具提供了自动布局能力,如基于逻辑层次的自动分区和自动 pblock 尺寸确定与放置。由于使用单个 pblock 矩形来包含所需的器件资源通常很困难,因此可以使用多个矩形创建非矩形-线性形状。planahead 软件还允许您在 pblock 内创建 pblock,或创建“子”pblock,以帮助更好地维护设计层次。 器件容量可通过压缩 pblock 的逻辑进行提高。您可以使用以下两种方法中的一种来实现。一种方法是使用称为 compression 的赛灵思 area_
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 供热公司收购合同范本
- 买方单方面违约合同范本
- 上海租赁牌照合同范本
- 2024年遵义市赤水市公益性岗位人员招聘考试真题
- Unit 1 A new start:Understanding ideas ① 教学设计 -2024-2025学年外研版(2024年)英语七年级 上册
- 出售大型废船合同范本
- 临时供电协议合同范本
- 2024年民主与科学杂志社招聘考试真题
- 劳务合同范本修灶台
- 上海疫情物质供货合同范本
- 《人工智能导论》(第2版)高职全套教学课件
- 39 《出师表》对比阅读-2024-2025中考语文文言文阅读专项训练(含答案)
- 蛇胆川贝液在动物模型中的药理作用研究
- GB/T 44260-2024虚拟电厂资源配置与评估技术规范
- 中国煤炭地质总局公开招聘报名表
- AQ 1064-2008 煤矿用防爆柴油机无轨胶轮车安全使用规范(正式版)
- 电子商务数据分析基础(第二版) 课件 模块1、2 电子商务数据分析概述、基础数据采集
- YB-T+4190-2018工程用机编钢丝网及组合体
- 高大模板安全施工施工安全保证措施
- 比亚迪公司应收账款管理的问题及对策分析
- 【高考真题】2024年新课标全国Ⅱ卷高考语文真题试卷(含答案)
评论
0/150
提交评论