第四章FPGA组件设计(ISE开发进阶)_第1页
第四章FPGA组件设计(ISE开发进阶)_第2页
第四章FPGA组件设计(ISE开发进阶)_第3页
第四章FPGA组件设计(ISE开发进阶)_第4页
第四章FPGA组件设计(ISE开发进阶)_第5页
已阅读5页,还剩83页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第四章FPGA组件设计掌握IP核的生成和使用方法。会用户约束文件UCF设计。了解ISE实现选项配置和实现报告。了解静态时序分析方法与布局布线后仿真。掌握FPGA的配置。掌握原语的使用方法。了解ChipScope的使用。IPCore的使用系统IPCore的生成面向复杂设计的软核ISE版本的适用性XilinxFPGA芯片的适用性ISE提供的IPCore(IP核)在ISE的Project中直接生成ISE->Accessories->CoreGeneratorISE->Accessories->ArchitectureWizardIP参数化设计小写IPCore的使用方法1:定制ISE中一个已有的IPCoreIPCore的使用选择IPCore使用说明IPCore的使用定制同步FIFOCore为例IPCore的使用生成点击GenerateISE的ModuleView窗口中出现所生成的IPCoreIPCore的使用例化生成IPCore后,工程所在文件夹下产生下列文件.xco是IPCore配置文件例化时识别.xco.edn是网表文件.v和.vhd是模块的封装源代码IPCore的使用方法2:CoreGeneratorIPCore的使用配置芯片配置IPCore的使用配置生成配置IPCore的使用配置高级配置IPCore的使用IPCore选择IPCore的使用方法3:ArchitectureWizardIP复杂的IPCore生成,如DCMIPCore的使用配置IPCore的使用例化产生的关键文件.ucf是约束文件.xaw是二进制的Core文件 (例化时和.xco的使用类似).v是模块的封装源代码.ngc二进制网表文件(根据综合选项不同而生成)IPCore的使用IPCore端口声明ViewHDLFunctionalModelIPCore的使用IPCore的说明IPCore生成后,添加到工程中被认为是黑盒子,不会被重新综合;IPCore的可移植性与ISE的版本和芯片类型有关;部分IPCore需付费使用:仿真IP:可以仿真,不能综合综合IP:可以综合,不能在芯片上验证IPCore的使用如何将自己的代码封装成一个IPCore?可以提供给他人使用,但不想被篡改。ISE方法:提供verilogwrapper文件(.v文件),只提供端口描述和参数;提供.edn文件或者.ngc文件等同名的网表文件。综合选项中去除IOBUF生成选项。Vivado方法:Tools->CreateandPackageIP模块关联非常重要用户约束文件(UCF)UCF是项目实现不可缺少的部分UCF生成方法1:NewSouce->ImplementationConstraintsFile用户约束文件(UCF)UCF生成方法2UserConstraints(用户约束)用户约束文件(UCF)UCF主要三个组成部分引脚约束:引脚位置和类型配置;面积约束:模块的布局布线区域配置;时序约束:时钟约束、关键路径约束等。UCF语法:类似于一种脚本语言{NET|INST|PIN}“Signal_name”Attribute图形工具PACE编辑器,约束编辑器用户约束文件(UCF)引脚约束用户约束文件(UCF)引脚约束引脚的参数可以进一步配置用户约束文件(UCF)引脚约束配置成功后打开.ucf文件用户约束文件(UCF)面积约束将Logic的模块指定到芯片的某个区域编辑一般情况下,不需要添加用户约束文件(UCF)时钟约束全局约束 必选,主要针对全局时钟引脚时序约束 padtopad,clocktopad高级约束 分组约束,高级时序约束特定约束 特定约束(较少使用)语法规则较为复杂用户约束文件(UCF)时钟约束编辑器用户约束文件(UCF)重新查看.ucf文件用户约束文件(UCF)关于UCF文件的几点说明UCF语法较为复杂,需要确切知道含义;图形界面的选项可以自动转换为UCF语句;如果要在FPGA上实现,时钟约束、引脚约束必填;UCF通常关联顶层模块,综合选项中默认包含;UCF引脚配置要非常小心,严格遵照PCB图和芯片手册的要求,否则可能烧毁昂贵的FPGA芯片;某些特殊引脚约束或者复杂约束,只能通过UCF语句来生成;UCF编写不正确,无法进行综合以后的后续步骤。Vivado使用XDC(XilinxDesignConstraints)ISEimplementdesign配置Implement在综合之后执行,需要有.ucf文件包括Translate、Map、Place&Route属性卡可以集中修改,也可以分项修改每个步骤都会生成分析报告ISEimplementdesign配置Translate属性通常使用默认属性生成.ngd文件ISEimplementdesign配置Translate报告ISEimplementdesign配置Map属性通常使用默认属性需要调整的属性LUT输入面积与速度IOBISEimplementdesign配置Map报告(很长,关注以下几个部分)ISEimplementdesign配置Place&Route属性主要需要调整的属性:布线努力程度运行开销表部分工具比较重要ISEimplementdesign配置Place&Route报告(也很长)静态时序分析与布局布线后仿真静态时序分析当布局布线效果不理想时使用产生布局布线静态时序部分工具比较重要错误时序会被标红静态时序分析与布局布线后仿真静态时序分析静态时序分析与布局布线后仿真三种后仿真后仿真模型生成文件GeneratePost-TranslateSimulationxxx_translate.vGeneratePost-MapSimulationxxx_map.v,xxx_map.sdfGeneratePost-Place&RouteSimulationxxx_timsim.v,xxx_timsim.sdf主要使用布局布线后仿真静态时序分析与布局布线后仿真布局布线后仿真方法生成仿真模型新建一个目录,复制仿真测试文件、xxx_timsim.v、xxx_timsim.sdf、glbl.v到此目录下;(注意:一定不要编写的源代码,glbl.v在ISE根目录/verilog/src下)如果使用了宏定义文件(.v)、其它仿真模型文件(.v)也添加进来;打开ModelSim,新建一个Project,添加上述文件;编译所有文件;vsim-LXilinxCoreLib_ver-Lunisims_ver-Lsimprims_ver-t1ps+maxdelayssimulate_moduleglbl静态时序分析与布局布线后仿真将uut(例化的源代码顶层)添加到波形中布局布线后仿真方法静态时序分析与布局布线后仿真后仿真也可以采用非命令行方法,请自行查阅相关资料后仿真时间较长,与功能仿真可能相差几个数量级如果源代码较为庞大,生成后仿真模型的过程也会比较耗时功耗分析XPower功耗分析在仿真文件中某个initial语句中需要增加

$dumpfile("design.VCD"); $dumpvars(1,test_v.uut);运行GeneratePowerData运行AnalyzePower功耗分析分析报告功耗分析分析报告FPGA的配置FPGA配置模式主模式 PROM配置(最终产品)从模式JTAG模式

主机配置(调试)JTAGJointTestActionGroup一种国际标准测试协议JTAG边界扫描TDI、TDO、TMS、TCKVCC、GNDFPGA的配置JTAG下载电缆并口电缆ParallelIII 电路公开,可自行制作ParallelIVUSB电缆价格较为昂贵,速度和稳定性远优于并口电缆JTAG配置电路菊花链FPGA的配置配置文件的生成调试配置选项CCLK用于主模式PROM配置,内部产生JTAGCLOCK用于JTAG调试

FPGA的配置配置文件的生成执行生成.bit文件

FPGA的配置启动iMPACT选择边界扫描也可以取消然后点击进行自动检测

FPGA的配置下载配置右键Program,选中生成的.bit文件下载成功后,提示“Success”

FPGA的配置采用PROM配置FPGA生成的.bit文件需要转换成.mcs文件下载到PROM中,PROM自动配置FPGA FPGA的配置选择所使用PROM芯片FPGA的配置选择.bit文件转换注意:此时要用CCLK时钟生成.bit FPGA的配置JTAG菊花链FPGA的配置多片PROM配置FPGA的配置SystemACE配置可参考PROM配置

FPGA的配置FPGA配置失败的常见问题JTAG链扫描失败:检查JTAG电路接口连接情况;无法通过并口设置:并口电缆、并口模式;无法正常配置:信号干扰,增加滤波电路,阻抗匹配;DONE引脚不变高:合适的上拉电阻;DONE引脚变高后无法正常工作:启动顺序;模式错误:引脚M0、M1、M2的配置模式;随机性失败:器件没有复位。ChipScope的使用ChipScope在线软件逻辑分析仪CoreGeneratorCoreInsert(可替代CoreGenerator)Analyzer触发、捕获、分析ChipScope的使用.edn文件选择、芯片类型选择CoreInsertChipScope的使用综合网表发生改变CoreInsertChipScope的使用设置TriggerWidth、MatchUnit、CounterWidth设置MatchTypeCoreInsertChipScope的使用CoreInsert数据深度(采样Sample个数)采样时钟沿方式ChipScope的使用修改采样信号:数量由之前的TriggerWidth决定CoreInsertChipScope的使用ChipScope的使用CoreInsert选择采样时钟尽可能用主时钟或DCM输出的2X时钟选择采样信号可成组添加尽量添加寄存器输出不能添加PAD外侧信号信号名称可能发生改变ChipScope的使用CoreInsert核的保存满足宽度要求,不可有空;保存为.cdc文件,以供下次调试使用。核的使用插入核后需要RerunTranslate。(注意:只能Translate这一步,不能RerunALL,否则将会重新综合,导致核无法添加成功)继续执行后续的Implementation操作并进行FPGA的配置。ChipScope的使用Analyzer可以替代iMPACT的芯片配置功能;通过下载电缆的检查,扫描JTAG链,找到板上所有的芯片;配置下载.bit文件(稳定性好于iMPACT,速度稍慢);当使用CoreInsert时,下载成功后显示分析界面;否则只显示现在成功信息。ChipScope的使用Analyzer的使用设置触发条件单个信号(跳变、计数等)多个新号(组合)信号捕获对于第一次出现的触发条件,需要复位状态下启动捕获。信号编辑默认情况下只有信号编号,需要核对CoreInsert进行信号的编辑,向量信号可以直接分组编辑。信号观测只显示所设定的捕获宽度。ChipScope的使用Analyzer的使用信号保存Project保存,可以保存所有编辑过的信号和触发条件。CoreInsert信号如果重新编辑过,信号保存无效。信号分析类似于ModelSim的信号分析,实时记录片内信号的波形。原语的使用原语(Primitive)针对器件特征开发的常用模块名称;可靠做Xilinx为用户提供的“库函数”;可以在代码中直接例化使用。注意:(1)原语的使用要注意具体芯片; (2)通常采用参数化设计;

(3)语言模板(LanguageTemplates)中提供使用说明。原语的使用原语(Primitive)ISE菜单Edit->LanguageTemplates原语的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论