fpga 入门教程

  • 格式:pdf
  • 大小:524.76 KB
  • 文档页数:9

Nexar简易教程:

伴随着1959年第一颗硅晶体IC(集成电路)的诞生,标志着以2进制为代表的计算机时代的到来。LSI(大规模集成)电路技术的发展造就了功能强大的ASIC(专用集成电路)性能的迅速提升,在网络、通讯、图像处理、计算机总线管理等诸多领域,ASIC已经得到了大量应用。通常在电子应用中都需要用uP微处理器及其他逻辑器件组成以解决各种设计需求。伴随着电子产品的外形尺寸越来越小而功能要求越来越强,工作频率越来越高,传统由分立式IC来构建系统变得越来越困难。FPGA(域可编程门阵列)适时地从减小电路设计尺寸到高速电路设计上为电子设计提供了理想的解决方案。同时,由于IC设计与工艺技术水平提高,集成电路规模越来越大,复杂程度越来越高,整个系统已可以集成在一个芯片上。目前FPGA的容量已接近1千万门,SOPC(片上可编程系统)就应运而生了。 SOPC是Altera公司提出来的一种灵活、高效的SOC解决方案。它将处理器、存储器、I/O口、LVDS、CDR等系统设计需要的功能模块集成到一个PLD器件上,构建成一个可编程的片上系统,并具有灵活的设计方式、可裁减、可扩充、可升级,并具备软硬件协同设计的功能。为此,电子设计工程师将面对从硬件电路设计、基于特定微处理器内核的嵌入式软件设计到最终的软硬件设计的联调等诸多挑战。Altium公司经过多年的技术研发适时地推出了Nexar2004(基于FPGA的嵌入式系统设计EDA工具),它集系统数字电路设计、嵌入式软件设计、实时运行、软硬件协调、系统验证等功能于一身。

图1 Nexar嵌入式系统设计流程框图 Nexar2004设计环境为电子设计人员搭建了一个在FPGA上完成系统数字电路中设计、执行并调试微处理器的EDA平台。它允许采用原理图及原理图与VHDL或Verilog HDL混合的输入方式;并提供嵌入式软件的集成开发环境,完成从代码输入、编译、下载到系统验证的全部功能。当设计完成后下载到Nanoboard系统开发板上并执行,设计人员就可以利用Nexar提供的虚拟仪器和边界扫描引脚状态技术来完成硬件的调试,并利用系统上集成的软件调试器来完成嵌入式软件设计。当系统调试与设计都在相同的环境下完成,修改设计再验

软硬件可同时调试 软件的更新可经Nexus链下载到处理器內存而无需FPGA的完全重新编程 硬件源文件

[原理图 & VHDL]

系统综合布局及布线下载

虚拟仪器 Virtual Instruments

软件源文件 编译器

软件调试器NanoBoard

‘硬’ JTAG 链 ‘软’ Nexus 链

边界扫描 Boundary Scan证就变得很容易实现。 基本知识: 1、 Free-IP 核:(free- Intellectual Property Core,免版税的器件内核) 在FPGA设计中越来越多的是一种基于IP的设计方法。所谓free-IP Core是指无需支付知识产权费用的、公开的器件设计文档。 2、 虚拟仪器:(Virtual Instruments) 虚拟仪器是在PC技术的基础上发展起来的,所以完全“继承”了以现成即用的PC技术为主导的最新商业技术的优点,包括功能超卓的处理器和文件I/O,使您在数据导入磁盘的同时就能实时地进行复杂的分析。 3、 Nexus协议:(Nexus Protocol) Nexus协议即IEEE-ISTO5001 – 1999 Global Embedded Processor Debug Interface 标准。Nexus协议是完全构架于IEEE1149.1(JTAG协议)之上,通过协议中定义的寄存器、通讯等标准,提供了通用的嵌入式处理器调试接口。 4、 Constraint File: Constraint File是在FPGA设计中用于完成器件型号及管脚特性约束的描述性文件。所有的约束文件均保存在系统安装目录 \\altium2004\library\FPGA中。

如何开始FPGA系统设计: 以下我们将结合一个实例来简要介绍一下如何在Nexar上实现一个完整的嵌入式系统设计过程。 首先:创建一个新的FPGA工程 1、选择菜单 [menus]File>>New>>FPGA Project,在工程栏中将会显示新建的FPGA工程名,选择菜单[menus]File>>Save Project,在对话框中修改工程名称,然后Save。在工程栏中选择File View选项,在工程中将会列出所有属于当前工程的文件。注:Structure Editor选项用于编辑工程中文件间的链接关系。

图1.1 工程栏----创建FPGA工程 2、FPGA工程可以支持原理图和VHDL文件两种源文件,采用混合编辑时,可以将VHDL生成图表符的形式。选择菜单[menus]File>>New>>Schematic;也可以在工程栏中选中FPGA工程名,然后点击鼠标,选择[popups]Add New to Project>>Schematic。保存原理图,重新命名为exercise.schdoc。 图1.2 工程栏----创建原理图 3、接下来在新加入的原理图中完成一个最简单的基于51内核的设计工程,实现LED闪亮的功能。在这个实例中,将会用到51的内核、RAM存储器、上电时序控制、异或门、Nexus协议接口等FPGA工程器件。Nexar2004的器件均可以在FPGA集成库中找到,在系统缺省设置下,在窗口右侧上方可以看到favorities/libraries/clipboard三个属性栏,单击libraries属性栏,窗口中弹出集成库窗口(见图1.3)。选定设计中需要的器件,并拖拽到原理图中。 器件名称 FPGA集成库 TSK51A_D FPGA Processors.IntLib RAMS_8x1K FPGA Memories.IntLib CLOCK_BOARD FPGA NanoBoard Port-Plugin.IntLib TEST_BUTTON FPGA NanoBoard Port-Plugin.IntLib LED FPGA NanoBoard Port-Plugin.IntLib NEXUS_JTAG_CONNECT FPGA NanoBoard Port-Plugin.IntLib NEXUS_JTAG_PORT FPGA Generic.IntLib OR2N1S FPGA Generic.IntLib FPGA_STARTUPx FPGA Peripherals.IntLib

图1.3集成库----51内核 图1.4 设计实例-----原理图 5、 按照系统设计的规则,将从集成库中拖拽出了器件连接构建一个完整的数字电路系统。然后选择[menu]Tools>>Annotate Quiet,系统将自动分配器件的标示,最后保存工程。特别应注意: a.在Nexar2004中需要接入Nexus_JTAG_CONNECT和Nexus_JTAG_PORT这两个器件用于构建Nexus协议链; b.所有的输入管脚均不能置空;否则编译中系统会错。

c. Bus Joiner (图示中用红色标识的部分),可以将不同总线宽

度的端口连接在一起。原则:输出总线的宽度应不小于输入总线宽度。

第二步,创建嵌入式软件工程: 1、 选择菜单 [menus]File>>New>>Embedded Project,在工程栏中将会显示新建的Embedded工程名,选择菜单[menus]File>>Save Project,在对话框中修改工程名称,然后Save。

图2.1嵌入式工程 2、 在工程栏中,用鼠标点击嵌入式工程名称,然后选择右键弹出[popus]Add New to Project>>C File。重新命名c文件名称并保存; 3、 在c文件中输入软件代码;

图2.2设计实例---- c源代码 第三步,设定嵌入式软件工程选项: 1、选择菜单[menu]Project>>Project Options,或者在工程栏,嵌入式工程名称上单击鼠标右键选择弹出菜单[popus]Project Options,系统将打开嵌入式工程的设置选项对话框(图3.1),在configuration下拉选项栏中按照设计中选择的微处理器的类型,选择相应的嵌入式系统环境。由于前面我们设计的实例选用8051的微处理器核,因此在该工程的软件设置重,如图3.1选择TASKING 8051。

图 3.1嵌入式工程环境设置——微处理器设置 2、在Build Options下,点击Processor并随后点击Startup Code。确认在Startup Code属性栏下Generate and use startup code_cstart.c选项栏被选中。由于在该文件中定义了嵌入式软件工程的中断向量表,这对选择c编译器而言非常重要。 3、点击C Complier,选择Memory Model并且在Select a complier memery model属性栏中将下拉选择Small:variables in DATA,然后确定Allow reentrant functions属性未被选中。(图3.2)

图3.1嵌入式工程环境——C编译环境设置 4、选择Code Generation,选中Put strings in ROM only属性并选中中断向量属性及寄存器属性(图3.3),然后完成对嵌入式软件工程的环境设定。

图3.3嵌入式工程环境——代码发生器 第四步,设定微处理器的属性选项: 如何将嵌入式工程与FPGA工程建立起相关联的属性呢? 接下来将讲述具体的操作步骤; 1、 打开FPGA工程下的原理图文件; 2、 鼠标双击TSK51A_D Processor(U1),